4月21日Linux运维用户相关的添加,分组,修改权限等shell脚本开发第一天

时间:2024-04-22 14:26:37
#!/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