W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
不知道大家是否發(fā)現(xiàn),前文講解的一般權(quán)限、特殊權(quán)限、隱藏權(quán)限其實有一個共性—權(quán)限是針對某一類用戶設置的。如果希望對某個指定的用戶進行單獨的權(quán)限控制,就需要用到文件的訪問控制列表(ACL)了。通俗來講,基于普通文件或目錄設置ACL其實就是針對指定的用戶或用戶組設置文件或目錄的操作權(quán)限。另外,如果針對某個目錄設置了ACL,則目錄中的文件會繼承其ACL;若針對文件設置了ACL,則文件不再繼承其所在目錄的ACL。
為了更直觀地看到ACL對文件權(quán)限控制的強大效果,我們先切換到普通用戶,然后嘗試進入root管理員的家目錄中。在沒有針對普通用戶對root管理員的家目錄設置ACL之前,其執(zhí)行結(jié)果如下所示:
[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 16:31:19 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd /root
-bash: cd: /root: Permission denied
[linuxprobe@linuxprobe root]$ exit
setfacl命令用于管理文件的ACL規(guī)則,格式為“setfacl [參數(shù)] 文件名稱”。文件的ACL提供的是在所有者、所屬組、其他人的讀/寫/執(zhí)行權(quán)限之外的特殊權(quán)限控制,使用setfacl命令可以針對單一用戶或用戶組、單一文件或目錄來進行讀/寫/執(zhí)行權(quán)限的控制。其中,針對目錄文件需要使用-R遞歸參數(shù);針對普通文件則使用-m參數(shù);如果想要刪除某個文件的ACL,則可以使用-b參數(shù)。下面來設置用戶在/root目錄上的權(quán)限:
[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /root
[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 15:45:03 CST 2017 on pts/1
[linuxprobe@linuxprobe ~]$ cd /root
[linuxprobe@linuxprobe root]$ ls
anaconda-ks.cfg Downloads Pictures Public
[linuxprobe@linuxprobe root]$ cat anaconda-ks.cfg
[linuxprobe@linuxprobe root]$ exit
是不是覺得效果很酷呢?但是現(xiàn)在有這樣一個小問題—怎么去查看文件上有那些ACL呢?常用的ls命令是看不到ACL表信息的,但是卻可以看到文件的權(quán)限最后一個點(.)變成了加號(+),這就意味著該文件已經(jīng)設置了ACL了?,F(xiàn)在大家是不是感覺學得越多,越不敢說自己精通Linux系統(tǒng)了吧?就這么一個不起眼的點(.),竟然還表示這么一種重要的權(quán)限。
[root@linuxprobe ~]# ls -ld /root
dr-xrwx---+ 14 root root 4096 May 4 2017 /root
getfacl命令用于顯示文件上設置的ACL信息,格式為“getfacl 文件名稱”。Linux系統(tǒng)中的命令就是這么又可愛又好記。想要設置ACL,用的是setfacl命令;要想查看ACL,則用的是getfacl命令。下面使用getfacl命令顯示在root管理員家目錄上設置的所有ACL信息。
[root@linuxprobe ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:linuxprobe:rwx
group::r-x
mask::rwx
other::---
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: