帮我写一个shell用户组管理系统
时间: 2023-07-13 08:15:23 浏览: 93
Linux操作系统下关于用户和组的配置管理指南
好的,我可以为您提供一个简单的shell用户组管理系统的实现方案。以下是一个基于Linux系统的shell脚本程序,可以实现用户和用户组的添加、删除、修改等基本功能。
```
#!/bin/bash
# 定义变量
user_file="/etc/passwd"
group_file="/etc/group"
# 添加用户
add_user(){
read -p "请输入用户名:" username
read -p "请输入用户ID号:" userid
read -p "请输入用户所属组ID号:" groupid
read -p "请输入用户所在目录:" userdir
read -p "请输入用户默认shell:" usershell
echo "$username:x:$userid:$groupid:$userdir:$usershell" >> $user_file
echo "用户添加成功!"
}
# 删除用户
del_user(){
read -p "请输入要删除的用户名:" username
sed -i "/^$username/d" $user_file
echo "用户删除成功!"
}
# 修改用户
modify_user(){
read -p "请输入要修改的用户名:" username
read -p "请输入新的用户ID号:" userid
read -p "请输入新的用户所属组ID号:" groupid
read -p "请输入新的用户所在目录:" userdir
read -p "请输入新的用户默认shell:" usershell
sed -i "/^$username/s/:.*:/:$userid:$groupid:$userdir:$usershell:/" $user_file
echo "用户修改成功!"
}
# 添加用户组
add_group(){
read -p "请输入用户组名称:" groupname
read -p "请输入用户组ID号:" groupid
echo "$groupname:x:$groupid:" >> $group_file
echo "用户组添加成功!"
}
# 删除用户组
del_group(){
read -p "请输入要删除的用户组名称:" groupname
sed -i "/^$groupname/d" $group_file
echo "用户组删除成功!"
}
# 修改用户组
modify_group(){
read -p "请输入要修改的用户组名称:" groupname
read -p "请输入新的用户组ID号:" groupid
sed -i "/^$groupname/s/:.*:/:$groupid:/" $group_file
echo "用户组修改成功!"
}
# 显示用户信息
show_user(){
cat $user_file
}
# 显示用户组信息
show_group(){
cat $group_file
}
# 主程序
while true
do
echo "------------------"
echo "1. 添加用户"
echo "2. 删除用户"
echo "3. 修改用户"
echo "4. 添加用户组"
echo "5. 删除用户组"
echo "6. 修改用户组"
echo "7. 显示用户信息"
echo "8. 显示用户组信息"
echo "0. 退出"
echo "------------------"
read -p "请输入数字选择操作:" choice
case $choice in
1)
add_user
;;
2)
del_user
;;
3)
modify_user
;;
4)
add_group
;;
5)
del_group
;;
6)
modify_group
;;
7)
show_user
;;
8)
show_group
;;
0)
exit 0
;;
*)
echo "输入错误,请重新输入!"
;;
esac
done
```
以上是一个简单的shell用户组管理系统的实现方案,您可以根据自己的需要进行修改和定制。需要注意的是,该程序可能需要以管理员权限运行才能正常操作系统文件。
阅读全文