[root@localhost ~]# getfacl 文件名
getfacl 命令的使用非常簡單,且常和 setfacl 命令一起搭配使用。[root@localhost ~]# setfacl 選項 文件名
表 1 羅列出了該命令可以使用的所用選項及功能。| 選項 | 功能 |
|---|---|
| -m 參數(shù) | 設(shè)定 ACL 權(quán)限。如果是給予用戶 ACL 權(quán)限,參數(shù)則使用 "u:用戶名:權(quán)限" 的格式,例如 setfacl -m u:st:rx /project 表示設(shè)定 st 用戶對 project 目錄具有 rx 權(quán)限;如果是給予組 ACL 權(quán)限,參數(shù)則使用 "g:組名:權(quán)限" 格式,例如 setfacl -m g:tgroup:rx /project 表示設(shè)定群組 tgroup 對 project 目錄具有 rx 權(quán)限。 |
| -x 參數(shù) | 刪除指定用戶(參數(shù)使用 u:用戶名)或群組(參數(shù)使用 g:群組名)的 ACL 權(quán)限,例如 setfacl -x u:st /project 表示刪除 st 用戶對 project 目錄的 ACL 權(quán)限。 |
| -b | 刪除所有的 ACL 權(quán)限,例如 setfacl -b /project 表示刪除有關(guān) project 目錄的所有 ACL 權(quán)限。 |
| -d | 設(shè)定默認(rèn) ACL 權(quán)限,命令格式為 "setfacl -m d:u:用戶名:權(quán)限 文件名"(如果是群組,則使用 d:g:群組名:權(quán)限),只對目錄生效,指目錄中新建立的文件擁有此默認(rèn)權(quán)限,例如 setfacl -m d:u:st:rx /project 表示 st 用戶對 project 目錄中新建立的文件擁有 rx 權(quán)限。 |
| -R | 遞歸設(shè)定 ACL 權(quán)限,指設(shè)定的 ACL 權(quán)限會對目錄下的所有子文件生效,命令格式為 "setfacl -m u:用戶名:權(quán)限 -R 文件名"(群組使用 g:群組名:權(quán)限),例如 setfacl -m u:st:rx -R /project 表示 st 用戶對已存在于 project 目錄中的子文件和子目錄擁有 rx 權(quán)限。 |
| -k | 刪除默認(rèn) ACL 權(quán)限。 |
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
[root@localhost ~]# useradd st
[root@localhost ~]# groupadd tgroup <-- 添加需要試驗的用戶和用戶組,省略設(shè)定密碼的過程
[root@localhost ~]# mkdir /project <-- 建立需要分配權(quán)限的目錄
[root@localhost ~]# chown root:tgroup /project <-- 改變/project目錄的所有者和所屬組
[root@localhost ~]# chmod 770 /project <-- 指定/project目錄的權(quán)限
[root@localhost ~]# ll -d /project
drwxrwx---. 2 root tgroup 4096 Apr 16 12:55 /project
#這時st學(xué)員來試聽了,如何給她分配權(quán)限
[root@localhost ~]# setfacl -m u:st:rx /project
#給用戶st賦予r-x權(quán)限,使用"u:用戶名:權(quán)限" 格式
[root@localhost /]# cd /
[root@localhost /]# ll -d /project
drwxrwx---+ 2 root tgroup 4096 Apr 16 12:55 /project
#如果查詢時會發(fā)現(xiàn),在權(quán)限位后面多了一個"+",表示此目錄擁有ACL權(quán)限
[root@localhost /]# getfacl project
#查看/prpject目錄的ACL權(quán)限
#file:project <--文件名
#owner:root <--文件的所有者
#group:tgroup <--文件的所屬組
user::rwx <--用戶名欄是空的,說明是所有者的權(quán)限
user:st:r-x <--用戶st的權(quán)限
group::rwx <--組名欄是空的,說明是所屬組的權(quán)限
mask::rwx <--mask權(quán)限
other::--- <--其他人的權(quán)限
[root@localhost /]# groupadd tgroup2
#添加新群組
[root@localhost /]# setfacl -m g:tgroup2:rwx project
#為組tgroup2紛配ACL權(quán)限
[root@localhost /]# ll -d project
drwxrwx---+ 2 root tgroup 4096 1月19 04:21 project
#屬組并沒有更改
[root@localhost /]# getfacl project
#file: project
#owner: root
#group: tgroup
user::rwx
user:st:r-x
group::rwx
group:tgroup2:rwx <-用戶組tgroup2擁有了rwx權(quán)限
mask::rwx
other::---
[root@localhost /]# cd project
[root@localhost project]# touch abc
[root@localhost project]# mkdir d1
#在/project目錄中新建了abc文件和d1目錄
[root@localhost project]#ll
總用量4
-rw-r--r-- 1 root root 01月19 05:20 abc
drwxr-xr-x 2 root root 4096 1月19 05:20 d1
[root@localhost /]# setfacl -m d:u:st:rx project
[root@localhost project]# getfacl project
# file: project
# owner: root
# group: tgroup
user:: rwx
user:st:r-x
group::rwx
group:tgroup2:rwx
mask::rwx
other::---
default:user::rwx <--多出了default字段
default:user:st:r-x
default:group::rwx
default:mask::rwx
default:other::---
[root@localhost /]# cd project
[root@localhost project]# touch bcd
[root@localhost project]# mkdir d2
#新建子文件和子目錄
[root@localhost project]# ll 總用量8
-rw-r--r-- 1 root root 01月19 05:20 abc
-rw-rw----+ 1 root root 01月19 05:33 bcd
drwxr-xr-x 2 root root 4096 1月19 05:20 d1
drwxrwx---+ 2 root root 4096 1月19 05:33 d2
#新建的bcd和d2已經(jīng)繼承了父目錄的ACL權(quán)限
[root@localhost /]# setfacl -k project
通過此命令,即可刪除 project 目錄的默認(rèn) ACL 權(quán)限,讀者可自行通過 getfacl 命令查看。[root@localhost project]# setfacl -m u:st:rx -R project
[root@localhost project]# ll
總用量 8
-rw-r-xr--+ 1 root root 01月19 05:20 abc
-rw-rwx--+ 1 root root 01月19 05:33 bcd
drwxr-xr-x+ 2 root root 4096 1月19 05:20 d1
drwxrwx---+ 2 root root 4096 1月19 05:33 d2
#abc和d1也擁有了ACL權(quán)限
setfacl -x 命令,可以刪除指定的 ACL 權(quán)限,例如,刪除前面建立的 st 用戶對 project 目錄的 ACL 權(quán)限,執(zhí)行命令如下:[root@localhost /]# setfacl -x u:st project
#刪除指定用戶和用戶組的ACL權(quán)限
[root@localhost /]# getfacl project
# file:project
# owner: root
# group: tgroup
user::rwx
group::rwx
group:tgroup2:rwx
mask::rwx
other::---
#st用戶的權(quán)限已被刪除
[root@localhost /]# setfacl -b project
#會刪除文件的所有ACL權(quán)限
[root@localhost /]# getfacl project
#file: project
#owner: root
# group: tgroup
user::rwx
group::rwx
other::---
#所有ACL權(quán)限已被刪除
新聞熱點
疑難解答
圖片精選