ACL是指訪問控制列表,是指一個針對文件/目錄的訪問控制列表,ACL用于設定用戶針對文件的權限。ACL的作用:1、可以針對用戶來設置權限;2、可以針對用戶組來設置權限;3、子文件/目錄繼承父目錄的權限。
本教程操作環境:linux7.3系統、Dell G3電腦。
ACL 是什么
ACL的全稱是 Access Control List (訪問控制列表) ,一個針對文件/目錄的訪問控制列表。它在UGO權限管理的基礎上為文件系統提供一個額外的、更靈活的權限管理機制。它被設計為UNIX文件權限管理的一個補充。
ACL允許你給任何的用戶或用戶組設置任何文件/目錄的訪問權限。
在 linux 系統中, ACL 可實現對單一用戶設定訪問文件的權限。也可以這么說,設定文件的訪問權限,除了用傳統方式(3 種身份搭配 3 種權限),還可以使用 ACL 進行設定。
ACL有什么用
既然是作為UGO權限管理的補充,ACL自然要有UGO辦不到或者很難辦到的本事,例如:
-
可以針對用戶來設置權限
-
可以針對用戶組來設置權限
-
子文件/目錄繼承父目錄的權限
檢查是否支持ACL
ACL需要Linux內核和文件系統的配合才能工作,當前我們能見到的大多數Linux發行版本默認都是支持的。但最好還是能夠先檢查一下:
sudo?tune2fs?-l?/dev/sda1?|grep?“Default?mount?options:” Default?mount?options:?????????????????user_xattr????acl
我們能夠看到默認情況下(Default mount options:)已經加入 acl 支持了。
ACL針對普通文件的設置:
setfacl命令(set設置,f文件file,acl訪問控制列表)
添加文件的ACL
setfacl?-m?u:zx:---?1243.txt?(zx用戶對1243.txt文件沒有任何權限) setfacl?-m?g:zx:---?1243.txt?(zx組對1243.txt文件沒有任何權限)
-m參數表示modify修改,u表示針對user用戶設置,zx用戶名稱,—表示設置的權限信息
查看文件的ACL權限
getfacl?1243.txt??(查看文件的ACL權限信息)
刪除文件的ACL權限
setfacl?-x?u:zx??1243.txt
在設置了ACL權限后,通過查看文件信息可以看到文件權限信息列有個“+”號
?移除文件的ACL權限信息:
setfacl -b?1243.txt? (移除1342.txt的ACL權限信息)
ACL針對目錄文件的設置
對目錄文件設置ACL,是為了對目錄文件里面,創建的文件進行權限控制.
mask:表示用戶的最大權限范圍
setfacl?-m?d:u:zx:r--?123
d:default(設定默認)
用root在根目錄下創建123/bbb目錄文件并設置用戶zx有讀行權限:
?可以看到后續的新建123文件都繼承了之前的bbbACL權限設置zx只有讀權限
相關推薦:《Linux視頻教程》