shell脚本之用户管理脚本

目录

一、脚本要求

二、脚本内容

三、执行脚本

1.正确执行脚本

2.错误执行脚本


一、脚本要求

1.使用usage函数,列出该脚本的帮助选项
2.检查该脚本的执行用户,若非root用户,直接退出
3.该脚本可以管理用户的创建、删除,用户组的相关管理,用户的密码更改,用户的信息输出等功能
4.当输入该脚本的错误选项时,提示错误信息,并输出该脚本帮助信息

二、脚本内容

[root@master user]# cat user_adm.sh 
#!/bin/bash

function  usage()
{
	echo Usage:
	echo Add a user
	echo $0 -adduser username password
	echo
	echo Remove an existing user
	echo $0 -deluser username
	echo 
	echo Set the default shell for the user
    echo $0 -shell username shell
	echo
	echo Suspend a user accout
	echo $0 -disable username
	echo
	echo Enable a suspended user account
	echo $0 -enable username
	echo 
	echo Set expiry date for user account
	echo $0 -expiry DATE
	echo
	echo Change password for user account
	echo $0 -passwd username
	echo
	echo Create a eqw user group
	echo $0 -eqwgroup groupname
	echo 
	echo Remove an existing user group
	echo $0 -delgroup groupname
	echo
	echo Add a user to group
	echo $0 -addgroup username groupname
	echo
	echo Show details about a user
	echo $0 -details username
	echo
	echo Show usage
	echo $0 -usage
	echo

	exit
}

if [ $UID -ne 0 ];then
	echo Run $0 as root .
	exit 10
fi

case $1 in
"-adduser")
    if [ $# -eq 3 ];then
        useradd $2 -p $3 -m 
    else
		echo "you input error  $# option,please see the usage"
		usage
    fi
	;;
"-deluser")
     if [ $# -eq 2 ];then
		 userdel $2 --remove
	 else
		 echo "you input error  $# option,please see the usage"
		 usage
	fi
	;;
"-shell")
     if [ $# -eq 3 ];then
		 chsh $2 -s $3
	 else
		 echo "you input error  $# option,please see the usage"
		 usage
	fi
	;;
"-disable")
     if [ $# -eq 2 ];then
		 usermod -L $2
	 else
		 echo "you input error  $# option,please see the usage"
		 usage
	fi
	;;
"-enable")
    if [ $# -eq 2 ];then
		 usermod -U $2
	else
		echo "you input error  $# option,please see the usage"
		usage
	fi
	;;
"-expiry")
      if [ $# -eq 3 ];then
		  chage $2 -E $3
	  else
		  echo "you input error  $# option,please see the usage"
		  usage
          fi
	  ;;
"-passwd")
      if [ $# -eq 2 ];then
		  passwd $2
	  else
		  echo "you input error  $# option,please see the usage"
		  usage
	  fi
	  ;;
"-eqwgroup")
      if [ $# -eq 2 ];then
		  groupadd  $2
	  else
		  echo "you input error  $# option,please see the usage"
		  usage
	  fi
	  ;;
"-delgroup")
      if [ $# -eq 2 ];then
		  groupdel  $2
	  else
          echo "you input error  $# option,please see the usage"
		  usage
	  fi
	  ;;
"-addgroup")
      if [ $# -eq 2 ];then
		  groupadd  $2 $3
	  else
		  echo "you input error  $# option,please see the usage"
		    usage
	  fi
	  ;;
"-details")
      if [ $# -eq 2   ] ;then
		  finger $2 && chage -l $2
	  else
		    
		  echo "you input error  $# option,please see the usage"
		  usage
	  fi
	  ;;
"-usage")
      usage
	  ;;
*)
      usage
        ;;
esac


三、执行脚本

1.正确执行脚本

[root@master user]# ./user_adm.sh -details admin
Login: admin          			Name: admin
Directory: /home/admin              	Shell: /bin/bash
Never logged in.
No mail.
No Plan.
Last password change					: never
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

2.错误执行脚本

[root@master user]# ./user_adm.sh -details admin aa aa ee
you input error  5 option,please see the usage
Usage:
Add a user
./user_adm.sh -adduser username password

Remove an existing user
./user_adm.sh -deluser username

Set the default shell for the user

Suspend a user accout
./user_adm.sh -disable username

Enable a suspended user account
./user_adm.sh -enable username

Set expiry date for user account
./user_adm.sh -expiry DATE

Change password for user account
./user_adm.sh -passwd username

Create a eqw user group
./user_adm.sh -eqwgroup groupname

Remove an existing user group
./user_adm.sh -delgroup groupname

Add a user to group
./user_adm.sh -addgroup username groupname

Show details about a user
./user_adm.sh -details username

Show usage
./user_adm.sh -usage