5.5 文件訪問控制列表

2022-05-30 13:58 更新

不知道大家是否發(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
  1. setfacl命令

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
  1. getfacl命令

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::---
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號