1、acl為訪問控制列表,主要目的是提供傳統的屬主、所屬群組、其他人的讀、寫、執行許可權之外的詳細許可權設定。可以針對單一使用者、單一檔案或目錄來進行r、w、x的許可權設定。
2、dmesg | grep -i acl 可以查詢本機是否支援acl的功能。
3、getfacl:獲取某個檔案/目錄的acl設定選項,setfacl:設定某個目錄/檔案的acl規範
4、setfacl命令用法介紹:
用法: setfacl [-bkdr] file ...
-m, --modify-acl 更改檔案的訪問控制列表
-m, --modify-file=file 從檔案讀取訪問控制列表條目更改
-x, --remove=acl 根據檔案中訪問控制列表移除條目
-x, --remove-file=file 從檔案讀取訪問控制列表條目並刪除
-b, --remove-all 刪除所有擴充套件訪問控制列表條目
-k, --remove-default 移除預設訪問控制列表
-d, --default 應用到預設訪問控制列表的操作
-r, --recursive 遞迴操作子目錄
5、案例要求:有兩個使用者v1,和v2,現在需要v1也能訪問v2的家目錄,但是不具有修改的許可權。
#首先進入v1使用者,發現v2的家目錄確實無法訪問
[root@master ~]# su - v1
last login: mon jul 8 17:57:04 cst 2019 on pts/0
[v1@master ~]$ cd /home/v2
-bash: cd: /home/v2: permission denied
[v1@master ~]$ exit
logout
#切換回root使用者,通過setfacl設定v1許可權為rx,目錄為v2的家目錄
[root@master ~]# setfacl -m u:v1:rx /home/v2
[root@master ~]# getfacl /home/v2
getfacl: removing leading '/' from absolute path names
# file: home/v2
# owner: v2
# group: v2
user::rwx
user:v1:r-x
group::---
mask::r-x
other::---
#切換回v1使用者
[root@master ~]# su - v1
last login: mon jul 8 18:42:21 cst 2019 on pts/0
[v1@master ~]$ cd /home/v2
#發現可以訪問
[v1@master v2]$ ll -a
total 12
drwxr-x---+ 2 v2 v2 62 jul 8 16:31 .
drwxr-xr-x. 7 root root 70 jul 8 16:31 ..
-rw-r--r--. 1 v2 v2 18 oct 31 2018 .bash_logout
-rw-r--r--. 1 v2 v2 193 oct 31 2018 .bash_profile
-rw-r--r--. 1 v2 v2 231 oct 31 2018 .bashrc
#但是無法建立檔案
[v1@master v2]$ touch test
touch: cannot touch 『test』: permission denied
5、setfacl可以對賬號、使用者組名、有效許可權設定進行配置
賬號:setfacl -m u:v1_user:rx /home/v2
使用者組名:setfacl -m g:v1_group:rx /home/v2
有效許可權:setfacl -m m:rx /home/v2
(使用者或使用者組所設定的許可權必須要存在於mask的許可權設定範圍內才會生效)
6、使用預設許可權設定目錄未來檔案的acl許可權繼承【d:[u|g]:[user|group]:許可權】
例如:讓v1在/home/v2下面一支具有rx的預設許可權
#建立乙個檔案/資料夾,發現許可權後面沒有+,代表這個acl屬性並沒有繼承。
[root@master v2]# touch a.txt
[root@master v2]# mkdir b
[root@master v2]# ll
total 0
-rw-r--r--. 1 root root 0 jul 8 19:27 a.txt
drwxr-xr-x. 2 root root 6 jul 8 19:27 b
#讓v1在/home/v2下面一直有rx預設許可權
[root@master v2]# setfacl -m d:u:v1:rx /home/v2
[root@master v2]# touch b.txt
[root@master v2]# mkdir a
#查詢檔案,有了+
[root@master v2]# ll
total 0
drwxr-x---+ 2 root root 6 jul 8 19:29 a
-rw-r--r--. 1 root root 0 jul 8 19:27 a.txt
drwxr-xr-x. 2 root root 6 jul 8 19:27 b
-rw-r-----+ 1 root root 0 jul 8 19:28 b.txt
#y用getfacl再次檢視
[root@master v2]# getfacl /home/v2
getfacl: removing leading '/' from absolute path names
# file: home/v2
# owner: v2
# group: v2
user::rwx
user:v1:r-x
group::---
mask::r-x
other::---
default:user::rwx
default:user:v1:r-x
default:group::---
default:mask::r-x
default:other::---
7、讓acl的屬性全部消失的命名【setfacl -b 檔名】
8、單一設定值的取消,需要通過-x
setfacl -x u:v1 /home/v2
setfacl -x d:u:v1 /home/v2
(針對取消某個賬號的acl時,不需要加上許可權列表) Linux檔案的ACL許可權
工具centos7.3,centos6.9 在設定檔案或者目錄的許可權時,有時候需要設定除了所屬人,所屬組和其他人之外的許可權,這時候就用到了acl access control list 許可權。比方說在乙個專案的開發過程中,有兩個組參與,並且需要除了這兩個組的多個人參加,當然其他人不能訪問這個目...
linux基本許可權ACL
ugo甚至基本許可權 只能乙個使用者,乙個組和其他人 acl設定基本許可權 r,w,x acl基本用法 設定 root w hat touch home test.txt root w hat ll home test.txt root w hat getfacl home test.txt roo...
Linux 許可權管理 ACL
用於解決使用者對檔案授權身份不足的問題。root localhost dumpe2fs h dev sda2 分割槽 如果沒有找到則需要重新掛載 root localhost mount o remount acl 臨時生效 root localhost vim etc fstab uuid 2fa...