案例引入:
系統中有兩個使用者tom,jerry,tom在公共目錄中希望讓jerry訪問(讀寫),你作為管理員應該如何實現?
講解引入:
tom使用者建立的檔案的屬主和屬組(基本組)都是tom,這就意味著jerry不屬於tom的基本組,就不能應用於組許可權,
此時jerry訪問時會應用其他other許可權,如果要讓jerry能夠實現讀寫,那必須給other許可權,這樣就很不安全了!
我們還可以把tom檔案的屬主改為jerry,但是普通使用者是沒有許可權更改的
[root@xiaoke ~]# useradd tom
[root@xiaoke ~]# useradd jerry
[root@xiaoke ~]# su - tom
[tom@xiaoke ~]$ cd /tmp/
[tom@xiaoke tmp]$ touch a.tom
[tom@xiaoke tmp]$ exit
[root@xiaoke ~]# su - jerry
[jerry@xiaoke ~]$ cd /tmp/
[jerry@xiaoke tmp]$ chown jerry:jerry a.tom
顯示結果:
chown: 正在更改"a.tom" 的所有者: 不允許的操作
這怎麼辦呢?這就體現了檔案系統訪問控制列表的意義了!
解決方法:
facl:
filesystem access control list
意義:利用檔案擴充套件屬性,儲存了額外的訪問控制許可權
命令:setfacl:設定facl
-m:設定額外許可權
格式:-m u:uid:perm
//設定使用者為perm許可權
-m g:gid:perm
//設定組為perm許可權
-m d:u:uid:perm
//主要針對目錄操作,將目錄擴充套件許可權向下繼承
-m d:g:gid:perm
//主要針對目錄操作,將目錄擴充套件許可權向下繼承
-x:取消額外許可權
格式:-x u:uid
-x g:gid
getfacl:獲取facl
舉例:[root@xiaoke ~]# mkdir /backup
[root@xiaoke ~]# cd /backup/
[root@xiaoke backup]# cp /etc/inittab ./
[root@xiaoke backup]# getfacl inittab
顯示結果:
# file: inittab
# owner: root
# group: root
user::rw-
group::r--
other::r--
另一案例:設定使用者hadoop對檔案inittab讀寫許可權
[root@xiaoke ~]# useradd hadoop
[root@xiaoke ~]# su - hadoop
[hadoop@xiaoke ~]$ cd /backup/
[hadoop@xiaoke backup]$ echo 123 > inittab
顯示結果:-bash: inittab: 許可權不夠
解決方法:
[root@xiaoke backup]# setfacl -m u:hadoop:rw inittab
[root@xiaoke backup]# getfacl inittab
顯示結果:
# file: inittab
# owner: root
# group: root
user::rw-
//冒號中間為空,代表是缺省屬主
user:hadoop:rw-
//額外指定使用者
group::r--
mask::rw-
other::r--
驗證:[root@xiaoke backup]# su - hadoop
[hadoop@xiaoke ~]$ echo 123 >> /backup/inittab
[hadoop@xiaoke ~]$ tail -2 /backup/inittab
顯示結果:
id:3:initdefault:
123同樣的對屬組設定也是類似
[root@xiaoke backup]# setfacl -m g:mygroup:rw inittab
[root@xiaoke backup]# getfacl inittab
顯示結果:
# file: inittab
# owner: root
# group: root
user::rw-
user:hadoop:rw-
group::r--
group:mygroup:rw-
//注意組要事先存在
mask::rw-
other::r--
注意:[root@xiaoke backup]# ls -l
顯示結果:
-rw-rw-r--+ 1 root root 888 3月 9 06:41 inittab
備註:乙個檔案要是有擴充套件屬性的話,ls -l顯示結果會看到+這個符號
注意:乙個有著擴充套件屬性的檔案,通過複製或歸檔乙個檔案時,這個擴充套件屬性很可能不能歸檔,除非使用特定選項或命令。
取消許可權:
1.取消使用者許可權
[root@xiaoke backup]# setfacl -x u:hadoop inittab
[root@xiaoke backup]# getfacl inittab
2.取消組許可權
[root@xiaoke backup]# setfacl -x g:mygroup inittab
[root@xiaoke backup]# getfacl inittab
檔案系統訪問控制列表
案例引入 系統中有兩個使用者tom,jerry,tom在公共目錄中希望讓jerry訪問 讀寫 作為管理員應該如何實現 講解引入 tom使用者建立的檔案的屬主和屬組 基本組 都是tom,這就意味著jerry不屬於tom的基本組,就不能應用於組許可權 此時jerry訪問時會應用其他other許可權,如果...
檔案系統訪問控制列表
案例引入 系統中有兩個使用者tom,jerry,tom在公共目錄中希望讓jerry訪問 讀寫 你作為管理員應該如何實現?講解引入 tom使用者建立的檔案的屬主和屬組 基本組 都是tom,這就意味著jerry不屬於tom的基本組,就不能應用於組許可權,此時jerry訪問時會應用其他other許可權,如...
特殊許可權 檔案系統訪問控制列表
1 程序以某使用者的身份執行,程序是發起此程序使用者的 因此以此使用者的身份和許可權完成操作 2 許可權匹配模型 1 判斷程序的屬主,是否為被訪問的檔案屬主 如果是,則應用屬主的許可權 否則進入第2步 2 判斷程序的屬組,是否屬於被訪問的檔案屬組 如果是,則應用屬組的許可權 否則進入第3步 3 應用...