学习linux是从基础的命令开始的,当熟悉命令后,我们就得学习shell脚本的编写。在实际运维中,我们不可能一直盯着服务器看,机器式的维护,而是通过脚本,实现自动化运维,这也是运维的一种趋势。本菜鸟也是刚刚接触shell脚本。今天兴致大发,就写来一个简单的”系统用户管理菜单“脚本
该脚本功能如下:
1.可以实现增加删除用户;
2.判断用户是否已设置密码;
3.并能选择用户进行设置密码;
4.查询和更改uid、gid;
5.统计用户数,系统用户和普通用户数;
该脚本的代码如下:
#!/bin/bash
#Author:***
#Date:2014/05/14
#mail:690968964@qq.com
# This is system user admin menu
menu(){
echo -e "\t\t\tSystem user admin menu"
echo -e "\t\t1.add user"
echo -e "\t\t2.del user"
echo -e "\t\t3.query user information"
echo -e "\t\t4.reset user passwd"
echo -e "\t\t5.modify user information"
echo -e "\t\t6.all user information"
echo -e "\t\t7.exit the program\n"
}
Useradd(){
echo -n "please input you want add username:"
read username
useradd $username
if [ $? -eq 0 ]
then
echo "OK.add user "
else
echo "add user error"
return 1
fi
}
Userdel(){
echo -n "Please input you want delete username:"
read username
userdel -r $username
if [ $? -eq 0 ]
then
echo "OK,del user"
else
echo "del user error"
return 1
fi
}
query_user_info(){
id $username | awk '{print $1,$2}'
cat /etc/passwd | grep $username |awk -F: '{print $6}'
Passwd=`cat /etc/shadow | grep $username |awk -F: '{print $2}'`
if [ "$Passwd" == "!!" ];then
echo "$username没有设置密码"
else
echo "$username设置了密码"
fi
}
reste_user(){
cat /etc/shadow |awk '/!!/'| awk -F: '{print $1}'
read -p "请输入你选择的用户:" username
passwd $username
}
modify_user_info(){
cat /etc/passwd | awk -F: '{print $1}'
read -p "请输入你选择的用户:" username
usermod -u 600 $username
groupmod -g 700 $username
secret=`cat /etc/shadow | grep $username |awk -F: '{print $2}'`
if [ "$secret" == "!!" ];then
passwd $username
else
echo "$username设置了密码"
fi
}
all_user_info(){
user_all=`cat /etc/passwd | awk -F: '{print $1}' | wc -l`
user_sys=`cat /etc/passwd | awk -F: '$3<500{print $1}'| wc -l `
user_pro=`cat /etc/passwd | awk -F: '$3>=500 && $3<60000{print $1}'| wc -l`
echo "所有用户的数量为:"$user_all
echo "系统用户的数量为:"$user_sys
echo "程序用户的数量为:"$user_pro
}
main(){
while [ 1 ]
do
menu
echo -n "Enter your option:"
read option
case $option in
"1")
Useradd
if [ $? -eq 1 ]
then
exit 2
fi
;;
"2")
Userdel
if [ $? -eq 1 ]
then
exit 2
fi
;;
"3")
query_user_info
;;
"4")
reste_user
;;
"5")
modify_user_info
;;
"6")
all_user_info
;;
"7")
break
;;
"*")
break
;;
esac
done
}
main;
请求各位大侠指正错误,并指导完善,谢谢!
转载于:https://blog.51cto.com/liyuanji/1411254