ACL的許可權分配

2021-08-28 10:47:02 字數 3278 閱讀 6040

acl是什麼呢?

acl(access control list),訪問控制列表。

用乙個例子來說明它有什麼用:

假設我有乙個專案資料夾,我和我的開發團隊kr對該目錄均具備rwx的許可權,因為我該資料夾下有原始碼等,所以不能對外開放,對其他使用者的許可權為0,即我的資料夾目錄為drwxrwx---;

但是有一天,我的乙個很好的朋友poty想要看一下我的專案,然而我不好意思拒絕,這個時候通常有三種選擇:

讓其成為所有者(這個你們想想也不可能嘛)

讓其成為專案組成員(因為她並沒有參與專案,不好讓她加進來的,萬一不小心刪掉了部分**怎麼辦)

給其它人賦以 r-w 的許可權(但是other使用者太多了,萬一我**沒發布就被競爭對手給copy了呢?) 

這個時候,以上三種方法都不靠譜。。。

然後,acl的作用就來了,它可以針對單一使用者、單一檔案或目錄來進行r、w、x的許可權設定,對於需要特殊許可權的使用狀況非常有幫助。

所以這個時候我們就可以給poty開個小灶,單獨為她賦予一些許可權。

acl檔案許可權設定

acl最常用的有一下兩個命令:

getfacl: 獲取檔案或目錄的acl設定資訊

usage: getfacl [-aceesrlptpndvh] file ...

-a, --access 顯示檔案或目錄的訪問控制列表

-d, --default 顯示檔案或目錄預設的訪問控制列表

-c, --omit-header 不顯示預設的訪問控制列表

-r, --recursive 遞迴到子目錄

setfacl: 設定檔案或目錄的acl設定資訊

-m, --modify=acl:修改檔案或目錄的擴充套件acl設定資訊

-x, --remove=acl:從檔案或目錄刪除乙個擴充套件的acl設定資訊

-b, --remove-all:刪除所有的擴充套件的acl設定資訊

-k, --remove-default:刪除預設的acl設定資訊

-n, --no-mask:不要重新計算有效許可權。setfacl缺省會重新計算acl mask,除非mask被明確的制定

-d, --default:設定預設的acl設定資訊(只對目錄有效)

-r, --recursive:操作遞迴到所有子目錄和 檔案

接下來進行實際操作演示:

首先先建立乙個 project 目錄:

root@kali:~# mkdir -m 770 project

root@kali:~# ls -ll

total 44

drwxr-xr-x 9 root root 4096 aug 23 13:18 gems

drwxrwx--- 2 root root 4096 sep 26 09:29 project

這個檔案屬於使用者root,屬於使用者組root,other是沒有許可權的

接下來建立乙個使用者

root@kali:~# useradd kr

root@kali:~# passwd kr

//檢視kr和我當前使用者屬於哪個使用者組

root@kali:~# groups kr

kr : kr

root@kali:~# groups root

root : root

不是同乙個使用者組,相當於就是說現在 kr 這個用木對於 project 這個目錄是沒有任何許可權的。

root@kali:~# su kr

$ ls

$ cd project/

sh: 2: cd: can't cd to project/

可以看到,不能開啟 project 這個資料夾

然後開始設定acl許可權了

設定前的許可權:

root@kali:~# getfacl project/

# file: project/

# owner: root

# group: root

user::rwx

group::rwx

other::---

然後給kr設定acl許可權:

root@kali:~# setfacl -m u:kr:rx project/

root@kali:~# ls -ll

total 44

drwxr-xr-x 9 root root 4096 aug 23 13:18 gems

drwxrwx---+ 2 root root 4096 sep 26 09:29 project

project許可權後面有乙個 + ,+ 就代表acl許可權

設定後的許可權:

root@kali:~# getfacl project/

# file: project/

# owner: root

# group: root

user::rwx

user:kr:r-x

group::rwx

mask::rwx

other::---

可以看到多增加了幾行

user:kr:r-x

mask::rwx

再次切換到kr使用者

root@kali:~# su kr

$ ls

$ cd project

$ ls

$

可以進入 project 目錄了。

刪除acl許可權:

setfacl -b
root@kali:~# setfacl -b project/

root@kali:~# ls -ll

total 44

drwxr-xr-x 9 root root 4096 aug 23 13:18 gems

drwxrwx--- 2 root root 4096 sep 26 09:29 project

刪除增加的使用者:

root@kali:~# userdel -r kr

許可權管理 ACL許可權

acl許可權簡介 當要給乙個使用者與檔案屬主 屬組 其他人許可權都不相同的時候使用,也就是說,這個使用者對於這個檔案不屬於三種身份的任何一種,是屬於第四種身份,那麼我們就需要使用acl許可權去給他賦予單獨的許可權。檢視分割槽acl許可權是否開啟 dumpe2fs h dev sda3 dumpe2f...

ACL許可權的學習

acl 訪問控制列表,其主要作用是將一些 使用者 加到表中,並對這些使用者的行為進行控制。有個資料夾project是root使用者建立,並且關於這個資料夾有以下許可權 drwxrwx 現在又來了乙個新使用者叫john,root使用者只想讓john對這個資料夾有可讀可執行許可權,但是又不想更改該檔案原...

許可權管理acl

檔案的訪問控制 acl列表 1 acl定義 acl access control 指定特殊使用者對特殊檔案有特殊許可權 drwxrwx 2root root 17jul 1801 39 westos 表示 westos目錄時有許可權列表 getfacl westos file westos 檔名稱 ...