跳到主要内容

写一个脚本,实现批量添加20个用户,用户名为user01-20,密码为user后面跟5个随机字?

参考答案:

以下是一个使用bash shell脚本实现的示例,它创建20个用户,用户名从user01user20,并为每个用户设置一个随机密码。密码是"user"后面跟着5个随机字母。

首先,你需要确保你有足够的权限来创建用户(通常这需要root权限)。然后,你可以保存以下脚本到一个文件中,例如create_users.sh,并使用bash create_users.sh命令来运行它。

#!/bin/bash

# 确保脚本以root权限运行
if [ "$(id -u)" != "0" ]; then
   echo "此脚本必须以root权限运行" 1>&2
   exit 1
fi

# 定义一个函数来生成随机密码
generate_password() {
    cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 5 | head -n 1
}

# 遍历用户名并创建用户
for i in {1..20}; do
    username="user$(printf "%02d" $i)"
    password="user$(generate_password)"

    # 检查用户是否已存在
    if id "$username" >/dev/null 2>&1; then
        echo "用户 $username 已存在,跳过创建。"
        continue
    fi

    # 创建用户并设置密码
    useradd "$username"
    echo "$username:$password" | chpasswd

    echo "用户 $username 创建成功,密码为: $password"
done

注意

  1. 此脚本使用/dev/urandom来生成随机密码,这通常对于大多数用途是足够的。但是,如果你需要更强的随机性,你可能需要考虑使用其他方法。
  2. 脚本使用chpasswd命令来设置用户的密码。这要求chpasswd在你的系统上可用,并且你的shell支持echo命令将密码传递给chpasswd
  3. 出于安全考虑,脚本在输出中显示了新用户的密码。在实际环境中,你可能希望将密码保存在一个安全的地方,而不是直接输出到控制台。
  4. 请确保在运行此脚本之前备份你的系统或至少有一个恢复计划,以防万一出现任何问题。