shell实战自动化创建用户,并设置密码

您所在的位置:网站首页 linux命令创建用户并设置密码保护模式 shell实战自动化创建用户,并设置密码

shell实战自动化创建用户,并设置密码

2024-07-12 22:35| 来源: 网络整理| 查看: 265

目录

一、主程序

二、程序分析

三、程序实战提升①

 四、程序实战提升②

一、主程序 #!/bin/bash # 创建用户并设置密码的函数 create_user() { local username=$1 local password=$2 if id "$username" &>/dev/null; then echo "用户 $username 已经存在。" else echo "正在创建用户 $username ..." useradd $username echo "$username:$password" | chpasswd echo "已为用户 $username 设置密码。" fi } # 读取输入信息 echo "请输入要创建的用户列表,用逗号隔开:" read user_input # 检查用户输入是否为空 if [ -z "$user_input" ]; then echo "输入错误,未提供任何用户名。" exit 1 fi # 设置通用密码 PASSWORD="xxxxxxxxxxxxxxx" # 分割输入的用户,并为每个用户调用创建函数 IFS=',' read -ra USERS /dev/null 将命令的标准输出和错误输出都重定向到 /dev/null(即丢弃这些输出)。如果用户已存在(if 条件为真),则打印存在信息。如果用户不存在,使用 useradd 命令创建用户,然后通过管道将新密码传递给 chpasswd 命令来设置密码。

脚本的剩余部分:

提示用户输入一系列用户名,用逗号分隔。检查用户输入是否为空,若为空则打印错误信息并退出脚本。设置了一个变量 PASSWORD 存储通用密码 "xxxxxxxxxx"。使用 IFS=',' read -ra USERS /dev/null; then echo "用户 $username 已经存在。" else echo "正在创建用户 $username ..." useradd $username echo "$username:$password" | chpasswd echo "已为用户 $username 设置密码。" fi } # 读取输入信息 echo "请输入要创建的用户列表,用逗号隔开:" read user_input # 检查用户输入是否为空 if [ -z "$user_input" ]; then echo "输入错误,未提供任何用户名。" exit 1 fi # 请求用户输入密码 echo "请输入用户密码(留空将自动生成8位的随机密码):" read -s user_password # 如果用户未输入密码,则生成8位随机密码 if [ -z "$user_password" ]; then user_password=$(pwgen 8 1) echo "未提供密码,将为所有用户使用随机密码:$user_password" fi # 分割输入的用户,并为每个用户调用创建函数 IFS=',' read -ra USERS /dev/null; then echo "pwgen 命令未找到,请先安装 pwgen。" # 判断系统类型并安装 pwgen local os_type=$(uname -s) case "$os_type" in Linux) if [ -f /etc/debian_version ]; then # 基于Debian的系统 sudo apt-get update && sudo apt-get install -y pwgen elif [ -f /etc/redhat-release ]; then # 基于RedHat的系统 sudo yum install -y pwgen else echo "未识别的 Linux 发行版。请手动安装 pwgen。" fi ;; Darwin) # macOS 系统 brew install pwgen ;; *) echo "不支持的操作系统。请手动安装 pwgen。" ;; esac fi } # 生成随机密码的函数 generate_random_password() { ensure_pwgen_installed pwgen 8 1 } # 读取输入信息 echo "请输入要创建的用户列表,用逗号隔开:" read user_input # 检查用户输入是否为空 if [ -z "$user_input" ]; then echo "输入错误,未提供任何用户名。" exit 1 fi # 获取密码 echo "请输入要设置的密码(留空则为每个用户生成随机密码):" read -s user_password # 如果未输入密码则生成随机密码 if [ -z "$user_password" ]; then echo "未输入密码,将为每个用户生成随机密码。" user_password=$(generate_random_password) fi # 分割输入的用户,并为每个用户调用创建函数 IFS=',' read -ra USERS


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3