複製鏈接
請複製以下鏈接發送給好友

文件訪問控制列表

鎖定
文件訪問控制列表(Access Control Lists,ACL)是Linux開的一套新的文件系統權限管理方法。
中文名
文件訪問控制列表
性    質
控制列表
屬    性
文件訪問

目錄

文件訪問控制列表誕生

傳統的Linux文件系統的權限控制是通過user、group、other與r(讀)、w(寫)、x(執行)的不同組合來實現的。隨着應用的發展,這些權限組合已不能適應現時複雜的文件系統權限控制要求。例如,我們可能需把一個文件的讀權限和寫權限分別賦予兩個不同的用户或一個用户和一個組這樣的組合。傳統的權限管理設置起來就力不從心了。

文件訪問控制列表使用

要啓用ACL,需內核提供ACL支持和安裝ACL管理工具。2.6內核都提供ACL支持,在編譯內核時只要在file systems分支下,把Ext2 POSIX Access Control Lists或Ext3 POSIX Access Control Lists選中就可以了。用以下命令掛接硬盤啓用文件系統ACL。
debian:~# mount -t ext2 -o acl /dev/hda1 /mnt/hda1
我們也可把選項寫到/etc/fstab文件中,在需啓用acl的分區選項包含acl參數。
ACL有兩種,一種是存取ACL(access ACLs),針對文件和目錄設置訪問控制列表。一種是默認ACL(default ACLs),只能針對目錄設置。如果目錄中的文件沒有設置ACL,它就會使用該目錄的默認ACL。要設置ACL,首先要安裝管理工具,它們分別是getfacl和setfacl,在debian中只要安裝acl軟件包即可。
debian:~# apt-get install acl
setfacl工具可為文件和目錄ACL,命令格式如下:
setfacl -m <rules> <files>
rules的格式如下,多條規則間可用逗號分隔。
u:uid:perms #為用户設置ACL,perms為r、w、x的組合
g:gid:perms #為組設置ACL
o:perms #為其它組設置ACL
m:perms #設置有效權限屏蔽
下面是setfacl的實例:
debian:~# setfacl -m u:jims:rw testfile.txt
#-m選項表示添加或修改文件或目錄的權限訪問列表
debian:~# setfacl -x u:jims:rw testfile.txt
#-x選項表示刪除文件或目錄的訪問列表
要設置默認的ACL,只在rules前加一個d:,以表示指定一個目錄,如:
debian:~# setfacl -m d:o:rx /data
getfacl用以顯示文件或目錄的ACL,如:
debian:getfacl debian.xml
# file: debian.xml
# owner: jims
# group: jims
user::rwx
group::r--
other::r--
tar和dump工具不能備份ACL文件,如果我們要備份ACL文件系統,可以使用star工具。另外,samba可通過--with-acl-support編譯選項支持ACL。