Linux技巧园(39):批量添加用户有诀窍

整机外设

  添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们就不太可能还使用useradd命令一个一个地添加了,我们需要找一种简便快捷的方法来创建大量用户。操作方法如下:

  1.创建用户数据文件user.txt

  先编辑一个文本用户文件,每一列按照/etc/passwd密码文件的格式书写,要注意,每个用户的用户名、UID、宿主目录都不能相同,其中密码栏可以留作空白。请看下面的一个范例文件user.txt:

  user001::600:100:user:/home/user001:/bin/bash

  user002::601:100:user:/home/user002:/bin/bash

  user003::602:100:user:/home/user003:/bin/bash

  user004::603:100:user:/home/user004:/bin/bash

  user005::604:100:user:/home/user005:/bin/bash

  ……

  通过拷贝和粘贴的办法生成满足你需要的用户数量的文件。

  2.将user.txt中的数据导入

  以root身份执行命令/usr/sbin/newusers,从刚建立的用户文件user.txt导入数据,建立用户:

  # newusers < user.txt

  然后可以执行命令vipw或vi /etc/passwd检查/etc/passwd文件是否已经出现这些用户的数据,检查用户的宿主目录是否已经建立。

  3.对/etc/shadow进行解码

  执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中,并将/etc/shadow的shadow密码栏删掉。这是为了下一步骤的密码转换工作,即先取消shadow password功能。

  # pwunconv

  4.创建密码对照文件passwd.txt

  编辑每个用户的密码对照文件,一个范例文件passwd.txt的内容如下:

  user001:密码

  user002:密码

  user003:密码

  user004:密码

  user005:密码

  ……

  5.将密码对照文件passwd.txt数据导入

  以root身份执行命令/usr/sbin/chpasswd建立用户密码,chpasswd会将经过/usr/bin/passwd指令编码过的密码写入/etc/passwd的密码栏。

  # chpasswd < passwd.txt

  6.将密码编码为shadow password

  确定密码经编码写入/etc/passwd的密码栏后,执行命令/usr/sbin/pwconv将密码编码为shadow password,并将结果写入/etc/shadow。

  # pwconv

  这样就完成了大量用户的创建了。然后可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确,这样就可以轻松地建立大量用户了。