linux用户管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux用户管理相关的知识,希望对你有一定的参考价值。

1.用户管理命令汇总

useradd      增 同adduser命令,执行此命令可在系统中添加命令(更改四个文件/etc/passwd、 /etc/shadow、/etc/gshadow、)
userdel      删 执行此命令可删除用户及相关用户的配置或文件,-r参数同时删除家目录
passwd       执行此命令可为用户设置密码,更改/etc/shadow
chage        修改用户密码有效期限,管理/etc/shadow
usermod      改修改用户的命令,可以通过usermod来修改登录名、用户的家目录等等。
chpasswd     批量为用户更新密码例如user.txt格式user:uesrpasswd
id           查查看用户的UID、GID及所归属的用户组
su           用户角色切换工具必须用su -
sudo         提权 sudo是通过另一个用户来执行命令,su是用来切换用户,然后通过切换的用户来完成相应的任务,但sudo后面能够直接接命令,比如sudo ls /root
visudo       配置sudo权限的编辑命令;也可以不用这个命令,直接用vi来编辑/etc/sudoers实现,但推荐用visudo来操作(会自动检查语法)

2.用户组命令汇总

groupadd  添加用户组

参数:
 -g 指定组id

groupdel 删除用户组

groupmod  修改用户组信息

参数:
 -g, --gid GID change the group ID to GID 修改组id
 -n, --new-name NEW_GROUP  change the name to NEW_GROUP修改组名

groups 查看用户属于的组

3.用户管理重要初始化目录shel案例

3.1 /etc/skel目录

/etc/skel目录是用来存放新用户配置文件或者环境变量的目录,当添加新目录时这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下/etc/skel目录下的所有文件都是隐藏文件(以.开头的文件);通过修改、添加、删除/etc/skel目录下的文件,我们可以为新创建的用户提供统一的、标准的、初始化用户环境。
添加用户就相当于把/etc/skel里的内容拷贝到用户家目录下,调用这个目录在/etc/default/useradd里面定义了。

[[email protected] ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

举例:

[[email protected] ~]# ls -la /etc/skel/
total 36
drwxr-xr-x.  4 root root  4096 Jul 16 14:17 .
drwxr-xr-x. 96 root root 12288 Aug  6 15:15 ..
 -rw-r--r--.  1 root root18 Mar 23  2017 .bash_logout
 -rw-r--r--.  1 root root   176 Mar 23  2017 .bash_profile
 -rw-r--r--.  1 root root   124 Mar 23  2017 .bashrc
drwxr-xr-x.  2 root root  4096 Nov 12  2010 .gnome2
drwxr-xr-x.  4 root root  4096 Jun 28 16:56 .mozilla

在里面创建readme文件

[[email protected] ~]# cd /etc/skel/
[[email protected] skel]# touch readme.txt

创建用户查看/home/lindan目录中是否也有readme文件

[[email protected] skel]# useradd lindan
[[email protected] skel]# ls -la /home/lindan/
total 28
drwx------.  4 lindan lindan 4096 Aug  6 22:27 .
drwxr-xr-x. 20 root   root   4096 Aug  6 22:27 ..
 -rw-r--r--.  1 lindan lindan   18 Mar 23  2017 .bash_logout
 -rw-r--r--.  1 lindan lindan  176 Mar 23  2017 .bash_profile
 -rw-r--r--.  1 lindan lindan  124 Mar 23  2017 .bashrc
drwxr-xr-x.  2 lindan lindan 4096 Nov 12  2010 .gnome2
drwxr-xr-x.  4 lindan lindan 4096 Jun 28 16:56 .mozilla
 -rw-r--r--.  1 lindan lindan0 Aug  6 22:27 readme.txt

3.2 /etc/skel的作用

(1)可以把通知的内容放到root用户的/etc/skel目录下,让新创建的用户去看,比如新员工。

(2)统一初始化新用户的环境变量。

可以在创建新用户之前修改/etc/skel目录下的profile文件,比如说在profile文件中添加grep别名过滤高亮显示。那么新创建的用户也能够使用grep别名这个功能。

[[email protected] ~]# echo "alias grep=‘grep --color=auto‘" >>/etc/skel/.bash_profile 
[[email protected] ~]# cat /etc/skel/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
alias grep=‘grep --color=auto‘

(3)面试题:出现-bash-4.1$问题原因及解决方法

出现这个问题的原因就是因为用户家目录缺文件了,解决办法就是去/etc/skel目录下把缺少的文件重新拷贝到用户家目录中即可。

演示:

切换到linzhongniao用户把.bash_profile 和.bashrc文件删除,然后ctrl +d退出在切换到linzhongniao用户,出现下面的问题。

技术分享图片

解决办法:查看用户家目录缺少什么文件,将缺少的重新从/etc/skel目录下拷贝到用户家目录下。

[[email protected] ~]# su - linzhongniao
 -bash-4.1$ ls -a
.  ..  .bash_history  .bash_logout  .gnome2  .mozilla  sss
You have new mail in /var/spool/mail/linzhongniao
 -bash-4.1$ cp /etc/skel/* .
You have new mail in /var/spool/mail/linzhongniao
 -bash-4.1$ ls -a
.   .bash_history  .bash_profile  .mozillasss
..  .bash_logout   .gnome2readme.txt
 -bash-4.1$ logout
[[email protected] ~]# su - linzhongniao
[[email protected] ~]$

4./etc/login.defs配置文件(了解不建议修改)

/etc/login.defs文件是用来定义创建用户时需要的一些用户配置的信息,如创建用户是是否需要家目录,UID和GID的范围,用户及密码的有效期限等等。

MAIL_DIR /var/spool/mail   #创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
PASS_MAX_DAYS  99999       #用户的密码不过期最多的天数
PASS_MIN_DAYS  0           #密码修改之间最小的天数
PASS_MIN_LEN   5           #密码最小长度
PASS_WARN_AGE  7           #警告时间
UID_MIN 500                #UID从500开始
UID_MAX 60000              #最大UID为60000
GID_MIN  500               #GID从500开始
GID_MAX 60000              #最大GID为60000
CREATE_HOME   yes          #是否创用户家目录
UMASK  077                 #创建用户家目录时候的默认权限限制
USERGROUPS_ENAB  yes       #用userdel删除用户的时候,如果这个主组中没有其他用户,那么也把这个组给删除
ENCRYPT_METHOD SHA512      #用户密码的加密方式为SHA512

5./etc/default/useradd添加用户时的规则文件

/etc/default/useradd文件是使用useradd添加用户时的一个需要调用的一个默认的配置文件。

先看一下里面的内容:

[[email protected] ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100       《==依赖于/etc/login.defs的USERGROUPS_ENAB参数,如果为no,则此处控制
HOME=/home      《==把用户的家目录建在/home中
INACTIVE=-1     《==是否启用账号过期停权,-1表示不启用
EXPIRE=         《==账号终止日期,不设置表示不启用。
SHELL=/bin/bash 《==指定默认shell
SKEL=/etc/skel  《==用户家目录里面的参照位置
CREATE_MAIL_SPOOL=yes 《==创建用户的邮件池,相当于一个用户的邮箱

6.linux添加用户命令useradd

添加用户命令有useradd和adduser,这两个命令达到的效果是一样的,也可以通过修改用户配置文件/etc/passwd和/etc/group及手动创建文件的方法来直接添加用户这种方法不推荐使用。

6.1 useradd的用法

当使用useradd命令不加任何参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则,根据设置的规则添加用户同时会向/etc/passwd和/etc/group文件内添加新建用户和用户记录。

useradd参数:

 -c(comment)        新账号passwd文件的说明栏注释。
 -d(home_dir)       设置登录的家目录,家目录必须是已经存在 
 -m                   用户目录如果不存在则自动创建
 -e (expire_date)   账号的终日期,日期格式为/YY/MM/DD/
 -g (initial_group) 指定属于的属组(只属于一个组)
 -G (group,[….])    创建用户指定多个组,每个用户组用“,”逗号分隔。
 -M                   不创建家目录,优先于/etc/login.defs文件CREATE_HOME yes的设定,一般创建虚拟用户时不创建家目录,部署服务时需要创建虚拟用户。
 -s(shell)          指定shell ,-s /sbin/nologin设置用户不能登录
 -u(uid)            用户的id值,指定uid

6.2 企业案例

(1)案例一:useradd –c、-u、-G、-s、-d多个参数组合的例子

添加用户linzhongniao01并设置其用户注释信息为fly,UID指定为805,归属为用户组root,linzhongniao,sa成员,其shell类型为/bin/sh,设置家目录为/linzhongniao01。

解答:

添加用户并设置用户注释信息为fly -c fly

指定UID为805 -u 805

归属为用户组root,linzhongniao,sa成员 -G root,linzhongniao,sa

指定shell类型 -s /bin/sh

指定家目录 -md /linzhongniao01

[[email protected] ~]# useradd -c fly -u 805 -G root,linzhongniao,sa -s /bin/sh -md /linzhongniao01 linzhongniao01
[[email protected] ~]# id linzhongniao01
uid=805(linzhongniao01) gid=805(linzhongniao01) groups=805(linzhongniao01),0(root),518(linzhongniao),519(sa
[[email protected] ~]# tail -1 /etc/passwd
linzhongniao01:x:805:805:fly:/linzhongniao01:/bin/sh

(2)-g,-e,-M举例

[[email protected] ~]# useradd linzhongniao02 -g linzhongniao -e "2018/08/20" -M
[[email protected] ~]# id linzhongniao02
uid=806(linzhongniao02) gid=518(linzhongniao) groups=518(linzhongniao)
[[email protected] ~]# tail -1 /etc/passwd
linzhongniao02:x:806:518::/home/linzhongniao02:/bin/bash 显示用户的家目录,实际上home目录下是没有的

(3)查看用户过期时间用chage命令加-l参数

[[email protected] ~]# chage -l linzhongniao02
Last password change: Aug 07, 2018
Password expires: never
Password inactive   : never
Account expires : Aug 20, 2018
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

7.linux添加、删除用户组

与groupadd命令相关的文件有:

/etc/group 用户组相关文件

/etc/gshadow 用户组加密相关文件

参数说明:

-g gid 指定组ID如果不指定-g参数,则默认从500开始

[[email protected] ~]# groupadd -g 101 eee 
[[email protected] ~]# tail -1 /etc/group 
eee:x:101:

删除组groupdel

[[email protected] ~]# groupdel eee 

8.用户密码相关命令passwd

参数说明:

-n 最短修改密码的天数,在设置的时间内不能修改密码

-x 必须修改密码的天数

-w 设置密码过期前多长时间提醒

-i 设置密码过期多少天之后禁止用户登录,账户过期的时间

交互式设计密码,不接用户默认修改root

[[email protected] ~]# passwd linzhongniao
Changing password for user linzhongniao.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

非交互式设置密码

[email protected] ~]# echo "1234567"|passwd --stdin linzhongniao
Changing password for user linzhongniao.
passwd: all authentication tokens updated successfully.

(1)案例

要求linzhongniao01用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知linzhongniao01用户修改密码,过期后30天禁止用户登录

[[email protected] ~]# passwd -n 7 -x 60 -w 10 -i 30 linzhongniao01
Adjusting aging data for user linzhongniao01.
passwd: Success

查看:

[[email protected] ~]# chage -l linzhongniao01
Last password change  : Aug 07, 2018   密码必须修改的时间
Password expires   : Oct 06, 2018  密码的过期时间
Password inactive  : Nov 05, 2018  密码被禁用时间
Account expires   : never
Minimum number of days between password change  : 7  7天之内禁止修改密码
Maximum number of days between password change : 60  60天之内必须修改密码
Number of days of warning before password expires  : 10  密码过期前10天开始提醒修改密码

9.修改用户密码有效期限的相关命令chage

参数:

 -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
 -M:密码保持有效的最大天数。
 -w:用户密码到期前,提前收到警告信息的天数。
 -E:帐号到期的日期。过了这天,此帐号将不可用。日期写法:YY/DD/MM
 -d:上一次更改的日期。
 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

举例:

修改用户密码的过期日期即被禁用的日期

 [[email protected] ~]# chage -l linzhongniao01 
Last password change: Aug 07, 2018
Password expires: Oct 06, 2018
Password inactive   : Nov 05, 2018
Account expires : never
Minimum number of days between password change: 7
Maximum number of days between password change: 60
Number of days of warning before password expires : 10

技术分享图片

10.删除用户命令userdel

语法:

userdel 用户名(用户名必须是已经存在的)

参数:

-r 用户目录下的档案一并删除,在其他位置上的相关文件也将一一找出并删除

相关文件:

/etc/passwd 用户账号资料文件

/etc/shadow 用户账号资料加密文件

/etc/group 用户组资料文件

/home/ 用户家目录

企业场景处理办法:

一般不能确认用户相关目录有没有重要数据就不能用-r

删除经验:

1、vi /etc/passwd注释掉用户观察1个月,出问题还原。操作前备份

2、把登录的shell改成/sbin/nologin

3、ldap(类似活动目录 堡垒机)账号统一管理,库里删除用户,全都没了;只要是修改和删除都要小心谨慎!

11.修改用户属性usermod

参数大部分和useradd是一样的

-f 用户的停权日期

-u 修改用户的uid

例子:修改linzhongniao01的uid

[[email protected] ~]# id linzhongniao01
uid=805(linzhongniao01) gid=805(linzhongniao01) groups=805(linzhongniao01),0(root),518(linzhongniao),519(sa)
[[email protected] ~]# usermod -u 807 linzhongniao01
[[email protected] ~]# id linzhongniao01 
uid=807(linzhongniao01) gid=805(linzhongniao01) groups=805(linzhongniao01),0(root),518(linzhongniao),519(sa)

12.linux用户身份切换命令

12.1su命令

简单的说su命令就是切换用户身份的命令

su [选项参数] [用户]

参数选项

 `-`   -l, --login   使一个shell称为登录的shell如执行su – linzhongniao时,表示该用户想改变身份为linzhongniao,并且使用linzhongniao用户的环境变量配置如.bash_profile
 -c  以指定用户身份执行任务

[[email protected] ~]# su - linzhongniao -c pwd
/home/linzhongniao

12.2 su 和su –的区别?

su直接切换用户不能够使用自己的环境变量,还是用的root的环境变量

技术分享图片

用su直接切换,用户使用的环境变量还是root的

[[email protected] ~]# su linzhongniao
[[email protected] root]$ env|grep -i root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root

用su –切换

[[email protected] ~]# su - linzhongniao
[[email protected] ~]$ pwd
/home/linzhongniao
[[email protected] ~]$ env|grep -i root
[[email protected] ~]$ env|grep -i linzhongniao
HOSTNAME=linzhongniao
USER=linzhongniao
MAIL=/var/spool/mail/linzhongniao
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linzhongniao/bin
PWD=/home/linzhongniao
HOME=/home/linzhongniao
LOGNAME=linzhongniao
[[email protected] ~]$ whoami
linzhongniao

12.3 –c参数的作用

在使用su – 的同时使用-c命令可以不登录目标用户,以目标用户身份执行任务。应用root启动普通用户的定时任务。

[[email protected] ~]# su - linzhongniao -c pwd
/home/linzhongniao

12.4 su –命令的缺点

谁都可以登录root进行操作,这样很危险。建议超级用户root的密码应掌握在一个管理员手中,这时就要用到sudo命令。

13.sudo命令

13.1 sudo命令介绍及工作原理

普通用户知道root密码就很危险,使用su命令无法对切换后的身份做精细的控制,拿到超级用户权限的人可以为所欲为甚至可以修改掉root密码,让真正的管理员无法再拥有root权限,那么怎么能够不泄露root密码又能让普通用户拥有一定的超级权限来管理系统并且能让超级特权可控呢?这就要引出本节的主角—sudo。

通过sudo,可以把某些超级用户权限分类有针对性(精细)授权给指定的普通用户,并且普通用户不需要知道root密码就可以使用得到的授权(管理员真正允许的root权限)。

sudo命令工作流程

技术分享图片

13.2 利用sudo控制用户对系统命令的使用权限

执行下面visudo,即打开sudo的配置文件进行编辑

[[email protected] ~]# visudo 相当于vi编辑/etc/sudoers,但用visudo可以检查语法,批量管理用echo,然后要用visudo –c检查语法。

在/etc/sudoers文件的大约第98行下面添加需要提升为root权限的普通用户名及对应权限,格式如下:

98 # %wheelALL=(ALL)   ALL
99 linzhongniaoALL=(ALL)   /usr/sbin/useradd

指定用户 对应主机=可以授权角色 有哪些权限,要用全路径不知道可以用which查看可执行的命令用逗号隔开所有权限就给ALL

[[email protected] ~]# sed -n ‘99‘p /etc/sudoers  
# %wheelALL=(ALL)   NOPASSWD:  ALL 《==不需要登录密码并且给所有权限相当于root

提示,如果是针对用户组,则对应的授权命令如下:

工作中有很多用户,可以直接设置用户组把用户添加到组里,用户组前面要加”%”百分号。

%用户组 (主机别名或IP地址)=(允许切换的用户) 对应权限用全路径,权限多用逗号分开

为了管理方便就设置成ALL了,设置成ALL,切换用户执行命令也要加sudo执行例如:sudo cp ..

13.3 sudo命令参数选项

技术分享图片

13.4 /etc/sudoers配置文件中别名的知识(重要)

别名类型(Alias_Type):别名类型包括如下四种

(1)Host_Alias定义主机别名

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias FILESERVERS = fs1, fs2  注意“=”号两边有空格
# Host_Alias MAILSERVERS = smtp, smtp2 每个成员用逗号隔开

在生产中,一般不需要设置主机别名,在定义授权规则时可以通过ALL来匹配所有的主机。

[[email protected] ~]# sed -n ‘99‘p /etc/sudoers  
# %wheel    ALL=(ALL)   NOPASSWD: ALL 

等号左边的ALL就对应的主机别名,单机一般不会用主机别名,只有共享sudo配置文件的时候才有用,多台机器可以在上面定义主机别名,在sudo授权的时候应用

添加主机别名例如:

[[email protected] ~]# sed -n ‘99‘p /etc/sudoers  
# %wheel   FILESERVERS =(ALL)   NOPASSWD:  ALL 

(2)User_Alias定义用户别名

别名成员可以是用户,用户组(用户组前面要加%号)

## User Aliases
## These aren‘t often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem,%groupname
## Allows people in group wheel to run all commands
#%wheel    ALL=(ALL)   ALL  《==wheel应用的部分就是用户别名应用的部分

(3)Runas_Alias定义Runas别名

这个别名指定的是”用户身份”,即sudo允许切换到的用户身份。Runas_Alias定义的是用户可以执行sudo切换身份到Runas_Alias下包含的成员身份的权限。

实际语法为:Runas_Alias OP = root

##  userMACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root   ALL=(ALL)   ALL 小括号中ALL的位置就是Runas_Alias别名的位置

(4)Cmnd_Alias定义命令别名

命令别名就是定义一个别名,包含一堆命令,即一组相关命令的集合。命令太多一行写不下需要换行用“”换行符。

## Command Aliases
## These are groups of related commands...

## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

总结:别名与具体授权位置得关系

技术分享图片

13.5 配置sudo

#User alias classification
User_Alias KAIFA_ADMINS = kaifa01,kaifa02
User_Alias YUNWEI_ADMINS = linzhongniao,linzhongniao02,%sa
User_Alias WANGLUO_ADMINS = wangluo01,wangluo02

#User id alias
Runas_Alias OP1 = root,linzhongniao
Runas_Alias OP2 = root,linzhongniao02

#Command permission alias

Cmnd_Alias KAFACMD = /bin/grep,/bin/cat,/usr/bin/tail,!/usr/bin/vim,!/bin/vi
Cmnd_Alias WANGLUOCMD = /sbin/ifconfig,/etc/init.d/network
Cmnd_Alias YUNWEICMD = /bin/cat,/usr/bin/tail,/sbin/ifconfig,/usr/sbin/useradd, /usr/sbin/userdel,/usr/bin/passwd,/bin/chown,/bin/chmod,/bin/rm

#authorization

KAIFA_ADMINSALL=(OP1)   KAFACMD
YUNWEI_ADMINS   ALL=(OP1)   YUNWEICMD
WANGLUO_ADMINS  ALL=(OP2)   WANGLUOCMD

登录林中鸟用户,查看linzhongniao主机上允许和禁止的命令

13.6 sudo文件注意事项

(1)授权规则中的所有ALL字符串必须大写

(2)Cmnd_Alias KAFACMD = /bin/grep,/bin/cat,/usr/bin/tail,!/sbin/fdisk允许执行的命令是有顺序的,命令顺序是从后向前,即把禁止执行的命令放在允许命令的后面,前面的为允许,后面加叹号的为禁止。

(3)一行内容过长可以用“”反斜线换行

Cmnd_Alias YUNWEICMD = /bin/cat,/usr/bin/tail,/sbin/ifconfig,/usr/sbin/useradd, /usr/sbin/userdel,/usr/bin/passwd,/bin/chown,/bin/chmod,/bin/rm

(4)叹号表示非,取反的意思。

例如:

!/usr/bin/passwd root不能修改root密码
/usr/bin/passwd [A-Za-z]* 只能修改由英文字母组成的用户名

(5)命令别名下的成员必须是文件或目录的绝对路径

(6)别名成员受别名类型Host_AliasUser_ALiasRunas_AliasCmnd_Alias制约,定义什么类型的别名就要有什么类型的成员相配。

13.7 配置sudo命令用户行为日志审计

说明:所谓sudo命令日志审计,并不记录普通用户的普通操作。而是记录,那些执行sudo命令的用户的操作。

服务器日志审计项目提出与实施:

1、权限方案实施后,权限得到了细化控制,接下来进一步实施对所有用户日志记录方案

2、通过sudo和syslog(rsyslog)配合实现对所有用户进行日志审计并将记录集中管理(发送到中心日志服务器)

3、实施后让所有运维和开发的所有执行的sudo管理命令都有记录可查。

生产环境企业日志审计解决方案:

法1)通过环境变量命令及rsyslog服务进行全部日志审计(信息太大,不推荐)。

法2)sudo配合rsyslog服务,进行日志审计(审计信息较少,效果不错)。

法3)python开源产品跳板机。

13.7.1 配置sudo审计

(1)安装sudo命令,syslog服务(Centos6.4为rsyslog服务)

[[email protected] ~]# rpm -qa|egrep "sudo|rsyslog"
rsyslog-5.8.10-12.el6.x86_64
sudo-1.8.6p3-29.el6_9.x86_64

没有安装执行下面命令安装

yum install sudo rsyslog –y

(2)配置/etc/sudoers

增加配置“Defaults logfile=/var/log/sudo.log”到/etc/sudoers中,注意不包括引号。

[[email protected] ~]# echo "Defaults   logfile=/var/log/sudo.log">>/etc/sudoers
[[email protected] ~]# tail -1 /etc/sudoers
Defaults   logfile=/var/log/sudo.log
[[email protected] ~]# visudo –c  检查语法错误
/etc/sudoers: parsed OK

(3)检验sudo审计

[[email protected] ~]$ sudo useradd ddddd
[[email protected] ~]# cat /var/log/sudo.log
Sep  4 07:20:52 : linzhongniao : TTY=pts/1 ; PWD=/home/linzhongniao ; USER=root
; COMMAND=list
Sep  4 07:21:10 : linzhongniao : TTY=pts/1 ; PWD=/home/linzhongniao ; USER=root
; COMMAND=/usr/sbin/useradd ddddd

以上是关于linux用户管理的主要内容,如果未能解决你的问题,请参考以下文章

在每个用户的Rails中使用片段缓存

SnippetsLab for Mac 1.9 中文共享版 – 强大的代码收藏管理工具

片段 XXX 未与片段管理器关联

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?