Linux 下 setfacl訪問控制的使用

2021-08-22 16:12:21 字數 1937 閱讀 1571

setfacl -m u:bill:x /bin/bash 給於使用者 bill 有執行的許可權

setfacl -m u:bill:--- /bin/bash 給於使用者 bill 沒有執行的許可權

setfacl -b /bin/bash  清楚所有的acl規則

-b,--remove-all:刪除所有擴充套件的acl規則,基本的acl規則(所有者,群組,其他)將被保留。

-k,--remove-default:刪除預設的acl規則。如果沒有預設規則,將不提示。

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

--mask:重新計算有效許可權,即使acl mask被明確指定。

-d,--default:目錄設定預設的acl規則。

--restore=file:從檔案恢復備份的acl規則(這些檔案可由getfacl -r產生)。通過這種機制可以恢復整個目錄樹的acl規則。此引數不能和除--test以外的任何引數一同執行。

--test:測試模式,不會改變任何檔案的acl規則,操作後的acl規格將被列出。

-r,--recursive:遞迴的對所有檔案及目錄進行操作。

--version:輸出setfacl的版本號並退出。

--help:輸出幫助資訊。

--:標識命令列引數結束,其後的所有引數都將被認為是檔名

-:如果檔名是-,則setfacl將從標準輸入讀取檔名。

讓我們來據個例子說明一下,下面我們就用getfacl命令來檢視乙個定義好了的acl檔案:

[root@localhost ~]# getfacl ./test.txt

# file: test.txt

# owner: root

# group: admin

user::rw-

user:john:rw-

group::rw-

group:dev:r--

mask::rw- other::r--

前面三個以#開頭的定義了檔名,file owner和group。這些資訊沒有太大的作用,接下來我們可以用--omit-header來省略掉。

user::rw-       定義了acl_user_obj, 說明file owner擁有read and write permission

user:john:rw- 定義了acl_user,這樣使用者john就擁有了對檔案的讀寫許可權,實現了我們一開始要達到的目的

group::rw- 定義了acl_group_obj,說明檔案的group擁有read and write permission

group:dev:r-- 定義了acl_group,使得dev組擁有了對檔案的read permission

mask::rw- 定義了acl_mask的許可權為read and write

other::r-- 定義了acl_other的許可權為read

需要注意的幾點一、

[root@localhost ~]#setfacl -m u:maihao:--- /data/

setfacl: /data/: operation not supported  ###說明這個掛載的硬碟不支援acl,需要更改掛載屬性

[root@localhost ~]# cat /etc/fstab

/dev/vdb1 /data ext3 defaults,acl 0 0  ##紅色為修改內容

修改之後需要重新mount你的file system:

二、

如果用chmod命令改變linux file permission的時候相應的acl值也會改變,反之改變acl的值,相應的file permission也會改變。

Linux中通過setfacl實現目錄下建立檔案

在linux 系統中,可以通過setfacl 來實現目錄下建立檔案或子目錄,並繼承父目錄的許可權。下面以 root 用普通使用者 user1 在目錄 mnt下 root redhat 7 mnt setfacl m u user1 rwx share 為目錄新增ower user1 並賦予rwx 的...

linux下遠端訪問Mysql

mysql的root賬戶,我在連線時通常用的是localhost或127.0.0.1,公司的測試伺服器上的mysql也是localhost所以我想訪問無法訪問,測試暫停.解決方法如下 1,修改表,登入mysql資料庫,切換到mysql資料庫,使用sql語句檢視 select host,user fr...

Linux下訪問Windows共享

介紹一下環境 1 windows和linux共處於同乙個區域網中,互通,都未設定防火牆,4 windows上當前有如下共享 abc everyone具有讀取許可權 5 windows上的使用者有aaaaa 管理員組使用者帳號 g 管理員組使用者帳號 guest 當前未啟用 沒有root帳號 6 li...