4月21日运维用户相关的添加,分组,修改权限等shell脚本开发第一天
第一天主要实现前2个功能
主要卡在了:
正确的写法如下,注意[]中的空格,要求很严格!!!
#!/bin/bash
# 先查看已经有的用户名
echo "请选择以下功能"
echo "//"
echo -e "功能一:批量注册添加新用户\n功能二:创建新组群,并向组群中添加用户\n功能三:修改用户组群 \n功能四:修改用户
权限 \n功能五:删除指定用户\n功能六:删除指定组群 "
read -p '请输入你想实现的功能代号(1 or 2 or 3 or 4 or 5 or 6):' choose
n="$choose"
case $n in
1) echo -e "你选择的操作是功能一,批量创建注册新用户\n__________________________________________"
new_user_name=()
echo "以下是已经注册过的用户名:"
cat /etc/passwd # 目前先通过目测来检查已有的名称,等后期,直接智能差重
while true
do
read -p '请输入新用户名称,或者输入q退出:' new_name
echo "new_user=$new_name"
if [ "$new_name" == "q" ]
then break ;
else
useradd $new_name
new_user_name+=("$new_name")
fi
done
echo "新注册的用户如下:"
for q in "${new_user_name[@]}" ; do
echo "$q"
done ;;
2) echo "你选择的操作是功能二:创建新组群,并向组群中添加用户"
read -p '请输入新组群名称:' g_name
g="$g_name"
groupadd $g
echo "创建成功,创建新组群后,所有组群名单如下:"
echo "__________________________________________________"
cat /etc/group
# 先查看已经有的用户名
echo "以下是已经存在的用户名单"
echo "__________________________________________________"
cat /etc/passwd
# 声明一个空列表来存储输入的用户名
input_name=()
# 循环输入
while true
do
read -p '请输入你即将分组的用户名,或者输入q退出:' user
echo "user=$user"
if [ "$user" == "q" ]
then break ;
else
input_name+=("$user")
fi
# 将输入内容存入列表
done
# 基础功能,先把列表中的实现分组
read -p "是否将列表中所有用户都归组到$g组群(若继续操作请输入y):" yy
x="$yy"
echo "你的选择是$x"
if (("x"=="y"))
then echo "okla"
for i in "${input_name[@]}" ; do
usermod -G $g $i
done
else break
fi
echo -e "加入组群成功!\n以下是用户所属组群情况\n_____________________________________________"
for o in "${input_name[@]}" ; do
groups $o
done ;;
esac