Linux的詳細許可權規劃 ACL使用

2021-09-25 02:27:23 字數 3664 閱讀 1714

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...