GNU/Linux是一个多用户的操作系统,每个用户都可以同时登录
而有一些管理任务会设计用户管理,
包括设置默认的shell,禁用某shell,添加新用户,删除用户,设置密码,设置账户有效期
首先看下这个用户管理脚本
#! /bin/bash
function usage()
{
echo Usage:
echo Add a new User
echo $0 -addUser username password
echo
echo Remove an existing user
echo
echo Remove an existing user
echo $0 -deluser username
echo
echo Set the default shell for the user
echo $0 -sehll username SHELL_PATH
echo
echo Suspend a user accout
echo $0 -disable username
echo
echo Enable a suspended user accout
echo $0 -enable username
echo
echo Set expiry date for user accout
echo $0 -expiry DATE
echo
echo Change password for user accout
echo $0 -passwd username
echo
echo Create a new user group
echo $0 -newgroup groupname
echo Remove an existing user group
echo $0 -delgroup groupname
echo
echo Add a user to a 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
}
if [ $UID -ne 0 ];
then
echo Run $0 as root
exit 2
fi
case $1 in
-adduser) [ $# -ne 3 ] && usage ; useradd $2 -p $3 -m ;;
-deluser) [ $# -ne 3 ] && usage ; deluser $2 –remove-all-files ;;
-shell) [ $# -ne 3 ] && usage ; chsh $2 -s $3 ;;
-disable) [ $# -ne 2] && usage ; usermod -L $2 ;;
-enable) [ $# -ne 2 ] && usage ; usermod -U $2 ;;
-expriy) [ $# -ne 3 ] && usage ; chage $2 -E $3 ;;
-passwd) [ $# -ne 2 ] && usage ; passwd $2 ;;
-newgroup) [ $# -ne 2 ] && usage ; addgroup $2 ;;
-delgroup) [ $# -ne 3 ] &&usage ; delgroup $2 ;;
-addgroup) [ $# -ne 3 ] && usage ; addgroup $2 $3 ;;
-details) [ $# -ne 2 ] && usage ; finger $2 chage -l $2 ;;
-usage) usage ;;
*) usage ;;
esac
1.如果需要运行用户管理命令,需要使用超级用户的身份去执行,我们需要检测用户ID是否是0
2.这是一个集合了多个命令的简单用户管理脚本,我们可以参考usage()中的内容来学习脚本
我们给出的参数不正确或者使用-usage选项的时候,函数usage()来显示脚本不同选项的使用方式
3.我们利用case 来匹配命令参数,并根据参数来执行对应的命令
-adduser -deluser -shell 对应的不同的分支,我们然后在之后使用 [ $# -ne 3 ] 来检测参数个数
如果命令参数个数不等于要求的数量,就调用usage()并退出
4.那么,不同的命令含义分别为
-useradd
useradd用来创建新用户
useradd USER -p PASSWORD
选项-m用户创建home目录
选项-c FULLNAME提供用户全名
-deluser
deluser用于删除用户
deluser USER
–remove-all-files用来删除用户相关的文件,包括home目录
-shell
修改用户默认的shell
chsh USER -s shell
-disbale和-enable
usermod命令用来处理和用户账户相关的若干属性信息
usermod -L USER和usermod -U USER分别用于锁定和解锁账户
-expiry
chage 用户处理用户的账户过期信息
chage -E DATE
-m MIN_DAYS(将更改密码的最小天数修改为MIN_DAYS)
-M MAX_DAYS(设置密码的有效最大天数)
-W -WARN_DAYS (设置需要前几天去提醒改密码)
-passwd 用来修改密码
psswd User
会提示输入新的密码
-newgroup和addgroup
addgroup命令会为系统添加一个新的用户组
addgroup GROUP
要将已经存在用户添加到一个用户组,可使用
addgroup USER GROUP
-delgroup
delgroup命令会删除一个用户组,命令如下
delgroup GROUP
-details
figer USER命令会显示用户信息,包含用户的home,上一次的登录时间,默认的shell,chage -l会显示用户账户的过期信息