#修改使用者屬性
MidifyUsers()
{
read -p "輸入要修改的使用者名:" username
until [ $(isinvaild passwd "$username") == 'y' ];do
echo "要修改的使用者$username不存在,請重新輸入:"
read -p "使用者名:" username
done
echo "使用者$username的資訊如下:"
echo -e "UserName\tUserID\tGroupName\tFullName\tLoginShell\tHomeDirectory"
list_allow_login_users ${username}
local is=n
while [ x$is == 'xn' ];do
is=y
read -p "修改登陸名(不修改直接按回車):" loginname
read -p "修改完整使用者名(不修改直接按回車):" fullname
read -p "修改使用者主目錄(不修改直接按回車):" homedir
read -p "修改登陸shell(不修改直接按回車):" loginshell
read -p "修改群組(不修改直接按回車):" groupname
read -p "修改密碼(不修改直接按回車):" password
read -p "修改UID(不修改直接按回車):" uid
read -p "是否鎖住使用者不讓它登陸系統(Y/N):" islock
read -p "是否解鎖使用者允許其重新登陸系統(Y/N):" isunlock
echo "要将使用者$username修改為下面資訊:"
if [ -z "$loginname" ];then
loginname=$username ;
else
lopt="-l $loginname"
fi
if [ -n "$fullname" ];then
copt="-c $fullname"
if [ -n "$homedir" ];then
until [ -d "$homedir" ];do
echo "$homedir不是一個合法的目錄,請輸入一個合法的目錄"
read -p "目錄名:" homedir
done
dopt="-d $homedir"
if [ -n "$loginshell" ];then
sopt="-s $loginshell"
if [ -n "$groupname" ];then
gopt="-g $groupname"
if [ -n "$password" ];then
popt="-p $password"
if [ -n "$uid" ];then
uopt="-u $uid"
case $islock in
Y|y) Lopt="-L" ;;
esac
case $isunlock in
y|Y) Uopt='-U' ;;
echo -e "使用者名:$loginname \t 密碼:$password \n完整使用者名:$fullname \t 使用者主目錄:$homedir \n群組:$groupname \t UID:$uid \n是否鎖住使用者:$islock\n"
read -p '确認修改?(Y/N/Q)' is
if [ x$is == 'xy' ];then
usermod $lopt $copt $dopt $sopt $gopt $popt $uopt $Lopt $Uopt $username
echo "修改後使用者資訊:"
list_allow_login_users ${loginname}
fi
}
DelUsers()
read -p "輸入要删除的使用者名:" username
echo "要删除的使用者$username不存在,請重新輸入:"
done
read -p "是否移除使用者主目錄(Y/N)" isremovedir
read -p "是否強制執行(Y/N)" isforce
case $isremove in
Y|y) ropt="-r";;
esac
case $isforce in
Y|y) fopt="-f";;
read -p "删除使用者$username,确定(Y/N)" isreallydel
case $isreallydel in
y|Y)
userdel $ropt $fopt $username
#主函數
PS3="請選擇操作:"
select doing in "列出允許登陸使用者" "增加使用者" "修改使用者資訊" "删除使用者" "退出" ;do
case $doing in
"列出允許登陸使用者") listUsers ;;
"增加使用者") AddUser ;;
"修改使用者資訊") MidifyUsers ;;
"删除使用者") DelUsers ;;
"退出") exit 0;;
done