Ubuntu下通过shell脚本批量新建用户并设置默认密码

在 linux用户名和用户组的操作笔记 中,我介绍了如何通过命令行新建用户

但是,事实上,学院又很多很多很多学生和老师,我不可能一个个为它们新建用户,最好有一个脚本可以实现批量新建用户

本文参考 Linux下批量添加用户的两种方法

其实我本人根本不会用shell脚本,只会一点点linux的指令

本着拿来主义的精神,原作者写的脚本我修修改改就拿来用了

先上代码 test_user_add.sh

for username in $(more users.list)
do
	if [ -n $username ]
	then
		useradd -d /home/$username -s /bin/bash -m $username
		echo
		# echo $ username"123" | paswd --stdin $username
		echo "$username:123456" | chpasswd
		echo
		echo "User $username's password has been changed!"
	else
		echo "The username is null!"
	fi
done

原文中的--stdin,在Ubuntu下无法使用

echo $ username"123" | paswd --stdin $username

需要修改为

echo "$username:123456" | chpasswd

这段代码中,我们将用户名设定为users.list文件中的用户名,默认密码设定为123456

如果你是在win下编辑test_user_add.sh,并通过scp复制到Ubuntu,可能会出现以下报错

./test_user_add.sh: line 2: syntax error near unexpected token `$'do\r''
'/test_user_add.sh: line 2: `do

具体原因是不同系统回车符不同

unix下:        <LF>                :/n

windows下:   <CR><LF>       :/r/n

mac下:          <CR>               :/r

你可以在linux通过vim将回车都换一遍,也可以把win下的编辑器改成linux格式

再根据需要建立一个users.list文件,存入需要新建的用户

gao***bin
quan***ming
liu***yi
chen***tian

每个用户之间用回车隔开,注意回车的格式需要是linux中的格式

具体的文件放在GitHub上了

ubuntu-add-user

可自行下载

顺便改了一个批量删除的脚本

for username in $(more user_del.list)
do
	if [ -n $username ]
	then
		deluser --remove-home $username	# 删除用户的主目录和邮箱
		# deluser --remove-all-files $username	# 删除用户拥有的所有文件
		echo
		echo "User $username has been deleted!"
	else
		echo "The username is null!"
	fi
done

猜你喜欢

转载自blog.csdn.net/weixin_39518984/article/details/111919286