shell脚本批量添加用户

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 07:44   21   0
作业:写一个用户管理脚本,脚本参数,-a -d -p -m -s -h;要求:脚本参数无序也能执行,脚本根据不同状态返回不同状态码,参数错误能报错,短选项要支持连写,不显示多余的信息,用户已存在需提示。vi ~/.vimrc set enc=utf8(设置中文可显示)

#!/bin/bash
pflag=0 ##初始标记值pflag为0
shell=/bin/bash ##指定shell类型
set -- `getopt -q hadms:p: $@ ` ##对命令行参数进行重新的组织,使参数位置调换也可以识别,使其更便于在脚本中解析
while [ -n "$1" ]; ##当第一个选项为非空时,执行循环
do
case $1 in ##条件语句
-a)
flag=add ##第一个选项为-a,置标志为add
;;
-d)
flag=del ##第一个选项为-d,置标志为del
;;
-s)
shell=$2 ##第一个选项为-s,设置shell类型为第二个选项的值
shift ##每执行完一个选项,弹出
;;
-m)
pflag=1 ##第一个选项为-m,置标记值pflag为1
password=redhat #给用户设置默认密码
;;
-p)
pflag=1 ##第一个选项为-p,置标记值pflag为1
password=$2 #给用户设置统一密码
shift #弹出
;;
--)
shift ##第一个选项为--,弹出它,并且终止、退出循环体
break
;;
-h)
echo -e "Descreption: this script is use to manage user"
echo -e "\t-a \t\t create the user"
echo -e "\t-d \t\t delete the user"
echo -e "\t-p PASSWORD\t set the password of user" ##第一个选项为-h,输出用户提示帮助信息
echo -e "\t-s SHELL\t set shell of user"
echo -e "\t-m \t\t set password to default [redhat] "
echo -e "\t-h \t\t get help"
exit 0 ##并且返回 0 状态码
;;
*) ##第一个选项为*,提示错误并引导
echo "syntax error,use -h to get help"
exit 1 ##并且返回 1 状态码
;;
esac ##条件语句结束
shift ##弹出选项
done
if [ $# -ne 0 ]; then ###如果参数个数不为空,上一条命令执行后的结束代码不是0,则执行下面的命令
user_list=`echo $1 | sed "s/'//g" ` ###把$1(即参数)值取出,并用sed语句去掉反引号,将结果赋值给user_list
shell=`echo $shell | sed "s/'//g"` ###把$shell值取出,并用sed语句去掉反引号,将结果赋值给 shell
case $flag in ##条件语句
add)
if [ $pflag -ne 0 ]; then ##如果pflag不为0(有-m|-p选项)
for user in `cat $user_list `; do ##取出user_list里的用户
useradd -s $shell $user ##设置用户名与指定shell类型
echo "$password" | passwd --stdin $user > /dev/null 2>&1 ##将password的值通过管道赋给新加用户,并将输出信息重定向到垃圾桶
echo "user $user added" ###输出用户已经添加
done ##结束循环
else
echo "syntax err----define -m or -p PASSWORD" ###如果pflag为0,输出....,并返回状态码1
exit 1
fi
;;
del)
for user in `cat $user_list`; do
userdel -r $user ##删除用户,包括邮箱地址那些
echo "user $user deleted"
done
;;
esac
else
echo "syntax error,use -h to get help"
fi

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP