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会显示用户账户的过期信息

发表评论

邮箱地址不会被公开。 必填项已用*标注