Linux 批量添加和删除用户
一,工具作用Linux 批量添加和删除用户
在 Linux 用户管理中,经常需要用到批量添加或删除用户;如果用
useradd 或 adduser 来添加大量用户,对系统管理员的体力和耐力是
一个极大的挑战;好在 Linux 有大批量用户添加工具newusers ,我
们通过 newusers 和 chpasswd 就可以轻松完成大批量用户的添加。
(注:以下所有的操作都以 root 用户执行)
Linux 批量添加用户:
编写 userfile.txt 文件(如下),在 liunx 下将该文件转化为 unix
格式(dos2unix),然后执行newusers userfile.txt。
(关于 userfile.txt 文件文件格式说明:
wangrx:x:500:500:Wang, Renxiao:/home/wangrx:/bin/tcsh
用户名:密码:UserID:GroupID:FullName:宿主目录:Shell
注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏
可以留做空白或输入 x 号。如果只创建用户目录而不允许用户登录,
则将/bin/tcsh 改为/sbin/nologin。如果密码栏输入明文密码,可
在执行 newusers userfile.txt 之后直接执行 pwconv 命令将
/etc/passwd 加密,同步用户信息到/etc/shadow文件。)
userfile.txt
wangrx:x:500:500:Wang, Renxiao:/home/wangrx:/bin/tcsh
liuzg:x:501:500:Liu, Zhiguo:/home/liuzg:/bin/tcsh
tjcheng:x:502:500:Cheng, Tiejun:/home/tjcheng:/bin/tcsh
yzhao:x:503:500:Zhao, Yuan:/home/yzhao:/bin/tcsh
lixun:x:504:500:Li, Xun:/home/lixun:/bin/tcsh
linfu:x:505:500:Lin, Fu:/home/linfu:/bin/tcsh
zhxl:x:506:500:Zhang, Xinglong:/home/zhxl:/bin/tcsh
liyan:x:507:500:Li, Yan:/home/liyan:/bin/tcsh
bchzhou:x:508:500:Zhou, Bingcheng:/home/bchzhou:/bin/tcsh
zhmshi:x:509:500:Shi, Zhimin:/home/zhmshi:/bin/tcsh
wangyl:x:510:500:Wang, Yanling:/home/wangyl:/bin/tcsh
liuzh:x:511:500:Liu, Zhihai:/home/liuzh:/bin/tcsh
zhucx:x:512:500:Zhu, Cuixia:/home/zhucx:/bin/tcsh
liww:x:51:500:Li, Wenwen:/home/liww:/bin/tcsh
accelrys:x:601:601:Accelrys Products:/home/accelrys:/bin/tcsh
tripos:x:602:602:Tripos Products:/home/tripos:/bin/tcsh
ccdc:x:603:603:CCDC Products:/home/ccdc:/bin/tcsh
schrodinger:x:604:604:Schrodinger
Products:/home/schrodinger:/bin/tcsh
ccg:x:605:605:CCG Products:/home/ccg:/bin/tcsh
zhy:x:701:701:Zhang, Ya:/home/zhy: /bin/tcsh
wanggt:x:702:702:Wang, Guitao:/home/wanggt: /bin/tcsh
Linux 批量设置密码
编写 userpwfile.txt 文件(如下,xxxxxx 为具体的密码),然后执
行 chpasswd < userpwfile.txt 导入密码,再执行 pwconv 命令将
/etc/passwd 加密,同步用户信息到/etc/shadow文件。
userpwfile.txt
wangrx:xxxxxx
liuzg:xxxxxx
tjcheng:xxxxxx
yzhao:xxxxxx
lixun:xxxxx
linfu:xxxxxx
zhxl:xxxxxx
liyan:xxxxxx
bchzhou: xxxxxx
zhmshi: xxxxxx
wangl: xxxxxx
liuzh: xxxxxx
zhucx: xxxxxx
liww: xxxxxx
accelrys: xxxxxx
tripos: xxxxxx
ccdc: xxxxxx
schrodinger: xxxxxx
ccg: xxxxxx
zhy: xxxxxx
wanggt: xxxxxx
批量添加用户后目录权限的设置,使同一工作组用户之间可以相互访
问各自目录,但不能修改其他用户目录中的文件。
chmod –R a+rx home
cd home
chmod –R g+rx *
Linux 批量删除用户
编辑 delusers.sh 文件(如下),然后执行 shdelusers.sh
delusers.sh
userdel –r tripos
userdel –r ccdc
userdel –r ccg
附:
管理用户(user)的工具或命令
useradd
adduser
passwd
usermod
注:添加用户;
注:为用户设置密码;
注:修改用户命令,可以通过 usermod来修改登
录名、用户的家目录等等;
pwconv
注:使用影子密码口令系统,将/etc/passwd加
密,同步用户信息到/etc/shadow 文件。pwck
注:pwck 是校验用户配置文件/etc/passwd
和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:换为传统口令系统,是 pwconv 的立逆操作,从
/etc/shadow 和 /etc/passwd 创建/etc/passwd,会删除
/etc/shadow 文件;
二,脚本作用Linux 批量添加和删除用户
#!/bin/bash #for useradd read -p "pleae enter a number (1-99):" num read -p "please enter prefix :" pre read -p "please enter passwd:" pwd read -p "please enter expire time(YYYY/mm/dd):" etime for ((i=1; i<="$num"; i++)) do if [ $i -lt 10 ] ; then name="$pre"0"$i" else name="$pre""$i" fi useradd -e $etime $name echo $pwd |passwd $name --stdin &>/dev/null #自动设置密码 done
批量删除用户
#!/bin/bash #for userdel if [ $# -le 0 ] ; then echo "erro:please enter the prefix" exit 1 fi tar -czf /backup/users.tgz /etc/passwd /etc/shadow /etc/group&>/dev/null del=$(grep "$1" /etc/passwd |awk -F":" '{print$1}' |grep -v "root") for d in $del do userdel -r $d done