学习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 2fi
;; "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;请求各位大侠指正错误,并指导完善,谢谢!