Linux檔案系統ACLs許可權控制

2022-01-30 16:33:00 字數 2135 閱讀 9262

linux檔案系統給所有者(owner)、所有組(owning group)、其它(other)每一類使用者分別定義了的rwx許可權,且是彼此獨立的。雖然linux有也linux特殊檔案許可權的功能支援,但要像在windows下把許可權控制可以精確到使用者和組(如允許某個檔案允許某一特殊使用者修改,允許某一組的使用者可以檢視等)一樣靈活,這些顯然還不夠。令人欣慰的是,linux也有acls許可權控制的支援,在linux中acls在reiserfs,ext2,ext3,jfs,xfs等檔案系統中受到支援。

修改檔案acl:setfacl -m u:tux:rw file    允許使用者tux讀寫file檔案

檢視檔案acl:getfacl file

使用了acl的檔案,通過ls -l命令來檢視許可權時,後面會有乙個「+」號,group的許可權會有變化(使用了acl mask許可權)。

檔案使用acl後,許可權角色有如下幾種型別:

最小化acl:

owning user

owning group

other

擴充套件acl:

可以包含若干個物件:named user(設定單獨使用者的訪問許可權)、named group(設定單獨群組的訪問許可權

包含乙個mask(限制named users 和 named groups的許可權

舉例說明如下:

owneruser::rwx

named useruser:name:rwx

owning  groupgroup ::rwx

named groupgroup :nam e:rwx

maskmask::rwx

otherother::rwx

定義在owner、other裡的許可權一直都是有效的,其它許可權可能用效或者被隱蔽。

named user與named group的值是否生效,還要看其值與mask的「與」值,即mask也要有該許可權,才能生效。

mask的值一般是與owning group一致的,可以通過修改owning group的值來修改mask。

舉例說明如下:

linux-canbeing:/home/canbeing/temp # getfacl my

# file: my

# owner: canbeing

# group: users

user::rw-

user:canbeing:rwx        #effective:r-xw沒有生效

group::r--

mask::r-x

other::r--

子目錄會繼承父目錄的acl。

如果父目錄有acl,則建立新檔案或者資料夾時,預設許可權不會根據umask來計算,而是繼承或者根據命令引數。

使用setfacl -d -m u:canbeing:rw /tmp/acl_test/  則此許可權會得到子目錄及檔案的繼承(許可權以default開頭)

linux-canbeing:/tmp/acl_test # getfacl /tmp/acl_test/

getfacl: removing leading '/' from absolute path names

# file: tmp/acl_test/

# owner: root

# group: root

user::rwx

user:canbeing:rwx

group::---

mask::rwx

other::---

default:user::rwx

default:user:canbeing:rw-

default:group::---

default:mask::rw-

default:other::---

linux檔案系統許可權

777 任何人可讀寫 440 不可讀寫 644 唯讀 755 可執行文件不可修改 rw 600 只有屬主有讀寫許可權。rw r r 644 只有屬主有讀寫許可權 而屬組使用者和其他使用者只有讀許可權。rwx 700 只有屬主有讀 寫 執行許可權。rwxr xr x 755 屬主有讀 寫 執行許可權 ...

linux檔案系統許可權

許可權型別 rwx,讀 寫 執行 r 4 w 2 x 1 rwx許可權說明 1.對於檔案而言 r 可以獲取檔案的資料 w 可以修改檔案資料 x 可以將此檔案執行為程序 2 對於目錄而言 r 可以使用ls命令獲取檔案列表 w 可以修改檔案列表,即建立和刪除 x 表示我們可以cd此目錄,並且可以使用ls...

linux檔案系統許可權解析

詳細參考 檢視activity 堆記憶體限制 activitymanager systemservice activitymanager getsystemservice this.activity service int memoryclass systemservice.getmemorycla...