#修改用户属性
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"
fi
if [ -n "$homedir" ];then
until [ -d "$homedir" ];do
echo "$homedir不是一个合法的目录,请输入一个合法的目录"
read -p "目录名:" homedir
done
dopt="-d $homedir"
fi
if [ -n "$loginshell" ];then
sopt="-s $loginshell"
fi
if [ -n "$groupname" ];then
gopt="-g $groupname"
fi
if [ -n "$password" ];then
popt="-p $password"
fi
if [ -n "$uid" ];then
uopt="-u $uid"
fi
case $islock in
Y|y) Lopt="-L" ;;
esac
case $isunlock in
y|Y) Uopt='-U' ;;
esac
echo -e "用户名:$loginname \t 密码:$password \n完整用户名:$fullname \t 用户主目录:$homedir \n群组:$groupname \t UID:$uid \n是否锁住用户:$islock\n"
read -p '确认修改?(Y/N/Q)' is
done
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
until [ $(isinvaild passwd "$username") == 'y' ];do
echo "要删除的用户$username不存在,请重新输入:"
read -p "用户名:" 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";;
esac
read -p "删除用户$username,确定(Y/N)" isreallydel
case $isreallydel in
y|Y) 
userdel $ropt $fopt $username
esac
}
#主函数
PS3="请选择操作:"
select doing in "列出允许登陆用户" "增加用户" "修改用户信息" "删除用户" "退出" ;do
case $doing in
"列出允许登陆用户") listUsers ;;
"增加用户") AddUser ;;
"修改用户信息") MidifyUsers ;;
"删除用户") DelUsers ;;
"退出") exit 0;;
esac
 done