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 檔名稱 ...