创建存放用户的文件users
cat users
test01
test02
test03
#!/usr/bin/env bash
# 定义的函数
some_function() {
# 操作逻辑
return
}
# 函数:创建用户
create_user() {
my_array=()
while IFS= read -r i # 使用while循环和read更安全并且兼容空格
do
id "$i" > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "The user $i already exists!"
my_array+=("$i")
else
useradd -m -s /bin/bash "$i" > /dev/null 2>&1
fi
done < ./users
if [ "${#my_array[@]}" -eq 0 ];then
some_function
else
exit 1
fi
}
# 函数:生成随机密码
generate_password() {
local length="$1"
if [ -z "$length" ]; then
length=16
fi
tr -dc 'A-Za-z0-9!@#$%^&*()_+{}|:<>?' < /dev/urandom | head -c "$length" | xargs
}
# 函数:更新用户密码
rm -rf password.txt
update_passwd() {
while IFS= read -r i
do
id "$i" > /dev/null 2>&1
if [ $? -eq 0 ]; then
# 生成新的密码
new_password=$(generate_password 16)
# 更改用户的密码
echo "$i:$new_password" | chpasswd
# 输出新密码
echo "新的 $i 密码已设置为: $new_password" >> password.txt
echo "用户 $i 密码已存放到./password.txt文件中"
else
echo "$i User creation failed!"
exit 1
fi
done < ./users
}
# 确认是创建用户还是删除用户
del_arry=()
if [ "${1}" = "delete" ];then
while IFS= read -r i # 使用while循环和read更安全并且兼容空格
do
id "$i" > /dev/null 2>&1
if [ $? -eq 0 ]; then
userdel "$i" > /dev/null 2>&1
del_arry+=("$i")
else
echo "${i} user does not exist"
fi
done < ./users
echo "已删除用户: ${del_arry[@]}"
exit 0
elif [ "${1}" = "create" ];then
# 创建用户
create_user
# 更改用户密码
update_passwd
elif [ "${1}" = "update" ];then
# 更改用户密码
update_passwd
else
echo "ureate user or delete user or update user password? create/delete/update"
exit 1
fi
执行脚本
# 创建用户
bash user.sh create
# 删除用户
bash user.sh delete
# 更新用户密码
bash user.sh update
评论 (0)