批量添加用户(newusers,chpasswd)
2011-12-08 02:56
351 查看
在 Linux 用户管理中,大批量添加用户是经常需要的;如果用useradd或adduser 来添加大量用户,对系统管理员的体力和耐力是一个极大的挑战;好在Linux有大批量用户添加工具 newusers ,我们通过newusers 和chpasswd 就可以轻松完成大批量用户的添加;
二、为什么需要大批量添加用户;
我们什么时候才需要大批量添加用户呢?有时我们需要让几十个或更多的用户在主机上完成相同或相似的任务,比如我们想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时我们可能为了教学,比如我们有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业;
三、批量用户添加流程;
批量添中用户流程是通过newusers 导入一个严格按照/etc/passwd 的书写格式来书写内容的文件来完成添加用户,然后通过chpasswd 导入用户密码文件来完成批量更新用户密码的过程;
1、newusers 成批添加用户的工具;
其用法很简单,newusers 后面直接跟一个文件;文件格式和/etc/passwd 的格式相同;
用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL
举例:
值得一提的是关于SHELL类型,查看主机上所有SHELL ,可以通过chsh 来查看;
其中除了/sbin/nologin ,其它类型的SHELL 都能登录系统;nologin 大多是虚拟用户用的SHELL ,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL 设置成/sbin/nologin ,比如上面的例子;
关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档;
2、chpasswd 批量更新用户口令工具;
chpasswd 工具是成批更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中;
然后用文本编辑器打开文件userfile.txt,添加如下内容;
userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;
我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是说我们先是添加了win00到win0Array的用户,现在要为这些用户更新密码;比如下面的;
2、通过newusers和chpasswd 完成批量添加用户;
这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;
最后补充一点:userfile.txt和userpwdfile.txt中的内容必须以回车符结尾,不然的话,在使用newusers的时候可能会报错,提示line X:line too long。这时候只要将该文件打开,在文件的最后结尾,敲上一个回车,就能解决问题。我觉得这是linux的一个机制,所有的文档最后都是以一个空字符结尾的,个人见解,不对的地方请指正。
二、为什么需要大批量添加用户;
我们什么时候才需要大批量添加用户呢?有时我们需要让几十个或更多的用户在主机上完成相同或相似的任务,比如我们想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时我们可能为了教学,比如我们有50个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业;
三、批量用户添加流程;
批量添中用户流程是通过newusers 导入一个严格按照/etc/passwd 的书写格式来书写内容的文件来完成添加用户,然后通过chpasswd 导入用户密码文件来完成批量更新用户密码的过程;
1、newusers 成批添加用户的工具;
其用法很简单,newusers 后面直接跟一个文件;文件格式和/etc/passwd 的格式相同;
用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL
举例:
win00:x:520:520::/home/win00:/sbin/nologin win01:x:521:521::/home/win01:/sbin/nologin ......
值得一提的是关于SHELL类型,查看主机上所有SHELL ,可以通过chsh 来查看;
[root@localhost beinan]# chsh --list /bin/sh /bin/bash /sbin/nologin /bin/ksh /bin/tcsh /bin/csh /bin/zsh
其中除了/sbin/nologin ,其它类型的SHELL 都能登录系统;nologin 大多是虚拟用户用的SHELL ,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL 设置成/sbin/nologin ,比如上面的例子;
关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档;
2、chpasswd 批量更新用户口令工具;
chpasswd 工具是成批更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中;
然后用文本编辑器打开文件userfile.txt,添加如下内容;
win00:x:520:520::/home/win00:/sbin/nologin win01:x:521:521::/home/win01:/sbin/nologin win02:x:522:522::/home/win02:/sbin/nologin win03:x:523:523::/home/win03:/sbin/nologin win04:x:524:524::/home/win04:/sbin/nologin win05:x:525:525::/home/win05:/sbin/nologin win06:x:526:526::/home/win06:/sbin/nologin win07:x:527:527::/home/win07:/sbin/nologin win08:x:528:528::/home/win08:/sbin/nologin win0Array:x:52Array:52Array::/home/win0Array:/sbin/nologin
userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;
我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是说我们先是添加了win00到win0Array的用户,现在要为这些用户更新密码;比如下面的;
win00:123456 win01:654321 win02:123321 win03:qweewq win04:google win05:adadwc win06:wsscee win07:xxec32 win08:543wew win0Array:3ce3wf
2、通过newusers和chpasswd 完成批量添加用户;
[root@localhost ~]# newusers userfile.txt [root@localhost ~]# chpasswd
这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;
[root@localhost ~]# pwconv
最后补充一点:userfile.txt和userpwdfile.txt中的内容必须以回车符结尾,不然的话,在使用newusers的时候可能会报错,提示line X:line too long。这时候只要将该文件打开,在文件的最后结尾,敲上一个回车,就能解决问题。我觉得这是linux的一个机制,所有的文档最后都是以一个空字符结尾的,个人见解,不对的地方请指正。
相关文章推荐
- 批量添加用户(newusers,chpasswd)[转] | 蚊子技术空间站
- linux批量添加用户批量修改密码(newusers,chpasswd)
- linux中批量添加用户(newusers,chpasswd)
- 批量添加用户(newusers,chpasswd)
- sell脚本应用:批量添加(删除)用户
- 批量添加域用户
- 利用CSVDE命令实现域用户账户的批量添加示例
- 批量添加系统用户
- 批量添加不同的用户
- liferay门户批量添加用户,调用weiservice方法。
- 关于批量添加用户和域用户
- 编写脚本批量添加、删除用户
- 批量添加删除用户脚本
- Linux中用脚本实现批量添加和删除普通用户
- 批量添加用户
- shell应用:批量添加用户
- 批量添加用户shell脚本详解
- 批量添加域用户
- 利用CSVDE命令实现域用户账户的批量添加示例