天天看點

網絡安全系列之三十九 在Linux中配置通路控制清單ACL

Linux系統中傳統的權限設定方法比較簡單,僅有3種身份、3種權限而已,通過配合chmod和chown等指令來對檔案的權限或所有者進行設定。如果要進行比較複雜的權限設定,例如某個目錄要開放給某個特定的使用者使用時,這些傳統的方法就無法滿足要求了。

例如對于/home/project目錄,該目錄的所有者是student使用者,所屬組是users組,預設權限是770。現在有個名為natasha的使用者,屬于natasha組,希望能夠對/home/project目錄具有讀寫執行權限;還有一個名為instructor的使用者,屬于instructor組,希望能夠對/home/project目錄具有讀取和執行權限。

很明顯,利用chmod或chown指令是無法完成這個要求的。因而,Linux系統提供了ACL(Access Control List)專門來完成這種細部權限設定。

設定ACL使用的是setfacl指令,該指令格式如下:

setfacl [選項] 設定值 檔案名

常用選項:

-m,設定一個ACL規則。

-x,取消一個ACL規則。

-b,取消所有的ACL規則。

例:設定natasha對/home/project目錄具有rwx權限。

[root@localhost ~]# setfacl -m u:natasha:rwx /home/project/

[root@localhost ~]# ll -d /home/project/

drwxrwxrwx+ 2 student users 4096 12月 2 16:43 /home/project/

設定完ACL後,檢視檔案詳細資訊時在權限部分會多出一個“+”的辨別,代表檔案啟用了ACL權限。

下面再設定instructor使用者對/home/project目錄具有r-x權限。

[root@localhost ~]# setfacl -m u:instructor:r-x /home/project/

通過getfacl指令可以來檢視ACL權限。

[root@localhost ~]# getfacl /home/project/

getfacl: Removing leading '/' from absolute path names

# file: home/project/

# owner: student

# group: users

user::rwx

user:instructor:r-x

user:natasha:rwx

group::rwx

mask::rwx

other::rwx

通過“setfacl –m”指令可以來修改ACL。

例:将instructor使用者的權限修改為rwx。

[root@localhost ~]# setfacl -m u:instructor:rwx /home/project/

通過“setfacl -x”指令可以從ACL中去除某個使用者。

例:将instructor使用者從ACL中去除。

[root@localhost ~]# setfacl -x u:instructor /home/project/

ACL可以針對使用者設定,也可以針對使用者組設定。要使用ACL必須要有檔案系統的支援,Linux中标準的EXT2/EXT3/EXT4檔案系統都支援ACL功能。但是要注意,RHEL6中預設的檔案系統支援ACL,如果是新挂載的分區,則不支援ACL應用,可以在挂載檔案系統時使用“-o acl”選項啟動ACL支援。

例:将/dev/sdb1分區挂載到/home目錄,并啟動ACL支援。檔案系統挂載之後,通過mount指令确認ACL已啟動。

[root@localhost ~]# mount -o acl /dev/sdb1 /home

[root@localhost ~]# mount | grep home

/dev/sdb1 on /home type ext4 (rw,acl)

如果想要在系統啟動時自動應用ACL功能,則需要修改/etc/fstab檔案,添加以下行:

[root@localhost ~]# vim /etc/fstab

/dev/sdb1 /home ext4 defaults,acl 0 0

ACL用于提供額外權限,主要用來對權限進行微調。在系統中設定權限時,主要還是應該依靠chmod、chown這些傳統的方法,而不能以ACL為主,否則維護起來會比較吃力。

因而當在生産環境中設定權限時,建議先用chmod、chown設定總體權限,然後根據需要再用ACL設定細部權限。

本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1577458

繼續閱讀