欢迎光临
我们一直在努力

Shell实战脚本——批量创建用户(企业运维常用)

一、前言

服务器集群、测试环境需要批量创建大量系统用户,手动创建效率极低。本脚本实现:批量创建用户、统一初始化密码、强制首次登录改密、自动判断用户是否存在、日志记录。


二、批量创建用户完整脚本(可直接上线)

#!/bin/bash
# 批量创建用户脚本
# 作者:运维实战
LOG_FILE="/var/log/create_user.log"

# 日志函数
log_info(){
echo "[$(date +%Y-%m-%d\\ %H:%M:%S)] [INFO] $1" | tee -a $LOG_FILE
}

# 定义用户列表
USER_LIST=(test01 test02 test03 test04 test05)
# 统一初始密码
PASSWD="Test@123456"

log_info "===== 开始批量创建用户 ====="

for user in ${USER_LIST[@]}
do
# 判断用户是否存在
id $user &>/dev/null
if [ $? -eq 0 ];then
log_info "用户 $user 已存在,跳过创建"
else
# 创建用户
useradd $user
# 设置密码
echo $PASSWD | passwd –stdin $user &>/dev/null
# 强制首次登录修改密码
chage -d 0 $user
log_info "用户 $user 创建成功,初始密码:$PASSWD"
fi
done

log_info "===== 所有用户创建完成 ====="


三、脚本核心功能说明

  • id 用户名 判断用户是否存在,避免重复创建报错

  • passwd –stdin 非交互式设置密码

  • chage -d 0 强制用户下次登录必须修改密码

  • 全程日志记录,方便审计


四、扩展:脚本传参创建自定义用户

不写死列表,通过外部传参批量创建:

#!/bin/bash
if [ $# -eq 0 ];then
echo "用法:$0 用户名1 用户名2 …"
exit 1
fi

PASSWD="Admin@123456"
for user in $@
do
id $user &>/dev/null || useradd $user
echo $PASSWD | passwd –stdin $user
echo "用户 $user 创建完成"
done


五、删除批量用户(附带脚本)

#!/bin/bash
USER_LIST=(test01 test02 test03 test04 test05)
for user in ${USER_LIST[@]}
do
userdel -r $user
echo "删除用户:$user"
done

赞(0)
未经允许不得转载:171主机测评 » Shell实战脚本——批量创建用户(企业运维常用)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址