- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
ACL(access control list)權限控制
一個文件有所屬者,所屬組,其他人三種關系,且這三種關系不可以更改,但是如果又來一個用戶要求要對該文件有r-x權限且不能更改其他用戶的權限關系,那么這三種權限關系就不夠使用了,所以這個時候需要用到ACL權限,為這個用戶單獨分配r-x權限,這樣既不會破壞其他用戶對這個文件的權限關系,又不會使這個用戶沒有這個操作文件權限的關系。
CentOS7 默認創建的xfs和ext4文件系統具有ACL功能 CentOS7 之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加
#查看是否有ACL功能
#dumpe2fs命令是查詢指定分區詳細文件系統信息的命令
#-h僅顯示超級塊中信息,而不顯示磁塊組的詳細信息
dumpe2fs -h /dev/sdb1
#添加ACL功能
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
#或者
vi /etc/fstab
#在default后面加入acl
ACL相關命令
查看ACL命令
getfacl filename
設置ACL權限
setfacl命令
格式:setfacl 選項 acl參數 目標文件或目錄
-m 設置后續的acl參數,不可與-x一起使用
-x 刪除后續的acl參數,不可與-m一起使用
-b 刪除所有的acl參數
-k 刪除默認的acl參數
-R 遞歸設置acl參數
-d 設置默認acl參數,只對目錄有效
ACL參數
u:用戶名:權限 給某個用戶設定權限,若不添加用戶名,默認修改屬主權限
g:組名:權限 給某個組設定權限,若不添加組名,默認修改屬組權限
m:權限 更改權限掩碼
范例:
# 創建目錄并設置權限
mkdir -p /tmp/test
chmod 640 /tmp/test
# 創建用戶AAA、BBB 創建組testg并加入
useradd AAA
useradd BBB
groupadd testg
gpasswd -a AAA testg
gpasswd -a BBB testg
# 設置acl權限
setfacl -m u:AAA:rx test
# 現在AAA可訪問
# 設置acl權限
setfacl -m g:testg:rx test
# 現在BBB也可訪問
最大有效權限mask
mask是用來指定最大有效權限的。mask只影響除所有者和other的之外的人和組的最大權限。如果我給用戶賦予了ACL權限,如果我再設置mask權限這是需要和mask的權限相與才能得到用戶的真正的權限,把-當做0,通過調整mask權限來調整文件的權限,下面來調整一下最大用戶權限
setfacl -m u:AAA:rwx 1.txt
備份和還原ACL
主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數。但是tar等常見的備份工具是不 會保留目錄和文件的ACL信息
#備份ACL
getfacl -R /tmp/dir > acl.txt
#消除ACL權限
setfacl -R -b /tmp/dir
#還原ACL權限
setfacl -R --set-file=acl.txt /tmp/dir
#還原ACL權限
setfacl --restore acl.txt
#查看ACL權限
getfacl -R /tmp/dir
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP