免费注册 查看新帖 |

Chinaunix

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

linux下批量添加用户和修改密码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-17 21:35 |只看该作者 |倒序浏览
  一、为什么需要大批量添加用户
  我们什么时候才需要大批量添加用户呢?有时我们需要让几十个或更多的用户在主机上完成相同或相似的任务,比如我们想同时添加一堆的ftp 用户,这些ftp用户归属同一组,但不允许他们通过终端或远程登录服务器;有时我们可能为了教学,比如我们有100个学生,并且每个学生在服务器上有一个独立的用户名,能登录系统,并能管理自己的帐号或完成一些在自己权限下的作业。
  二、批量用户添加流程
  批量添中用户流程是通过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 ,比如上面的例子
  
   如果你要批量添加的用户需要有环境变量,用上面的 newusers 添加的用户是没有环境变量的,不过我们可以通过 useradd 命令自己编写shell脚本,很简单,如下:
        
    #!/bin/bash
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    file=/home/user_list
    cat $file | grep -v "#" | while read LINE
    do
          echo $LINE
          useradd $LINE
    done
   
   
    如果你暂时不需要添加某个用户,可以在文件内用 “#” 过滤掉该行。
    注意:
        如果你用这个脚本添加用户,注意 /home/user_list 文件每个用户单独一行,只包括用户名。
            
    自定义脚本所需文件 /home/user_list 格式如下:
         
    [root@localhost beinan]# more user_list
    win01
    win02
    #win03
  2、chpasswd 批量更新用户口令工具
  chpasswd 工具是成批更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中
  chpasswd 并且不能有空行
  用户名:口令
  用户名1:口令1
  用户名2:口令2
  举例:
  win00:123456
  win01:654321
  三、批量添加用户实例
  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
  userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash
  我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;
  win00:123456
  win01:654321
  
  2、通过脚本 useradd.sh ,newusers 完成批量添加用户
    [root@localhost ~]# ./useradd.sh
    [root@localhost ~]# newusers userfile.txt
    3、通过 chpasswd 完成批量修改用户密码
   
  [root@localhost ~]# chpasswd < userpwdfile.txt
  这样就算添加完成了,如果您发现 /etc/passwd 中能发现用户的明口令,您可以通过下面的命令来映射到 /etc/shadow文件名;
  [root@localhost ~]# pwconv     


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP