免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1089 | 回复: 0
打印 上一主题 下一主题

Linux下批量添加用户 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-26 17:59 |只看该作者 |倒序浏览

又要教Linux实验课了,去年带了一年,可惜电脑内的数据丢了一次
去年的教案和程序以及学生作业都丢了

还好凭记忆可以记下来,当老师,可见经验的重要,一定要保护好自己的数据。
这篇文章主要解决一个问题:
在服务器上创建100个学生用户,为每个学生用户分配ID和password,以便学生在windows环境下FTP到服务器,在自己的环境下编程序。
在网上找了找文章,知道用一下几个命令来实现:
newusers 成批添加用户的工具

chpasswd 批量更新用户口令工具

具体操作步骤如下:
1. 创建文件:new_users.txt,内容如下:
stu001::600:600:stu:/home/stu001:/bin/bash
stu002::601:601:stu:/home/stu002:/bin/bash
stu003::602:602:stu:/home/stu003:/bin/bash
stu004::603:603:stu:/home/stu004:/bin/bash
stu005::604:604:stu:/home/stu005:/bin/bash
......
2. 创建文件:new_password.txt,内容为上个文件的密码列表:
stu001:blcucs03
stu002:blcucs03
stu003:blcucs03
stu004:blcucs03
stu005:blcucs03
......
3. 用以下命令:
newusers userfile.txt
chpasswd
还可以用pwconv来更改口令的明暗
创建完成,可以切换用户试试用学生用户名登录
然后再在网络环境下,从其他机器上尝试一下telnet
注意,要把服务器的防火墙关掉,之前还要检验telnet服务是否已经启动
具体方法baidu一下。
下一篇文章我要说说Linux与Windows之间的通讯问题,也是学生迫切要解决的。
刚才去实验室把环境搭了起来,有一个问题
批量增加用户时添加的用户不能登陆,说shell有问题
我仔细check了脚本,更改了半天,还是不行
最后在“用户和组管理”的GUI下看到:这些新建的用户所用的bash后边都有一个奇怪的符号,百思不得其解。
后来知道,在windows下编辑users_list时,好像多加了一个换行符,结果每个用户所用的bash就成了/bin/bash·而不是/bin/bash
当然登陆不上去了!
所以在windows下编辑txt时一定要小心格式啊!
下面是两篇增加用户的相关文章,参考。


************************************************
附录1:摘自
http://www.linuxsir.org/main/?q=node/109

************************************************
作者:北南南北
来自:LinuxSir.Org
摘要: 在 Linux 用户管理中,大批量添加用户是经常需要的;如果用useradd或adduser 来添加大量用户,对系统管理员的体力和耐力是一个极大的挑战;好在Linux有大批量用户添加工具 newusers ,我们通过newusers 和chpasswd 就可以轻松完成大批量用户的添加;
环境: Fedora 4.0 i386

目录索引

一、阅读此文件您需要掌握的基础知识;
二、为什么需要大批量添加用户;
三、批量用户添加流程;

四、批量添加用户实例;

五、后记;
六、关于本文;
七、致谢;
八、参考文档;
九、相关文档;


一、阅读此文件您需要掌握的基础知识;

《Linux 用户(user)和用户组(group)管理概述》
《用户(user)和用户组(group)配置文件详解》
《Linux 用户(User)查询篇》
《Linux 用户管理工具介绍》
《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中;

chpasswd
四、批量添加用户实例;


1、首先我们创建用户文件和密码文件;

我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;
[root@localhost ~]# touch userfile.txt
[root@localhost ~]# touch userpwdfile.txt
然后用文本编辑器打开文件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
win09:x:529:529::/home/win09:/sbin/nologin
userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;
我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;
win00:123456
win01:654321
win02:123321
win03:qweewq
win04:google
win05:adadwc
win06:wsscee
win07:xxec32
win08:543wew
win09:3ce3wf

2、通过newusers和chpasswd 完成批量添加用户;

[root@localhost ~]# newusers userfile.txt
[root@localhost ~]# chpasswd
这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;
[root@localhost ~]# pwconv

五、后记;

用户管理就算差不多完成了,到目前为止,我已经写了六篇,虽然质量不太高,但也算能称得上比较系统;在以后的几天里,我要写一写文件管理;呵。。。进度是慢了点,但还是在坚持着;坚持就是胜利,不是吗?
六、关于本文;
本文是大批量添加用户的一个实例,主要是newusers和chpasswd的用法的解说;实话实说,这两个工具还是有用的;至于能用在哪,我前面已经说过了,可以用在ftp的虚拟用户,可以用到教学中;
本文没有技术含量,不值一提,但不写出来,感觉对于一个系列文档来说又少了内容;还是写出来为好;
七、致谢;
八、参考文档;
参考man 和help ;
九、相关文档;
《Linux 用户(user)和用户组(group)管理概述》
《用户(user)和用户组(group)配置文件详解》
《Linux 用户(User)查询篇》
《Linux 用户管理工具介绍》
《Linux 系统中的超级权限的控制》
****************************************************
附录2:
****************************************************
再来说几句吧,关于/etc/passwd这个文件中共有七个段。每段中以:号分开。还是用下面的例子: win03:x:501:501::/home/win03:/bin/bash 在上面的蓝色的字中,第一段中的win03是用户名;x是密码,因为经过影射后,以x出现。这里当然不可见了:):)如果可见,那安全性就大打折扣了。x后面有两个501,第一个501,我们称之为用户标识码[UID],也就是User ID。第二个501是用户组的ID[也就是GID,Group ID];UID是唯一的,0是root的UID,1-499是系统预留给各种服务和服务器用的。所以我们自己添加的帐号,应该从500开始。GID,每个组也是仅有一个GID。/home/win03是用户目录,/bin/bash是用户所用的工作环境。也就是说用户输入的命令,要通过它来解释,让计算机能“听的懂”。这里用的是bash,也就是系统所默认的。 了解以后,我们就还是说newlist这个文件的内容。因为我们要成批添加用户,然后再成批添加用户的密码,所以我们应该按/etc/passwd中的格式来编写,在newlist中,我们要把这个位置不要添什么东西。我自己制作的newlist的内容如下: win04:x:504:504::/home/win04:/bin/bash win05:x:505:505::/home/win05:/bin/bash win06:x:506:506::/home/win06:/bin/bash win07:x:507:507::/home/win07:/bin/bash win08:x:508:508::/home/win08:/bin/bash win09:x:509:509::/home/win09:/bin/bash
注:最后一行,不要换行,也就是说不要留空行。 我们再编辑newlist的密码文本newlistpwd,这个文件的用户名,也就是win04到win09的,要和上面的文件一一对应。 win04:在这里,你自己要输入密码
win05:在这里,你自己要输入密码
win06:在这里,你自己要输入密码
win07:在这里,你自己要输入密码
win08:在这里,你自己要输入密码
win09:在这里,你自己要输入密码
[注:这是最后一行,不要在后面留空行] 然后执行一系列命令:
[root@linuxsir01 root]# newusers 在上面的一句中,是通过输入向导,把帐号加进去的。用下面的命令来看是否成功了?按:q!退出。
[root@linuxsir01 root]# vipw
用pwunconv命令,关闭投射密码,也就是把/etc/passwd文件中的空码移走,我们能看到我们刚才加入的用户的行中,密码段中都x已经成空的了
[root@linuxsir01 root]# pwunconv
看一下/etc/passwd中的密码位置上是不是有的变成!!,而我们新加入的用户,密码段则是空的,对不对??
[root@linuxsir01 root]#more /etc/passwd
我们把密码文件输进去,用的也是输入向导我们再把密码影射回去。用的就是下面的命令。
[root@linuxsir01 root]# pwconv
我们然后再按[CTRL]+ALT+F2来切换到控制台下,用我们生成的用户和密码来登入系统。这时就不会出现下面的提示了。。。
[root linuxsir01 root]# chpasswd


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3767/showart_91129.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP