新聞中心

成都創(chuàng)新互聯(lián)主營大邑縣網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app開發(fā)定制,大邑縣h5微信小程序開發(fā)搭建,大邑縣網(wǎng)站營銷推廣歡迎大邑縣等地區(qū)企業(yè)咨詢
[root@localhost ~]# ls -l
total 36
drwxr-xr-x. 2 root root 4096 Apr 15 16:33 Desktop
drwxr-xr-x. 2 root root 4096 Apr 15 16:33 Documents
...
-rwxr-xr-x. 2 root root 4096 Apr 15 16:33 post-install
...
以上輸出信息中,“rwxr-xr-x”就指明了不同用戶訪問文件的權限,即文件所有者擁有對文件的讀、寫、訪問權限(rwx),文件所屬群組擁有對文件的讀、訪問權限(r-x),其他用戶擁有對文件的讀、訪問權限(r-x)。
權限前的字符,表示文件的具體類型,比如 d 表示目錄,- 表示普通文件,l 表示連接文件,b 表示設備文件,等等。
但在實際應用中,以上這 3 種身份根本不夠用,給大家舉個例子。
圖 1 ACL 訪問控制權限
圖 1 的根目錄中有一個 /project 目錄,這是班級的項目目錄。班級中的每個學員都可以訪問和修改這個目錄,老師需要擁有對該目錄的最高權限,其他班級的學員當然不能訪問這個目錄。
需要怎么規(guī)劃這個目錄的權限呢?應該這樣,老師使用 root 用戶,作為這個目錄的屬主,權限為 rwx;班級所有的學員都加入 tgroup 組,使 tgroup 組作為 /project 目錄的屬組,權限是 rwx;其他人的權限設定為 0(也就是 ---)。這樣一來,訪問此目錄的權限就符合我們的要求了。
有一天,班里來了一位試聽的學員 st,她必須能夠訪問 /project 目錄,所以必須對這個目錄擁有 r 和 x 權限;但是她又沒有學習過以前的課程,所以不能賦予她 w 權限,怕她改錯了目錄中的內(nèi)容,所以學員 st 的權限就是 r-x??墒侨绾畏峙渌纳矸菽??變?yōu)閷僦??當然不行,要?root 該放哪里?加入 tgroup 組?也不行,因為 tgroup 組的權限是 rwx,而我們要求學員 st 的權限是 r-x。如果把其他人的權限改為 r-x 呢?這樣一來,其他班級的所有學員都可以訪問 /project 目錄了。
顯然,普通權限的三種身份不夠用了,無法實現(xiàn)對某個單獨的用戶設定訪問權限,這種情況下,就需要使用 ACL 訪問控制權限。
ACL,是 Access Control List(訪問控制列表)的縮寫,在 Linux 系統(tǒng)中, ACL 可實現(xiàn)對單一用戶設定訪問文件的權限。也可以這么說,設定文件的訪問權限,除了用傳統(tǒng)方式(3 種身份搭配 3 種權限),還可以使用 ACL 進行設定。拿本例中的 st 學員來說,既然賦予它傳統(tǒng)的 3 種身份,無法解決問題,就可以考慮使用 ACL 權限控制的方式,直接對 st 用戶設定訪問文件的 r-x 權限。
開啟 ACL 權限
CentOS 6.x 系統(tǒng)中,ACL 權限默認處于開啟狀態(tài),無需手工開啟。但如果你的操作系統(tǒng)不是 CentOS 6.x,可以通過如下方式查看ACL權限是否開啟:
[root@localhost ~]# mount
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on I type ext4 (rw)
…省略部分輸出…
#使用mount命令可以看到系統(tǒng)中已經(jīng)掛載的分區(qū),但是并沒有看到ACL權限的設置
[root@localhost ~]# dumpe2fs -h /dev/sda3
#dumpe2fs是查詢指定分區(qū)文件系統(tǒng)詳細信息的命令
…省略部分輸出…
Default mount options: user_xattr acl
…省略部分輸出…
其中,dumpe2fs 命令的 -h 選項表示僅顯示超級塊中的信息,而不顯示磁盤塊組的詳細信息;
使用 mount 命令可以查看到系統(tǒng)中已經(jīng)掛載的分區(qū),而使用 dumpe2fs 命令可以查看到這個分區(qū)文件系統(tǒng)的詳細信息。大家可以看到,我們的 ACL 權限是 /dev/sda3 分區(qū)的默認掛載選項,所以不需要手工掛載。
如果 Linux 系統(tǒng)如果沒有默認掛載,可以執(zhí)行如下命令實現(xiàn)手動掛載:
[root@localhost ~]# mount -o remount,acl /
#重新掛載根分區(qū),并加入ACL權限
使用 mount 命令重新掛載,并加入 ACL 權限。但使用此命令只是臨時生效,要想永久生效,需要修改 /etc/fstab 文件,修改方法如下:
[root@localhost ~]#vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 /ext4 defaults,acl 1 1
#加入ACL權限
[root@localhost ~]# mount -o remount /
#重新掛載文件系統(tǒng)或重啟系統(tǒng),使修改生效
在你需要開啟 ACL 權限的分區(qū)行上(也就是說 ACL 權限針對的是分區(qū)),手工在 defaults 后面加入 ",acl" 即可永久在此分區(qū)中開啟 ACL 權限。
新聞名稱:ACL權限是什么,LinuxACL訪問控制權限(包含開啟方式)
文章網(wǎng)址:http://www.5511xx.com/article/dpjchhe.html


咨詢
建站咨詢
