訪問控制列表((ACL)是一種在Linux中分配微調權限的方法,除了使用chmod命令。當使用chmod命令時,只能爲一個全部者和一個組分配文件或目錄的權限。若是多個用戶須要訪問咱們須要將它們放在一個組中的資源,而後爲該組提供必要的權限。可是在Linux中使用文件ACL,咱們能夠爲文件上的每一個用戶和組分配細粒度的權限,甚至拒絕訪問特定用戶若是文件具備世界權限。本文關於Linux文件ACL的教程將解釋命令getfacl和setfacl的用法。linux
首先讓咱們瞭解文件和目錄的每一個權限的目的web
文件 -shell
r(讀取) - 能夠查看文件的內容
w(寫入) - 能夠編輯文件並插入新內容
x(執行) - 能夠執行文件。此權限分配給shell腳本和CGI腳本。操作系統
目錄 -翻譯
r(讀取) - 可使用「ls」命令查看目錄的內容
w(寫入) - 能夠在目錄中建立新文件,能夠刪除現有文件
x(執行) - 具備此權限的用戶能夠更改目錄(cd)進入這個目錄code
若是getfacl和setfacl 找不到命令錯誤,則表示未安裝acl軟件包,所以請根據您的操做系統使用yum或apt-get來安裝軟件包教程
# ‘#’表示root權限下,若是不是root權限 下面命令前請加上 sudo # yum install acl # apt-get install acl
要查看文件/目錄的訪問控制列表,請使用getfacl命令遞歸
getfacl /home/file1 # file: home/file1 # owner: root # group: root user::rw- user:root:rw- group::r-- mask::rw- other::r--
在使用setfacl命令以前,必須在文件系統上啓用acl,不然您將收到如下錯誤。資源
setfacl: /path/to/file: Operation not supported
所以必須編輯/etc/fstab文件,而且必須在單詞「defaults」附近添加單詞acl,示例fstab條目以下所示get
/dev/sda3 / ext3 defaults,acl 0 0
要設置文件/目錄的ACL,請使用setfacl命令
setfacl -m u:username:rw /etc/fstab
在此命令中,「u」表示用戶,後跟用戶名和「rw」表示讀寫權限。爲了給予全部權限,使用「rwx」 拒絕全部權限使用減號( - )。例如,即便文件具備777權限,也要拒絕對/ path / to / file上的user1的全部權限
setfacl -m:user1:- /path/to/file
要授予全部權限的組
setfacl -m g:groupname:rwx /path/to/filename
要以遞歸方式將ACL設置爲目錄中的全部文件,請使用-R選項
setfacl -R -m u:username:rwx /path/to/directory
要刪除條目從訪問列表
setfacl -x u:username /path/to/file