编写一个脚本create_user.sh 批量新建用户和设置密码
./create_user.sh changsha 20 通过第1个位置变量传递用户名前缀 ,第2个位置变量传递创建多少个用户
随机产生用户的密码,要求满足密码复杂性要求,长度为15 ,密码必须包含数字,大写字母,小写字母,特殊符号
将用户名和密码都保存到文件user_passwd.txt文件里
新建用户的时候先判断用户是否存在,如果存在就不新建用户,只是修改用户的密码,要求满足密码复杂性要求,长度为15 ,密码必须包含数字,大写字母,小写字母,特殊符号
bash脚本
create_user.sh
,它接受两个参数:用户名前缀和要创建的用户数量。该脚本会检查用户是否已存在,如果存在,则仅更新密码;如果不存在,则创建新用户并设置密码。密码满足复杂性要求,并保存用户名和密码到user_passwd.txt
文件中。
#!/bin/bash
# 检查参数数量
if [ $# -ne 2 ]; then
echo "Usage: $0 <username_prefix> <number_of_users>"
exit 1
fi
prefix=$1
num_users=$2
user_passwd_file="user_passwd.txt"
# 生成符合要求的密码
generate_password() {
cat /dev/urandom | tr -dc 'A-Za-z0-9!@#$%^&*' | fold -w 15 | head -n 1
}
# 检查用户是否存在,存在则更新密码,不存在则创建用户
create_or_update_user() {
local username=$1
local password=$2
if id "$username" &>/dev/null; then
# 用户存在,更新密码
echo "User $username exists, updating password."
echo "$username:$password" | chpasswd
else
# 用户不存在,创建用户
echo "User $username does not exist, creating user."
useradd "$username"
echo "$username:$password" | chpasswd
fi
# 保存用户名和密码到文件
echo "$username:$password" >> "$user_passwd_file"
}
# 主逻辑
for (( i=1; i<=num_users; i++ ))
do
username="${prefix}${i}"
password=$(generate_password)
create_or_update_user "$username" "$password"
done
echo "User creation and password update completed. Details saved to $user_passwd_file."
要使用此脚本,请确保有权限创建用户和修改密码(通常需要root权限)。将脚本保存到文件
create_user.sh
,赋予执行权限:
chmod +x create_user.sh
然后以root用户身份运行脚本:
sudo ./create_user.sh changsha 20
这将创建20个用户,用户名以changsha
为前缀,密码随机生成并满足复杂性要求,用户名和密码将被保存到user_passwd.txt
文件中。