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 批量添加和删除用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#!/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
|
批量删除用户
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/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
|