close

按此前往linux完整教學目錄

 

 

ACL權限的設定:

一個使用者對一個徑物而言,擁有下列三種身分的其中一種:即「擁有者」、「群組」、「外人」。上述的權限設定,就是為了這三種身分來設定的。而Linux還有更細部的權限設定,可以將某使用者設定為徑物的「特定人士」、或是將某群組設定為徑物的「特定群組」,其對此徑物擁有的權限也可以獨立於前述的三種身分,另設一個「特定人士權限」或「特定群組權限」。這個機制稱為「ACL(access control list)機制」。因此,這個特定權限也被稱為「ACL權限」。通常只有root與徑物的擁有者可以設定徑物的ACL權限。

※註:並不是所有的Linux版本都預設開啟或支援ACL。若沒有支援ACL,在使用以下說明的指令時,可能會出現類似這樣的字眼:

Operation not supported

這時,可開啟/etc/fstab檔案,在檔案最下方加上一行:

LABEL=/1    /    ext3    defaults,acl    1 1

再重新開機,通常就沒問題了。

(1) 設定一個徑物的ACL權限,語法有:

(1-1) setfacl 選項 -m ACL表達式 徑物:可依照ACL表達式去設定徑物ACL權限。

※ 其中,ACL表達式的寫法有:

u:使用者:rwx:表示將該徑物的ACL權限設定為「對使用者來說具有rwx中所提到的權限」。若使用者為空白,表示此權限是擁有者而設。

g:群組:rwx:表示將該徑物的ACL權限設定為「對群組來說具有rwx中所提到的權限」。若群組為空白,表示此權限是針對其所屬群組而設。

m:rwx:表示設定ACL權限的遮罩(mask)。任何所設定的ACL權限的rwx串,如果比遮罩的rwx串權限更高,那在實際操作時,會將權限限制在遮罩的權限。這是為了防止有人不小心手殘,設定了太高的權限給某些使用者。

例如,如果遮罩的權限是rw,命令:setfacl -m u:jack:rx aaa.txt 表示要將aaa.txt此檔案對jack這個使用者的權限,給設定為rx(可讀、不可寫、可執行)。因此,就算jackaaa.txt來說是外人,也能擁有這個特定的權限去操作aaa.txt檔。不過在操作時受限於遮罩,因此jackaaa.txt實際上的有效權限只有r

※ 選項有:

(-1) -R:若目標徑物是個目錄,此選項可讓目錄下的所有子代徑物都擁有ACL表達式中所設定的權限。若不寫該選項,就只設定目標徑物的ACL權限而已。

(-2) -d:若目標徑物是個目錄,此選項會將該目錄的「預設權限」設定為ACL表達式中所設定的權限。之後,在此目錄下所新建立的所有子代徑物,就會自動的擁有此「預設權限」。要注意,原本就存在該目錄內的徑物並不會被此預設權限影響,是新建立的才會。

(1-2) setfacl -b 徑物:將徑物中,所有設定過的ACL權限都消除。

(1-3) setfacl -k 徑物:將徑物中,所有設定過的ACL預設權限都消除。

 

(2) 察看一個徑物的ACL權限:

(2-1)要查看一徑物完整的ACL權限,可用getfacl 徑物名,會顯示類似的訊息:

# file: acltest     #這是徑物名

# owner: mary    #這是擁有者

# group: class1   #這是群組

user::rw-        #這代表對擁有者的權限

user:jack:rwx    #這代表對jack這個使用者的權限

group::r--       #這代表對所屬群組的權限

other::r--       #這代表對外人的權限

mask::rwx    #這代表權限遮罩

如果有設預設權限,還會顯示類似以下的訊息:

default:user::rw-       

default:user:jack:rwx    #預設權限:對jack這個使用者的權限

default:group::r--       

default:other::r--       

default:mask::rwx    #預設權限:權限遮罩

(2-2) 如果用ls -l 來查看徑物權限,若該徑物沒有設定ACL權限,那自然就是如下顯示:

drwxr-xr-x

2

jack

class1

2048

Aug 26 10:37

ggg

徑物權限

連結數

擁有者

群組

大小

修改日期

名稱

若該徑物有設定ACL權限,那麼在「徑物權限」的部分,會多顯示一個加號+,如:

drwxr-xr-x+

2

jack

class1

2048

Aug 26 10:37

ggg

徑物權限

連結數

擁有者

群組

大小

修改日期

名稱

 

 

 

上一篇:linux 檔案的預設權限

下一篇:linux 壓縮與打包

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()