最近在定制ISO的时候,有个需求是特定的项目用特定的用户去运行,取消root权限。这样就需要根据项目默认创建一批用户。于是写了个简单的脚本在系统安装完成后自动添加用户
简单例子
umask 0002
#批量创建用户组
for groups in aa bb cc dd
do
groupadd $groups
done
#批量创建相同用户组的用户
for users in aa bb
do
useradd -g aa $users
done
useradd -g cc cc
useradd -g dd dd
例子
例子:让系统自动添加a b c d 四个用户,并且密码和用户名同名,脚本如下:
#!/bin/bash
#自动添加用户和密码,且同名
for UU in a b c d
do
useradd $UU
echo $UU | passwd --stdin $UU
done
自动添加a b c d 四个用户,并且密码都是123:
#!/bin/bash
#自动添加用户和密码,且密码都是123
for UU in a b c d
do
useradd $UU
echo 123 | passwd --stdin $UU
done
如何给已有的用户改密码?
echo “newpassword” | passwd –stdin username
一:建立要添加用户列表的文件
#ee username.list
usr1
usr2
usr3
保存退出
二:写shell脚本实现自动添加用户(密码和用户名一样)
#ee useradd.sh
#!/bin/sh
for USER in $(cat username.list)
do
mkdir /home/$USER
echo $USER | pw useradd $USER -h 0
HOME=/home/$USER
done
保存退出
#chmod a+x haha.sh
#./haha.sh
注释:echo $USER | pw useradd $USER -h 0中的
第一个$USER是用户密码($USER就是usrname.list里面的内容)
第二个$USER是用户名
例子
newusers+chpasswd批量添加用户
1、首先我们创建用户文件和密码文件;
我们要创建包含新用户的文件userfile.txt ;另一个是为新添加的用户设置密码的userpwdfile.txt;
[root@localhost ~]# touch userfile.txt
[root@localhost ~]# touch userpwdfile.txt
然后用文本编辑器打开文件userfile.txt,添加如下内容;
win00:x:520:520::/home/win00:/sbin/nologin
win01:x:521:521::/home/win01:/sbin/nologin
win02:x:522:522::/home/win02:/sbin/nologin
win03:x:523:523::/home/win03:/sbin/nologin
win04:x:524:524::/home/win04:/sbin/nologin
win05:x:525:525::/home/win05:/sbin/nologin
win06:x:526:526::/home/win06:/sbin/nologin
win07:x:527:527::/home/win07:/sbin/nologin
win08:x:528:528::/home/win08:/sbin/nologin
win09:x:529:529::/home/win09:/sbin/nologin
userfile.txt 文件内容格式和 /etc/passwd 的格式是一样的,必须严格按照/etc/passwd 的格式来书写;上面所添加的用户都不能登录系统,但完全能用于ftp登录,但您得在相应ftp服务器的配置文件中打开让本地用户有读写权限;如果您想让上 面的部份用户可以登录系统,可以把SHELL类似改一改,比如改成/bin/bash ;
我们再来书写新增用户的密码文件userpwdfile.txt内容;这个文件的内容中的用户名要与 userfile.txt用户名相同且严格按照“用户名:密码”的格式来写,一个用户一行;也就是说我们先是添加了win00到win09的用户,现在要为这些用户更新密码;比如下面的;
win00:123456
win01:654321
win02:123321
win03:qweewq
win04:google
win05:adadwc
win06:wsscee
win07:xxec32
win08:543wew
win09:3ce3wf
2、用newusers批量添加用户,此时用户是没有密码的
[root@localhost ~]# newusers userfile.txt
2、执行命令/usr/sbin/pwunconv,将/etc/shadow产生的shadow密码解码,然后回写到/etc/passwd中, 并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消shadow password功能,关闭影子文件。
[root@localhost ~]# pwunconv
3、 用chpasswd批量修改密码
[root@localhost ~]# chpasswd < userpwdfile.txt
4、最后不要忘了恢复影子文件,保证安全,您可以通过下面的命令来映射到 /etc/shadow文件名
[root@localhost ~]# pwconv