linux系統中的許可權之facl

2022-09-13 23:03:35 字數 3574 閱讀 1760

目錄

例項講解

對組程序的訪問許可權匹配模型

預設情況下,由於乙個普通使用者(tom)無法修改自己的檔案的屬主和屬組,所以當tom想為好**(jerry)分享自己的檔案時,只能通過修改檔案的o(ther)許可權使jerry擁有訪問檔案的許可權。但是,這樣會使所有的other使用者也同時擁有了訪問這個檔案的許可權,這樣一來,資料的安全性大大降低。

facl的出現,很好的解決了這個問題。

facl(檔案訪問控制列表)是檔案的一種額外的賦權機制,它在檔案的基本許可權u,g,o外,新增了另一層讓普通使用者能夠將檔案的控制許可權賦予另外的一些使用者或者組的機制。

[jerry@centos7u6 tmp]$ getfacl tomfile 

# file: tomfile

# owner: tom

# group: tom

user::rw-

group::rw-

other::---

setfacl命令有很多選項,但是最常用的是-m和-x

[tom@centos7u6 tmp]$ ll tomfile 

-rw-rw---- 1 tom tom 20 mar 31 13:51 tomfile

[jerry@centos7u6 tmp]$ cat tomfile 

cat: tomfile: permission denied

[tom@centos7u6 tmp]$ setfacl -m u:jerry:rw tomfile 

[jerry@centos7u6 tmp]$ cat tomfile

this is tom's file.

[jerry@centos7u6 tmp]$ echo "jerry is coming." >> tomfile

[jerry@centos7u6 tmp]$ cat tomfile

this is tom's file.

jerry is coming.

[test@centos7u6 tmp]$ cat tomfile

cat: tomfile: permission denied

[tom@centos7u6 tmp]$ ls -l tomfile 

-rw-rw----+ 1 tom tom 20 mar 31 13:51 tomfile

[tom@centos7u6 tmp]$ getfacl  tomfile 

# file: tomfile

# owner: tom

# group: tom

user::rw-

user:jerry:r--

group::rw-

mask::rw-

other::---

[test@centos7u6 tmp]$ ls -l testfile 

-rw-rw-r-- 1 test test 5 mar 31 15:04 testfile

[root@centos7u6 tmp]# id tom

uid=1004(tom) gid=1004(tom) groups=1004(tom),1006(workgroup)

[root@centos7u6 tmp]# id jerry

uid=1005(jerry) gid=1005(jerry) groups=1005(jerry),1006(workgroup)

[tom@centos7u6 tmp]$ echo "tom is coming." >> testfile

bash: testfile: permission denied

[jerry@centos7u6 tmp]$ echo "jerry is coming." >> testfile

bash: testfile: permission denied

[test@centos7u6 tmp]$ setfacl -m g:workgroup:rw testfile 

#使用者tom可以修改testfile

[tom@centos7u6 tmp]$ echo "$(whoami) is coming." >> testfile

[tom@centos7u6 tmp]$ cat testfile

test

tom is coming.

#jerry可以修改testfile

[jerry@centos7u6 tmp]$ echo "$(whoami) is coming." >> testfile

[jerry@centos7u6 tmp]$ cat testfile

test

tom is coming.

jerry is coming.

#由於使用者user5不在workgroup內,所以無法修改testfile

[user5@centos7u6 tmp]$ id user5

uid=1003(user5) gid=1003(user5) groups=1003(user5)

[user5@centos7u6 tmp]$ echo "$(whoami) is coming." >> testfile

bash: testfile: permission denied

[root@centos7u6 tmp]# ls -l testfile 

-rw-rw-r--+ 1 test test 37 mar 31 15:14 testfile

[root@centos7u6 tmp]# getfacl testfile 

# file: testfile

# owner: test

# group: test

user::rw-

group::rw-

group:workgroup:rw-

mask::rw-

other::r--

檢查程序的發起者和被訪問檔案的屬主是否相同

如果相 同,則使用檔案屬主的許可權訪問

如果不同,轉到步驟2

檢查程序的發起者和被訪問檔案的屬組是否相同

如果相同,則使用檔案屬組的許可權訪問

如果不同,轉到步驟3

使用other許可權

檢查程序的發起者和被訪問檔案的屬主是否相同

如果相同,則使用檔案屬主的許可權訪問

如果不同,轉到步驟2

檢查被訪問的檔案是否有關於程序發起者這個特定使用者的facl

如果有,則使用facl中這個特定使用者的facl許可權訪問

如果沒有,轉到步驟3

檢查程序的發起者和被訪問檔案的屬組是否相同

如果相同,則使用檔案屬組的許可權訪問

如果不同,轉到步驟4

檢查被訪問的檔案是否有關於程序發起者這個特定使用者的所屬組的facl

如果有,則使用facl中這個特定使用者的所屬組的facl許可權訪問

如果沒有,轉到步驟5

使用other許可權

關於linux系統中的許可權

1.檔案系統的許可權 ugo許可權 按照所有者許可權,組許可權,其他使用者許可權的匹配規則從前往後匹配許可權 關於目錄許可權 對目錄只有r許可權的話,只能簡單的列出目錄下的資訊,不能詳細列出,也不能在該目錄下建立檔案 只有r配合x之後才能檢視詳細資訊 對目錄只有w許可權的話,什麼都做不了 如果要對目...

Linux系統中的許可權管理

檢視file檔案,目錄1的許可權 1.對許可權的理解 r 對檔案 是否可以檢視檔案中的內容 cat file 對目錄 是否可以檢視目錄中有有什麼子檔案或者子目錄 ls dir w 對檔案 是否可以改變檔案裡面記錄的字元 對目錄 是否可以對目錄中子目錄或子檔案的元資料進行更改 x 對檔案 是否可以通過...

Linux系統中的檔案許可權

linux系統將一切看做檔案 包括外部裝置都被看作為特殊檔案 的原則,使得檔案的屬性非常豐富。我們在文字命令列介面輸入指令ls l,檔案便會以長列表的形式在螢幕上輸出,並列出檔案的一些基本屬性。如圖所示 使用 ls l 指令,以長列表的方式列出了使用者家目錄 下的一些檔案和目錄。每一行的資訊包含了檔...