#!/bin/bash
function addSingleUser() {
control=1
while [ $control -eq 1 ]; do
declare -i U
read -p "请输入 用户名: " name
read -p "请输入 UID: " U
read -p “请输入 密码: " Passwd
id -u KaTeX parse error: Expected 'EOF', got '&' at position 19: …e >/dev/null 2>&̲1
if [ …?” == “0” ]; then
echo “用户 $name 已存在”
else
useradd -m -u U−d/home/U -d /home/U−d/home/name -s /bin/bash -g root $name
echo name:{name}:name:Passwd >chpass1.txt
chpasswd <chpass1.txt
control=0
echo “创建成功!”
cat /etc/passwd | grep $name
fi
done
}
function changeSingleUserInfo() {
echo “1. 更新 用户名”
echo “2. 更新 密码”
echo “3. 更新 UID”
echo “4. 更新 GID”
read -p "请输入菜单选项: " number
if [ $number -eq 1 ]; then
read -p "请输入待修改的用户名: " oldname
read -p “请输入新的用户名: " username
usermod -l $username $oldname
echo “更新成功!”
cat /etc/passwd | grep $username
elif [ number−eq2];thenread−p"请输入要修改的用户名:"opasswdread−p"请输入新的密码:"npasswdecho"number -eq 2 ]; then
read -p "请输入要修改的用户名: " opasswd
read -p "请输入新的密码: " npasswd
echo "number−eq2];thenread−p"请输入要修改的用户名:"opasswdread−p"请输入新的密码:"npasswdecho"opasswd:$npasswd” | chpasswd
echo “更新成功!”
cat /etc/shadow | grep $opasswd
elif [ $number -eq 3 ]; then
read -p "请输入要修改的用户名: " oUID
read -p "请输入新的UID: " nUID
usermod -u $nUID $oUID
echo “更新成功!”
cat /etc/passwd | grep $oUID
elif [ $number -eq 4 ]; then
read -p "请输入要修改的用户名: " oGID
read -p "请输入新的GID: " nGID
usermod -g $nGID $oGID
echo “更新成功!”
else
echo “输入有误!”
fi
}
function deleteSingleUser() {
read -p "请输入要删除的用户名: " user2
grep “$user2” /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
read -p "是否删除home目录?(是: 1, 否: 2)" sel
if [ $sel -eq 1 ]; then
userdel $user2
rm -f /home/$user2
elif [ $sel -eq 2 ]; then
userdel $user2
else
echo "输入有误!"
return
fi
echo "删除成功!"
else
echo "用户不存在!"
fi
}
function groupAddSetGID() {
echo “创建用户组(设置GID: 1, 默认GID: 其他键)”
read -p “: " choose
if [ $choose -eq 1 ]; then
control=1
while [ control−eq1];doread−p"请输入用户组名:"hellogroup=control -eq 1 ]; do
read -p "请输入用户组名: " hello
group=control−eq1];doread−p"请输入用户组名:"hellogroup=hello
id -g KaTeX parse error: Expected 'EOF', got '&' at position 20: …p >/dev/null 2>&̲1
i…?” == “0” ]; then
echo “用户组 $group 已存在”
else
while [ $control -eq 1 ]; do
declare -i GID
read -p "请输入 GID: " GID
id -g $GID >/dev/null 2>&1
if [ "$?" == "0" ]; then
echo "GID $GID 已存在"
else
control=0
fi
done
fi
done
groupadd -g $GID $group
if [ $? -eq 0 ]; then
echo "创建成功!"
cat /etc/group | grep $group
else
echo "创建失败!"
fi
else
control=1
while [ $control -eq 1 ]; do
read -p "请输入组名: " hello
group=$hello
id -g $group >/dev/null 2>&1
if [ "$?" == "0" ]; then
echo "用户组 $group 已存在。"
else
groupadd $group
if [ $? -eq 0 ]; then
echo "创建成功!"
cat /etc/group | grep $group
else
echo "创建失败!"
fi
control=0
fi
done
fi
}
function updateGroupNameAndGID() {
echo “更改用户组(更改组名: 1, 更改GID: 其他键)”
read -p "请输入选项: " choose
if [ $choose == 1 ]; then
read -p "请输入待更改的组名: " original #original groupname
group=$orignial
read -p "请输入新的组名: " change
group=$change
groupmod -n $change $original
cat /etc/group | grep $change
else
control=1
while [ $control -eq 1 ]; do
read -p "请输入待更改的组名: " groupname
group=$groupname
id -g $groupname >/dev/null 2>&1
if [ "$?" == "0" ]; then
echo "用户组不存在,请重新输入。"
break
else
control=0
fi
done
control=1
while [ $control -eq 1 ]; do
declare -i GID
read -p "请输入 GID: " GID
id -g $GID >/dev/null 2>&1
if [ "$?" == "0" ]; then
echo "GID $GID 已存在,请重新输入。"
else
groupmod -g $GID $groupname
control=0
fi
done
cat /etc/group | grep $groupname
fi
}
function deleteGroup() {
read -p "请输入待删除的用户组名: " deleteGroupName
groupdel -f $deleteGroupName | echo “删除成功!”
}
function checkUserGroup() {
echo “查询用户组(单个用户组: 1, 所有用户组: 其他键)”
read -p "请输入选项: " choose
if [ $choose == 1 ]; then
control=1
while [ $control -eq 1 ]; do
read -p "请输入要查询的用户组名: " group
id -g $group >/dev/null 2>&1
if [ "$?" == "0" ]; then
control=0
else
cat /etc/group | grep $group
control=0
fi
done
else
cat /etc/group
fi
}
function CheckUserInfo() {
echo “查询用户(单个用户: 1, 所有用户: 其他键)”
read -p “请输入选项: " choose
if [ choose−eq1];thenread−p"请输入要查找的用户名:"user3grep−n"choose -eq 1 ]; then
read -p "请输入要查找的用户名: " user3
grep -n "choose−eq1];thenread−p"请输入要查找的用户名:"user3grep−n"user3” /etc/passwd
if [ $? -eq 1 ]; then
echo “用户不存在!”
fi
else
cat /etc/passwd
fi
}
function menu() {
show
read -p "请输入选项: " number
while [ $number -ne 0 ]; do
if [ $number -eq 1 ]; then
addSingleUser
elif [ $number -eq 2 ]; then
changeSingleUserInfo
elif [ $number -eq 3 ]; then
deleteSingleUser
elif [ $number -eq 4 ]; then
CheckUserInfo
elif [ $number -eq 5 ]; then
groupAddSetGID
elif [ $number -eq 6 ]; then
updateGroupNameAndGID
elif [ $number -eq 7 ]; then
deleteGroup
elif [ $number -eq 8 ]; then
checkUserGroup
else
echo “输入有误,请重新输入”
fi
show
read -p "请输入选项: " number
done
}
function show() {
echo “”
echo “######################################”
echo " ---------- 用户管理系统 ----------"
echo " 0. 退出系统"
echo " 1. 添加用户"
echo " 2. 更新用户信息"
echo " 3. 删除用户"
echo " 4. 查询用户信息"
echo " 5. 添加用户组与GID"
echo " 6. 更新用户组的名和GID"
echo " 7. 删除用户组"
echo " 8. 查询用户组信息"
echo “######################################”
echo “”
}
menu
</pre>
</div>
这是一个用Shell编写的用户管理系统,包括添加用户、修改用户信息、删除用户、管理用户组等功能。用户可以输入选项选择相应的操作,如创建新用户时会检查UID是否已存在,并使用chpasswd更新密码。

1万+

被折叠的 条评论
为什么被折叠?



