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