- 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.尝试接触脚本(扩展知识)
- 写批量删除用户的脚本