??Linux中setfacl命令的用法介紹
??對自己所自習過的Linux知識點做個學習記錄,以便在自己遺忘之時回顧,
??相信有朋友遇到過如下場景的問題,在Linux中怎樣限制個別用戶對指定檔案或目錄的使用權限呢? 好,我們接下來就來回答該問題,
??首先,查閱setfacl命令:
setfacl
相關命令:chacl,getfacl
setfacl -- 設定檔案訪問控制串列
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m, --modify=acl 更改檔案的訪問控制串列
-M, --modify-file=file 從檔案讀取訪問控制串列條目更改
-x, --remove=acl 根據檔案中訪問控制串列移除條目
-X, --remove-file=file 從檔案讀取訪問控制串列條目并洗掉
-b, --remove-all 洗掉所有擴展訪問控制串列條目
-k, --remove-default 移除默認訪問控制串列
--set=acl 設定替換當前的檔案訪問控制串列
--set-file=file 從檔案中讀取訪問控制串列條目設定
--mask 重新計算有效權限掩碼
-n, --no-mask 不重新計算有效權限掩碼
-d, --default 應用到默認訪問控制串列的操作
-R, --recursive 遞回操作子目錄
-L, --logical 依照系統邏輯,跟隨符號鏈接
-P, --physical 依照自然邏輯,不跟隨符號鏈接
--restore=file 恢復訪問控制串列,和“getfacl -R”作用相反
--test 測驗模式,并不真正修改訪問控制串列屬性
-v, --version 顯示版本并退出
-h, --help 顯示本幫助資訊
??其次,我們需清楚Linux中權限問題:
讀取權限:等于4 用 r 表示
寫入權限:等于2 用 w 表示
執行權限:等于1 用 x 表示
??最后,了解用戶和用戶組的相關內容,
?? 接下來,進行講解和測驗,我測驗環境是Kali Linux,在Kali上除root外有一普通用戶為xyl,
??例如,我在root下任意建立了一sh檔案,并授予其執行權限:

??并通過查看acl權限獲取其檔案資訊:
C:\root> getfacl text.sh
# file: text.sh
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
??由上面的group和other可知,用戶xyl是擁有對text.sh腳本的運行權限的,為了測驗,我們暫且取掉xyl用戶對該腳本檔案的 “x” 運行權限:
?? setfacl 設定檔案訪問控制串列前:

?? 我們不難看出,xyl用戶是擁有text.sh腳本檔案的運行權的,
??修改xyl用戶的ACL訪問權限:
setfacl -m u:xyl:r-- /root/test.sh
# 取消用戶xyl對text.sh腳本檔案的運行權限

??很明顯的看到,xyl用戶執行text.sh檔案時受到了權限限制:

??接下來,讓我玩個刺激的(嘿嘿,手動滑稽中~):

??注意:由于kali vmware tool sharing檔案夾是我Win10和Linux的共享檔案夾,所以,Linux對該檔案夾中的內容是無法操作的,那么,只好復制一下該音視頻檔案,放在Linux的其他目錄下了,
??我們選個影像和音視頻檔案做嘗試,如上圖,用戶xyl是可以正常打開“漢服小姐姐.jpg”和“Take me hand.flac”音視頻檔案的,接下來:
setfacl -m u:xyl:-wx /root/圖片/小姐姐/漢服小姐姐.jpg
# 限制用戶xyl對漢服小姐姐.jpg檔案權限,無法讀取該圖片,
setfacl -m u:xyl:--- /home/xyl/Take\ me\ hand.flac
# 修改Take me hand.flac音視頻檔案對用戶xyl的權限,取掉所有權,

??理之當然,xyl失去了對如上檔案的使用權!
??但很快我們就會發現,這樣僅能對某一位用戶進行權限限制,在實際情況中,對多位用戶限制時,會顯得較麻煩,那么,有無更簡便的方式呢,當然有,我們可以對多位用戶設定用戶組,然后再對其進行限定:
setfacl -m g:wheel:--x /root/圖片/小姐姐/漢服小姐姐.jpg
# 例如,對wheel 用戶組限制,無法查閱該圖片且無法寫入資料,
??最后,我想你已經迫不及待的想知道,如何撤銷對用戶xyl的限制,別著急,相信你已經閱讀完前文中setfacl命令的引數介紹了,沒錯,有兩種方式:
???? 如果你想取消對指定檔案或目錄的所有acl設定權限,采用如下命令:
setfacl -b /root/圖片/小姐姐/漢服小姐姐.jpg
# 取消掉了所有acl權限設定,但這樣的話,所有用戶均會恢復對該檔案的原本權限,
???? 倘若,僅想恢復指定用戶對該檔案的acl權限,而又想保持其他組成員的權限設定,那么,我們可采用如下措施:
setfacl -x u:xyl /root/圖片/小姐姐/漢服小姐姐.jpg
# 僅洗掉了xyl用戶對"漢服小姐姐.jpg "檔案的acl規則,但xyl用戶所在組的其他成員依舊被acl規則限定(xyl在wheel用戶組,前面對該組進行過權限設定,)

??如上圖,這樣用戶xyl就恢復了對這些檔案的原使用權限,
??附錄:
??1. Linux中Wheel用戶組的概念:

??2. 若有對ACL訪問控制權限還不了解的朋友,可以移步: Linux ACL訪問控制權限完全攻略( 點擊該鏈接 ) 來進一步學習和了解,
??參考文獻:Linux使用手冊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282722.html
標籤:其他
下一篇:2021-05-02
