linux ACL訪問控制列表

1.ACL介紹

Linux 下用戶對文件的操作權限有 r-讀, w-寫, x-可執行三種,而對linux 下的文件而言,用戶身份分為:所有者, 所屬組, 其它人, 且文件的所有者,所屬組都只能是一個,所以在對文件分配用戶的使用權限時,只能對這三種身份進行分配rwx 權限.Linux 主要作為服務器系統使用,用戶眾多.所以在實際使用場景中,這三種身份并不能很好地實現資源權限分配問題,所以就有了ACL權限。ACL 權限就是為了解決linux 下三種身份不能滿足資源權限分配需求的問題的.

2. 那些文件系統支持ACL
Linux下的文件系統支持acl的有:ext2、ext3、ext4,xfs。
CentOS7 默認創建的xfs和ext4文件系統具有ACL功能
CentOS7 之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
ACL生效順序:所有者,自定義用戶,自定義組,其他人。

3. 用法介紹

a.為多用戶或組的文件和目錄賦予訪問權限rwx
? getfacl file|directory #查看文件的acl屬性。
? setfacl -m u:wang:rwx file|directory #為文件設置acl的user屬性。
? setfacl -Rm g:sales:rwX directory #為文件設置acl的group屬性。
? setfacl -M file.acl file|directory #恢復acl屬性
? setfacl -m g:salesgroup:rw file| directory #為文件設置acl的group屬性。
? setfacl -m d:u:wang:rx directory #設置ACL默認權限,僅影響新創建的文件及目錄,不影響當前。
? setfacl -x u:wang file|directory #刪除一條默認權限,但是刪除后,仍有屬性(+)存在。
? setfacl -X file.acl directory # 批量刪除acl屬性。

b.ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,而非傳統的組權限getfacl
可看到特殊權限: flags通過ACL賦予目錄默認x權限, 目錄內文件也不會繼承x權限base ACL 不能刪除
setfacl -k dir #刪除默認ACL權限
setfacl –b file1 #清除所有ACL權限
getfacl file1 | setfacl –set-file=- file2 #復制file1的acl權限給file2

c.ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,而非傳統的組權限
getfacl 可看到特殊權限: flags
通過ACL賦予目錄默認x權限, 目錄內文件也不會繼承x權限
base ACL 不能刪除
setfacl -k dir #刪除默認ACL權限
setfacl –b file1 #清除所有ACL權限
getfacl file1 | setfacl –set-file=- file2 #復制file1

d. 備份和恢復ACL 主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p
參數。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息。
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R –set-file=acl.txt /tmp/dir1
setfacl –restore acl.txt
getfacl -R /tmp/dir1的acl權限給file2。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95514

(0)
M30_王海濤M30_王海濤
上一篇 2018-04-08
下一篇 2018-04-08

相關推薦

欧美性久久久久