• 1、用户类的脚本:
  • 案例1:创建指定用户test,配置初始密码123456,判断用户是否存在,
  • 1)如果存在,就提示用户已存在
  • 2)如果不存在,就创建用户,创建完之后提示,用户创建成功
  • 分析:
  • id 查询用户是否存在
  • useradd 创建用户
  • echo 123456 | passw --stdin 非交互式修改用户密码
  • 通过变量$?查看命令执行的结果
  • 不需要看到的输出都丢到/dev/null
  • 解法1:low
  • #!/bin/bash
  • # 定义变量
  • user=test
  • pass=123456
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]];then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • 解法二:
  • 通过传参来实习脚本的灵活性
  • #!/bin/bash
  • # 定义变量
  • user=$1
  • pass=$2
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • 解法三:
  • 通过交互式定义变量
  • #!/bin/bash
  • # 定义变量
  • read -p "请输入你要创建的用户名: " user
  • read -p "请输入初始密码: " pass
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • 案例2:批量创建具有相同特征的用户
  • 比如创建test01-10一共十个用户
  • 变量固化的方式
  • #!/bin/bash
  • # 定义变量
  • user_prefix=test
  • pass=123456
  • for i in {01..10}
  • do
  • user=$user_prefix$i
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • done
  • 交互式
  • #!/bin/bash
  • # 定义变量
  • user_prefix=test
  • pass=123456
  • read -p "请输入你要创建的用户前缀: " user_prefix
  • read -p "请输入初始密码: " pass
  • for i in {01..10}
  • do
  • user=$user_prefix$i
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • done
  • 案例3:批量创建没有相同特征的用户
  • 用户数量少,直接写
  • #!/bin/bash
  • pass=123456
  • for user in zs ls ww
  • do
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • done
  • 用户数量多,且需要后期增加,灵活性更高,建议创建一个独立的用户列表文件,将文件传参至脚本
  • touch /root/user.list
  • 内容格式:一行一个用户名
  • tanfei
  • laomiao
  • x1
  • ac
  • y2
  • c5
  • u6
  • #!/bin/bash
  • pass=123456
  • for user in $(cat /root/user.list)
  • do
  • # 查询用户test是否存在
  • id $user &> /dev/null
  • # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
  • if [[ $? -eq 0 ]]; then
  • echo "用户$user已存在"
  • else
  • echo "开始创建用户$user..."
  • sleep 1
  • useradd $user
  • echo $pass | passwd --stdin $user &> /dev/null
  • echo "用户$user创建成功"
  • fi
  • done
  • 总结:su和sudo的区别
  • 普通用户使用管理员身份执行useradd的方式
  • su
  • su - root -c "useradd xxx"
  • 提示输入root用户密码
  • sudo
  • 授权(修改/etc/sudoers)
  • sudo useradd xxx
  • 提示输入自己的密码
  • 任务:
  • 1.su用户切换
  • 1)如何切换,如何退回
  • su - 用户名 Ctrl+d
  • 2)-c
  • 2.sudo提权 *****
  • -l
  • 配置文件
  • 配置内容格式
  • 企业应用
  • 3.尝试接触脚本(扩展知识)
  • 写批量删除用户的脚本