前言:
学习或生产工作中,你可能遇到批量创建 Centos 用户的情况,一段shell 脚本来帮助你:
如何做:
0,我们把脚本保存为 ac.sh;
1,提前建立一个 accountadd.txt 的文本,一行一个写入需要建立的用户名;
2,使用 # ./ac.sh create 来执行批量创建;
3,密码会存入当前目录的 outputpw.txt;
4,使用 # ./ac.sh delete 来执行批量删除;
脚本:
# 0. 这个shell 会为你批量建立 user 账号;# 1. 检查 "accountadd.txt" 是否存在? 你需要先手工建立这个文本;# 2. "accountadd.txt" 中一个用户名一行;# 3. 使用 openssl 创建 users password;# 4. 设定新用户初次登录必须修改密码;# 0. userinput usergroup="" # 需要建立新组,在这里添加;pwmech="openssl" homeperm="no" # if "yes" then it will modify home dir permission to 711 # 1. check the accountadd.txt file action="${1}" # 命令动作,建立用户使用"create",删除用户使用 "delete" ;if [ ! -f accountadd.txt ]; then echo "没有 accountadd.txt 文件!" exit 1fi # 2. 执行 [ "${usergroup}" != "" ] && groupadd -r ${usergroup}rm -f outputpw.txtusernames=$(cat accountadd.txt) for username in ${usernames}do case ${action} in "create") [ "${usergroup}" != "" ] && usegrp=" -G ${usergroup} " || usegrp="" useradd ${usegrp} ${username} # 新增账号; [ "${pwmech}" == "openssl" ] && usepw=$(openssl rand -base64 6) || usepw=${username} echo ${usepw} | passwd --stdin ${username} # 创建密码; chage -d 0 ${username} # 设定新用户初次登录必须修改密码; [ "${homeperm}" == "yes" ] && chmod 711 /home/${username} echo "username=${username}, password=${usepw}" >> outputpw.txt ;; "delete") echo "deleting ${username}" userdel -r ${username} ;; *) echo "Usage: $0 [create|delete]" ;; esacdone
执行创建:
# ./ac.sh create
查看密码:
# cat outputpw.txt
批量删除:
# ./ac.sh delete
代码高亮截图:
还要注意:
如果你在windows下复制粘贴编辑脚本代码,
若出现异常情况,请把 windows 换行符 替换成 linux 换行符:
以上面的脚本举例,执行下面代码转换换行符:
# sed -i 's///' ac.sh
- window下默认是
- linux下是
- unix下是