一. 概念:
ACL是Access Control List(訪問控制列表)的縮寫,用於linux復雜的用戶權限控制當中。
Cent7系統之前,只有系統安裝時創建的文件系統支持ACL,后來創建的文件系統則不支持。
Cent7系統后,不管文件系統是否在安裝系統時被建立,都支持ACL。
二. 命令:
getfacl:用於查看ACL權限。
setfacl:用於設置ACL權限。
三. 用法:
1. 查看文件或目錄權限
getfacl 文件/文件夾名
例如:
2.修改用戶對文件或目錄的權限
setfacl -m u:uname:access 文件/文件夾名
我將我個人對/root文件夾的訪問權限改成了可讀可寫,而組內用戶有讀權限,組外用戶無任何權限。
接下來進行測試:
的確,young用戶由於被賦權。所以可以在/root目錄下進行讀寫;而mysql用戶由於未被賦權,且不在root組內,故什么權限都沒有。
測試完畢后,我們使用setfacl -b /root取消剛才添加的ACL權限。
測試完畢。
Tips:
setfacl -m u:uname:access -R 文件夾名:遞歸修改文件夾下所有子目錄和文件的訪問權限。
3. 修改組對文件或目錄的權限:
setfacl g:gid:access 文件/目錄路徑,用法與給用戶賦權一致,故不再贅述。
4. 移動/復制文件或目錄時需要注意的點:
移動文件/目錄時,默認連帶ACL權限一起移動。
復制文件時,默認不保留權限;需要加使用cp -p命令,才保留權限。
5. 掛載時需要注意的點:
如原來的文件系統不支持ACL權限,我們可以將其重新掛載。
mount -o remount, acl 掛載點