通過ACL功能配置的許可權優先順序高於通過chmod命令配置的普通許可權,比如某檔案的所有者和擁有組是charles,該檔案的普通許可權是755,也就是說除了charlesroot使用者以外的使用者是沒有寫入許可權的,但是通過通過ACL配置了oliva使用者對該檔案有寫許可權,那麼oliva使用者對該檔案是有寫許可權的。

在使用“ls -l”或“ll”命令瀏覽檔案或目錄時,在許可權部分多了一個“+”表示該檔案或目錄已經配置了ACL功能。

[root@srv tmp]# ll

total 8

drwxrwxr-x+ 2 root root 4096 Feb 15 23:25 ada

配置分割槽支援ACL功能

RHEL 5.x中只有在安裝作業系統時建立的分割槽才支援ACL功能,其他分割槽在預設情況下是不支援ACL功能。如果希望讓那些在安裝作業系統完成後建立的分割槽支援ACL功能可以使用以下幾種方法。

(1)      使用tune2fs命令。tune2fs功能非常多,但這裡重點說明與ACL有關的功能。使用tune2fs命令讓一個分割槽永久支援ACL功能,該命令配置分割槽支援ACL的語法如下。

tune2fs -o acl 分割槽

在下面的例子中使用tune2fs命令使/dev/sda12永久支援ACL功能在配置完成後可通過tune2fs -l分割槽命令檢視。

l  使/dev/sda12永久支援ACL功能

[root@srv ~]# tune2fs -o acl /dev/sda12

l  使用-l選項可檢視分割槽的配置情況。

[root@srv ~]# tune2fs -l /dev/sda12    

tune2fs 1.39 (29-May-2006)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          8c54398d-e4c8-4777-9d09-26eed1041049

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal resize_inode dir_index filetype sparse_super

#在“Default mount options:”的值中包括“acl”就說明該分割槽支援ACL功能。

Default mount options:    acl

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

(2)      使用mount命令。使用mount命令讓一個分割槽臨時支援ACL功能(在重新啟動計算機後ACL會失效),該命令配置分割槽支援ACL的語法如下。

mount -o remount,acl 分割槽

mount -o acl 分割槽 掛載點

使用mount命令讓一個分割槽臨時支援ACL功能時,可以使用以上二種方式。第一種使用在分割槽已經被掛載的情況,也就是說這個分割槽已經在使用但還不支援ACL功能,在不影響分割槽使用的情況下重新掛載分割槽使其支援ACL功能;第二種使用在一開始掛載分割槽時就使其支援ACL功能。在下面的例子中使用mount命令使分割槽臨時ACL功能,在配置完成後,可通過“mount”命令檢視。

l  使用mount命令使一個已經掛載的分割槽(/dev/sda13)支援ACL功能。

[root@srv ~]# mount -o remount /dev/sda13

l  使用mount命令掛載/dev/sda14分割槽並支援ACL功能。

[root@srv ~]# mount -o acl /dev/sda14 /media/sda14

[root@srv ~]# mount   #使用mount命令檢視。

/dev/sda7 on / type ext3 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/sda8 on /tmp type ext3 (rw)

/dev/sda6 on /var type ext3 (rw)

/dev/sda3 on /home type ext3 (rw)

/dev/sda2 on /usr type ext3 (rw)

/dev/sda5 on /usr/local type ext3 (rw)

/dev/sda1 on /boot type ext3 (rw)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda10 on /media/sda10 type ext3 (rw)

/dev/sda11 on /media/sda11 type ext3 (rw,acl)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

none on /proc/fs/vmblock/mountPoint type vmblock (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

#如果分割槽支援ACL功能時,在掛載資訊中會顯示出來。

/dev/sda13 on /media/sda13 type ext3 (rw,acl)

/dev/sda14 on /media/sda14 type ext3 (rw,acl)

(3)      修改/etc/fstab檔案,使分割槽永久支援ACL功能。在/etc/fstab檔案中在需要支援ACL功能分割槽的掛載選項列中加上“,acl”即可使分割槽永久支援ACL功能。在下面/etc/fstab檔案的例子中/dev/sda10就支援ACL功能。在修改/etc/fstab檔案後,為了讓配置生效需要重新啟動計算機或使用“mount -o remount 分割槽”命令。

[root@srv ~]# cat /etc/fstab

LABEL=/

/

ext3

defaults       

1 1

LABEL=/tmp

/tmp

ext3   

defaults       

1 2

LABEL=/var

/var

ext3   

defaults       

1 2

LABEL=/home

/home

ext3   

defaults       

1 2

LABEL=/usr

/usr

ext3   

defaults       

1 2

LABEL=/usr/local

/usr/local

ext3   

defaults       

1 2

LABEL=/boot

/boot

ext3   

defaults       

1 2

tmpfs

/dev/shm

tmpfs  

defaults       

0 0

devpts

/dev/pts

devpts 

gid=5,mode=620 

0 0

sysfs

/sys

sysfs  

defaults       

0 0

proc

/proc

proc   

defaults       

0 0

LABEL=SWAP-sda9

swap                   

swap                   

defaults       

0 0

/dev/sda10

/media/sda10

ext3   

defaults,acl

0 0

提示:通過tune2fs命令使分割槽支援ACL功能後,通過mount命令是無法檢視到的,通過修改/etc/fstab使分割槽支援ACL功能後,通過mount命令可以檢視到分割槽支援ACL功能。

setfacl:配置檔案或目錄的ACL

在配置了分割槽支援ACL功能後,就可以使用setfacl命令讓檔案或目錄使用ACL功能配置更精細的許可權。在Linux中對檔案或目錄的許可權是可讀、可寫入、可執行,ACL功能可對不使用者的使用者配置這些許可權,該命令語法如下。

setfacl [-bkdR] [{-m|-x} <ACL規則>] 檔案|目錄

常用選項:

l  檔案|目錄:需要配置ACL的檔案或目錄。

l  -m:更改檔案或目錄的ACL規則。

l  -x:刪除檔案或目錄指定的ACL規則。

l  -b:刪除檔案或目錄所有ACL規則。

l  -k:刪除檔案或目錄預設的ACL規則。

l  -d:指定檔案或目錄預設的ACL規則。

l  –test:測試模式,不會改變任何檔案或目錄的ACL規則,操作後的ACL規格將被顯示。

l  -R:遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。

在該命令中指定ACL規則可以使用以下幾種方式。

(1)      [d:]u:<UID|使用者>:許可權:指定使用者的ACL[d:]表示配置使用者對檔案或目錄的預設的ACL,許可權可以使用字元或數字。

(2)      [d:]g:<GID|使用者組>:許可權:指定使用者的ACL[d:]表示配置使用者對檔案或目錄的預設的ACL,許可權可以使用字元或數字。

(3)      [d:]o:許可權:相關於普通許可權中其他使用者的許可權,[d:]表示配置使用者對檔案或目錄的預設的ACL,許可權可以使用字元或數字。

(4)      [d:] m:許可權:指定有效許可權,[d:]表示配置的預設的許可權,許可權可以使用字元或數字。