天天看點

智能使用者管理腳本(2)

#修改使用者屬性

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

繼續閱讀