【Linux命令】setfacl、getfacl命令基本用法(文件權限全文控制列表acl)


一、setfacl命令
setfacl用來細分linux下的文件權限。 chmod命令可以把文件權限分為u,g,o三個組,而setfacl可以對每一個文件或目錄設置更精確的文件權限。 換句話說,setfacl可以更精確的控制權限的分配。 比如:讓某一個用戶對某一個文件具有某種權限。
這種獨立於傳統的u,g,o的rwx權限之外的具體權限設置叫ACL(Access Control List) ACL可以針對單一用戶、單一文件或目錄來進行r,w,x的權限控制,對於需要特殊權限的使用狀況有一定幫助。 如,某一個文件,不讓單一的某個用戶訪問。


用法:
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... -m, --modify-acl 更改文件的訪問控制列表 -M,       --modify-file=file 從文件讀取訪問控制列表條目更改 -x, --remove=acl 根據文件中訪問控制列表移除條目 -X,       --remove-file=file 從文件讀取訪問控制列表條目並刪除 -b, --remove-all 刪除所有擴展訪問控制列表條目 -k,       --remove-default 移除默認訪問控制列表 --set=acl 設定替換當前的文件訪問控制列表 --set-file=file 從文件中讀取訪問控制列表條目設定 --mask 重新計算有效權限掩碼 -n,       --no-mask 不重新計算有效權限掩碼 -d, --default 應用到默認訪問控制列表的操作,針對目錄 -R, --recursive 遞歸操作子目錄,使用該參數時需要放在-m參數前面 -L,       --logical 依照系統邏輯,跟隨符號鏈接 -P,       --physical 依照自然邏輯,不跟隨符號鏈接 --restore=file 恢復訪問控制列表,和“getfacl -R”作用相反 --test 測試模式,並不真正修改訪問控制列表屬性 -v,       --version 顯示版本並退出 -h,       --help              顯示本幫助信息

案例:(題型)

# 用戶 natasha 能夠對文件 /var/tmp/fstab 執行讀和寫操作
[root@VM_0_10_centos study]# setfacl -m u:natasha:rw /var/tmp/fstab 

# 用戶 harry 對文件 /var/tmp/fstab 既不能讀,也不能寫
[root@VM_0_10_centos study]# setfacl -m u:harry:--- /var/tmp/fstab 

# 查看
[root@VM_0_10_centos study]# getfacl /var/tmp/fstab 
getfacl: Removing leading '/' from absolute path names # file: var/tmp/fstab # owner: root # group: root
user::rw- user:natasha:rw- user:harry:--- group::r-- mask::rw- other::r--
PS:除了對某個文件的單個用戶進行權限設置外,還可以對某個組進行同樣的設置
  設置mask的話,setfacl -m u::rwx 中的u改為m,並且這個可不針對用戶和組哦,其他的大致差不多。
g:[用戶組]:[rwx]

如果是默認用戶設置可以這樣:

#設置默認用戶,讀,寫,可執行 [root@VM_0_10_centos study]# setfacl -m u::rwx /var/tmp/fstab 

清理所有acl:

# 取消某個用戶的acl
setfacl -x u:handsome test.txt # 取消所有用戶的acl
 setfacl -b test.txt 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM