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裏面定義了。

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

舉例:

[root@linzhongniao ~]# 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文件

[root@linzhongniao ~]# cd /etc/skel/
[root@linzhongniao skel]# touch readme.txt

創建用戶查看/home/lindan目錄中是否也有readme文件

[root@linzhongniao skel]# useradd lindan
[root@linzhongniao 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別名這個功能。

[root@linzhongniao ~]# echo "alias grep='grep --color=auto'" >>/etc/skel/.bash_profile 
[root@linzhongniao ~]# 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用戶,出現下面的問題。

linux用戶管理

解決辦法:查看用戶家目錄缺少什麼文件,將缺少的重新從/etc/skel目錄下拷貝到用戶家目錄下。

[root@linzhongniao ~]# 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
[root@linzhongniao ~]# su - linzhongniao
[linzhongniao@linzhongniao ~]$

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添加用戶時的一個需要調用的一個默認的配置文件。

先看一下里面的內容:

[root@linzhongniao ~]# 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

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

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

[root@linzhongniao ~]# useradd linzhongniao02 -g linzhongniao -e "2018/08/20" -M
[root@linzhongniao ~]# id linzhongniao02
uid=806(linzhongniao02) gid=518(linzhongniao) groups=518(linzhongniao)
[root@linzhongniao ~]# tail -1 /etc/passwd
linzhongniao02:x:806:518::/home/linzhongniao02:/bin/bash 顯示用戶的家目錄,實際上home目錄下是沒有的

(3)查看用戶過期時間用chage命令加-l參數

[root@linzhongniao ~]# 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開始

[root@linzhongniao ~]# groupadd -g 101 eee 
[root@linzhongniao ~]# tail -1 /etc/group 
eee:x:101:

刪除組groupdel

[root@linzhongniao ~]# groupdel eee 

8.用戶密碼相關命令passwd

參數說明:

-n 最短修改密碼的天數,在設置的時間內不能修改密碼

-x 必須修改密碼的天數

-w 設置密碼過期前多長時間提醒

-i 設置密碼過期多少天之後禁止用戶登錄,賬戶過期的時間

交互式設計密碼,不接用戶默認修改root

[root@linzhongniao ~]# 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.

非交互式設置密碼

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

(1)案例

要求linzhongniao01用戶7天內不能更改密碼,60天以後必須修改密碼,過期前10天通知linzhongniao01用戶修改密碼,過期後30天禁止用戶登錄

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

查看:

[root@linzhongniao ~]# 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:例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。

舉例:

修改用戶密碼的過期日期即被禁用的日期

 [root@linzhongniao ~]# 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

linux用戶管理

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

[root@linzhongniao ~]# id linzhongniao01
uid=805(linzhongniao01) gid=805(linzhongniao01) groups=805(linzhongniao01),0(root),518(linzhongniao),519(sa)
[root@linzhongniao ~]# usermod -u 807 linzhongniao01
[root@linzhongniao ~]# 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  以指定用戶身份執行任務

[root@linzhongniao ~]# su - linzhongniao -c pwd
/home/linzhongniao

12.2 su 和su –的區別?

su直接切換用戶不能夠使用自己的環境變量,還是用的root的環境變量

linux用戶管理

用su直接切換,用戶使用的環境變量還是root的

[root@linzhongniao ~]# su linzhongniao
[linzhongniao@linzhongniao 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 –切換

[root@linzhongniao ~]# su - linzhongniao
[linzhongniao@linzhongniao ~]$ pwd
/home/linzhongniao
[linzhongniao@linzhongniao ~]$ env|grep -i root
[linzhongniao@linzhongniao ~]$ 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
[linzhongniao@linzhongniao ~]$ whoami
linzhongniao

12.3 –c參數的作用

在使用su – 的同時使用-c命令可以不登錄目標用戶,以目標用戶身份執行任務。應用root啓動普通用戶的定時任務。

[root@linzhongniao ~]# 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命令工作流程

linux用戶管理

13.2 利用sudo控制用戶對系統命令的使用權限

執行下面visudo,即打開sudo的配置文件進行編輯

[root@linzhongniao ~]# visudo 相當於vi編輯/etc/sudoers,但用visudo可以檢查語法,批量管理用echo,然後要用visudo –c檢查語法。

在/etc/sudoers文件的大約第98行下面添加需要提升爲root權限的普通用戶名及對應權限,格式如下:

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

指定用戶 對應主機=可以授權角色 有哪些權限,要用全路徑不知道可以用which查看可執行的命令用逗號隔開所有權限就給ALL

[root@linzhongniao ~]# sed -n '99'p /etc/sudoers  
# %wheelALL=(ALL)   NOPASSWD:  ALL 《==不需要登錄密碼並且給所有權限相當於root

提示,如果是針對用戶組,則對應的授權命令如下:

工作中有很多用戶,可以直接設置用戶組把用戶添加到組裏,用戶組前面要加”%”百分號。

%用戶組 (主機別名或IP地址)=(允許切換的用戶) 對應權限用全路徑,權限多用逗號分開

爲了管理方便就設置成ALL了,設置成ALL,切換用戶執行命令也要加sudo執行例如:sudo cp ..

13.3 sudo命令參數選項

linux用戶管理

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來匹配所有的主機。

[root@linzhongniao ~]# sed -n '99'p /etc/sudoers  
# %wheel    ALL=(ALL)   NOPASSWD: ALL 

等號左邊的ALL就對應的主機別名,單機一般不會用主機別名,只有共享sudo配置文件的時候纔有用,多臺機器可以在上面定義主機別名,在sudo授權的時候應用

添加主機別名例如:

[root@linzhongniao ~]# 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

總結:別名與具體授權位置得關係

linux用戶管理

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服務)

[root@linzhongniao ~]# 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中,注意不包括引號。

[root@linzhongniao ~]# echo "Defaults   logfile=/var/log/sudo.log">>/etc/sudoers
[root@linzhongniao ~]# tail -1 /etc/sudoers
Defaults   logfile=/var/log/sudo.log
[root@linzhongniao ~]# visudo –c  檢查語法錯誤
/etc/sudoers: parsed OK

(3)檢驗sudo審計

[linzhongniao@linzhongniao ~]$ sudo useradd ddddd
[root@linzhongniao ~]# 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章