用shell脚本实现增加,删除用户,查询更改UID和GID以及统计用户数

学习linux是从基础的命令开始的,当熟悉命令后,我们就得学习shell脚本的编写。在实际运维中,我们不可能一直盯着服务器看,机器式的维护,而是通过脚本,实现自动化运维,这也是运维的一种趋势。本菜鸟也是刚刚接触shell脚本。今天兴致大发,就写来一个简单的”系统用户管理菜单“脚本

该脚本功能如下:

1.可以实现增加删除用户;

2.判断用户是否已设置密码;

3.并能选择用户进行设置密码;

4.查询和更改uid、gid;

5.统计用户数,系统用户和普通用户数;

该脚本的代码如下:

#!/bin/bash

#Author:***
#Date:2014/05/14

#mail:[email protected]

# 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;

请求各位大侠指正错误,并指导完善,谢谢!

用shell脚本实现增加,删除用户,查询更改UID和GID以及统计用户数

时间: 2024-07-29 09:36:25

用shell脚本实现增加,删除用户,查询更改UID和GID以及统计用户数的相关文章

Shell 脚本添加或删除用户及命令使用方法

Shell 要求:写一个脚本 一.添加10个用户user1到user10,密码同用户名,,若用户存在,但要求只有用户不存在的情况下才能添加,格式为/useradd.sh 解答思路:1.使用for 循环语句添加用户 user1 到user 10 2.判断用户是否存在,若存在,则echo 用户已存在 ,若不存在,添加用户 ,并设置密码与用户名相同 . 脚本: vim useradd.sh  并赋予+x权限. #!/bin/bash # for I in{1..10};do      if id us

Shell脚本——添加和删除用户

写一个脚本admin_user.sh,其用法格式为: admin_user.sh --add USERLIST --del USERLIST -v|--verbose -h|--help 其中, -h|--help 选项,只能单独使用,用于显示帮助信息: -add 选项,用于添加用户,USERLIST为用户列表,用户之间用逗号隔开: -del 选项,用于删除用户,USERLIST为用户列表,用户之间用逗号隔开: 使用 -add 或者 --del 选项时,如果同时使用了-v 选项,显示详细的提示:

SHELL 脚本批量添加删除用户

#!/bin/bash # # read -p "keyin add or del:  " keyin for i in `seq -w 10`;do password=user$i`echo $RANDOM | md5sum | cut -c 1-5` case $keyin in add) if ! id user$i &> /dev/null ;then useradd user$i &> /dev/null echo $password | pass

shell脚本之批量删除用户

1 #!/bin/bash 2 for i in {1..10};do 3 if id user$i &> /dev/null;then 4 userdel -r user$i &>/dev/null 5 echo "user$i is deleted" 6 else 7 echo "This user isn't exist" 8 fi 9 done 原文地址:https://blog.51cto.com/11342825/242496

(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个脚本,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的. 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加.分别写一下案例如下:1,for添加指定类型用户以及设置随机密码.脚本作用:批量添加user1-10用

shell脚本汇总 2 删除创建时间超过32天的文件

shell脚本汇总 2 删除创建时间超过32天的文件 #!/bin/bash #date:2017-04-11 #version:clear_ballcloud_back_v1.0 #contents: removing the  /www/web/ballcloud_bakck/* , if the file is created above 32 day # cd /www/web #sum the size of already delete directory dirsize=`du -

Linux Shell 脚本限制ssh最大用户登录数

我撰写本文原来的意图是想把"复制SSH渠道"和"copy SSH Session"这样的功能从远程ssh客户端中剔除掉.因此想到可以在SSH服务端设置一下,但查阅了sshd_config的man手册,发现里面的看起来限制ssh连接数量的参数(MaxSessions ,ClientAliveCountMax等)在复制SSH渠道中并不好用,即一个远程ssh客户端可以通过这种方式几乎无限制的建立ssh会话,未免让人觉得"不爽". 例如,我正在做一件事情

Linux (CentOS)增加删除用户

在Linux终端下如何增加删除普通用户帐户想了解Linux下的用户信息,主要两个文件:/etc/passwd和/etc/shadow 今天主要讲一下用命令创建和删除用户 增加用户一般是两个步骤,增加用户名和指定用户密码 [[email protected] /]# useradd test2 [[email protected] /]# passwd test2 Changing password for user test2. New UNIX password: BAD PASSWORD:

常见的一些shell脚本书写,定时删除,压缩备份

删除与备份videoportal日志 写执行删除过期日志的shell脚本 以下参考文档:https://blog.csdn.net/yuan882696yan/article/details/77885339 执行删除 /home/test/REPORT/send/videoportal23890234823904.txt这个目录下文档(当前是保留五天日志) 定时任务执行这个目录下的shell脚本:   /home/myshell/test.sh  (需要进行赋权操作chmod +x test.