Linux脚本
原创
©著作权归作者所有:来自51CTO博客作者要懂得珍惜吖的原创作品,请联系作者获取转载授权,否则将追究法律责任
- 1、用户类的脚本:
- 案例1:创建指定用户test,配置初始密码123456,判断用户是否存在,
- 1)如果存在,就提示用户已存在
- 2)如果不存在,就创建用户,创建完之后提示,用户创建成功
- 分析:
- echo 123456 | passw --stdin 非交互式修改用户密码
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- echo $pass | passwd --stdin $user &> /dev/null
- 解法二:
- 通过传参来实习脚本的灵活性
- #!/bin/bash
- # 定义变量
- user=$1
- pass=$2
- # 查询用户test是否存在
- id $user &> /dev/null
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- if [[ $? -eq 0 ]]; then
- echo $pass | passwd --stdin $user &> /dev/null
- fi
- 解法三:
- 通过交互式定义变量
- #!/bin/bash
- # 定义变量
- read -p "请输入你要创建的用户名: " user
- read -p "请输入初始密码: " pass
- # 查询用户test是否存在
- id $user &> /dev/null
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- if [[ $? -eq 0 ]]; then
- echo $pass | passwd --stdin $user &> /dev/null
- fi
- 案例2:批量创建具有相同特征的用户
- 比如创建test01-10一共十个用户
- 变量固化的方式
- #!/bin/bash
- # 定义变量
- user_prefix=test
- pass=123456
- for i in {01..10}
- do
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- echo $pass | passwd --stdin $user &> /dev/null
- done
- 交互式
- #!/bin/bash
- # 定义变量
- user_prefix=test
- pass=123456
- read -p "请输入你要创建的用户前缀: " user_prefix
- read -p "请输入初始密码: " pass
- for i in {01..10}
- do
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- echo $pass | passwd --stdin $user &> /dev/null
- done
- 案例3:批量创建没有相同特征的用户
- 用户数量少,直接写
- #!/bin/bash
- pass=123456
- for user in zs ls ww
- do
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- echo $pass | passwd --stdin $user &> /dev/null
- done
- 用户数量多,且需要后期增加,灵活性更高,建议创建一个独立的用户列表文件,将文件传参至脚本
- touch /root/user.list
- 内容格式:一行一个用户名
- tanfei
- laomiao
- x1
- ac
- y2
- c5
- u6
- #!/bin/bash
- pass=123456
- for user in $(cat /root/user.list)
- do
- # 通过查询命令的执行状态码,为0表示用户存在,非0表示不存在
- echo $pass | passwd --stdin $user &> /dev/null
- done
- 总结:su和sudo的区别
- 普通用户使用管理员身份执行useradd的方式
- su
- su - root -c "useradd xxx"