【個人Linux,我作主!】ACL訪問控制列表

目錄:
(一)使用ACL爲用戶受權
(二)設置mask權限
(三)設置默認權限(只能對目錄設置)ide


(一)使用ACL爲用戶受權
(1.1)若是如今咱們有一個需求,在系統中有一個文件file,咱們須要設置tom對file文件的權限爲「r--」,設置bob用戶對file文件的權限爲「rw-」,設置mary用戶對file文件的權限爲「---」,設置jerry用戶對file文件的權限爲「r-x」。此時咱們使用常規的屬組屬主的權限設置是沒有辦法知足要求的,若是要求對具體的某個用戶或者組來設置acl權限,你們要考慮到使用acl
(1.2)如今咱們進入到/opt/目錄下,而後將/etc/hosts文件拷貝到當前目錄中,此時咱們發現hosts文件的other用戶的權限是可讀(圖1-1),因此咱們以tom用戶的身份去修改hosts文件的時候,發現沒法修改爲功(圖1-2和圖1-3)。
# cp /etc/hosts .
# getfacl hosts
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(1.3)若是此時咱們但願tom用戶可以對hosts文件進行修改,則咱們應該使用setfacl命令進行設置。咱們設置針對hosts文件給tom用戶設置rwx的權限,咱們發現tom用戶已經有了一個在hosts文件的acl權限(圖1-4),此時咱們使用tom用戶即可以正常的在hosts文件中添加信息了(圖1-5)。
# setfacl -m u:tom:rwx hosts---針對hosts文件給tom用戶設置rwx的權限
# getfacl hosts---查詢當前hosts文件的權限
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(1.4)若是咱們但願取消給tom用戶設置的acl權限,則可使用setfacl -x命令操做,此時咱們發現系統中已經沒有針對tom用戶設置的acl權限了(如圖1-6)。
# setfacl -x u:tom hosts---取消給tom用戶設置的acl權限
【個人Linux,我作主!】ACL訪問控制列表操作系統


(二)設置mask權限
(2.1)咱們先給tom用戶和jerry用戶都設置acl權限(圖2-1),如今咱們在公司中有某個文件或者某個目錄,對不少個用戶都設置了acl訪問控制的權限,可是如今須要對文件或目錄進行維護,此時咱們需求是不容許任何人再寫這個文件了,等文件維護完畢後而後再開放文件權限給對應的用戶使用,此時咱們可使用mask權限,至關於一層遮罩碼將當前用戶的權限蓋住,而後進行維護操做,咱們可使用setfacl -m命令操做(圖2-2),此時咱們發現以前給tom用戶和jerry用戶設置的acl權限都被新的遮罩碼「r--」蓋住了,咱們使用「# setfacl -m m::r-- hosts」進行遮罩碼的操做後,發現此時以tom用戶編輯hosts文件的時候是沒法修改爲功的(圖2-3)。
# setfacl -m u:tom:rwx hosts---設置tom用戶的acl權限
# setfacl -m u:jerry:rwx hosts---設置jerry用戶的acl權限
# setfacl -m m::r-- hosts---給hosts文件設置一個mask遮罩碼
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(2.2)若是咱們想將這個遮罩碼去除,此時咱們只須要對其中的一個用戶從新設置acl權限後,即可以使得全部用戶原先的acl權限都生效了。
# setfacl -m u:tom:rwx hosts---設置tom用戶的acl值
# getfacl hosts---查詢hosts文件的acl狀態
【個人Linux,我作主!】ACL訪問控制列表
(2.3)如今咱們設置hosts文件的mask值爲不可讀、不可寫、不可執行,此時咱們發現雖然此時hosts文件的mask權限爲「---」,可是因爲hosts文件的other權限中是有可讀的權限的,因此此時tom用戶會以other的身份讀取hosts文件,是可以正常的讀取hosys文件的,只有咱們將other的可讀權限也去除,此時tom用戶纔沒法讀取文件。
注意:咱們總結的內容爲,若是mask的權限設置爲「---」,則other的權限生效;若是mask的權限設置爲非「---」,則mask權限生效
# setfacl -m m::--- hosts---設置hosts文件的mask值爲不可讀、不可寫、不可執行
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(2.4)如今咱們從新設置一個tom用戶和jerry用戶的權限都爲r-x,而後設置mask的值爲rwx(圖2-7),此時咱們使用tom用戶去嘗試寫入hosts文件時,發現仍然是沒法寫入的(圖2-8)。咱們的總結爲,若是你給用戶設置的爲r-x,沒有設置w這個權限,此時若是想在mask裏給它設置了這個w的權限,也是仍然沒法使得文件可寫的權限生效的。若是咱們對other的權限添加了w的權限,此時tom和jerry用戶仍然是沒法擁有hosts文件的可寫權限的,即說明了setacl設置的權限的優先級高於other裏設置的權限。
# setfacl -m u:tom:r-x hosts---設置tom用戶的acl爲r-x
# setfacl -m u:jerry:r-x hosts---設置jerry用戶的acl爲r-x
# setfacl -m m::rwx hosts---設置hosts文件的mask值爲rwx
# getfacl hosts---查詢hosts文件的acl狀態
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(2.5)若是如今咱們想對用戶組設置acl權限,例如咱們設置了tom組擁有可讀、可寫、可執行的權限,而後咱們想讓沒有權限的bob用戶擁有tom組的權限,此時咱們的作法是將bob用戶加入到tom組中,而後將bob用戶退出登陸後再從新登陸bob用戶,此時bob用戶便擁有了tom組的權限。
# setfacl -m g:tom:rwx file---對tom組設置acl權限blog


(三)設置默認權限(只能對目錄設置)
(3.1)咱們首先在vms002主機的/opt/目錄下建立一個rh134的目錄。
# mkdir rh134---建立一個rh134的目錄
# getfacl rh134/---獲取所建立的目錄的權限
【個人Linux,我作主!】ACL訪問控制列表
(3.2)而後咱們設置針對rh134目錄下,不論是誰在rh134目錄裏建立的新的文件或者目錄,對tom都具備rwx權限,可是並不包括rh134自己。接着咱們在rh134目錄下建立一個root1的文件,此時咱們發現建立的root1文件的權限繼承了tom用戶rwx的權限,可是因爲操做系統規定建立的文件最高權限爲644,因此文件的默認權限爲rw-,因此在建立文件的時候,無論用什麼方法,都沒有辦法建立出來默認含有x權限的文件。
# setfacl -m d:u:tom:rwx rh134/---設置不論是誰在rh134目錄裏建立的新的文件或者目錄,對tom都具備rwx權限,可是並不包括rh134自己
# touch rh134/root1---在rh134目錄下建立一個root1的文件
# getfacl rh134/root1---查詢root1目錄的acl權限
【個人Linux,我作主!】ACL訪問控制列表
(3.3)接着咱們嘗試使用jerry用戶建立文件,咱們首先將jerry用戶設置acl爲對目錄rh134有rwx權限(圖3-3),而後咱們建立了一個jerry1文件,此時咱們建立的jerry1文件繼承了tom用戶的rwx權限,同時爲了符合系統默認建立文件的要求,所以最終jerry1文件的權限爲rw-(圖3-4)
# setfacl -m u:jerry:rwx rh134/---設置jerry用戶擁有對目錄rh134可讀、可寫、可執行的權限
# getfacl rh134/---獲取目錄rh134的權限信息
# touch rh134/jerry1
# getfacl rh134/jerry1
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表
(3.4)咱們再使用jerry用戶在/opt/目錄下建立一個jerry2的目錄,此時咱們發現建立的目錄也仍然繼承了默認的tom用戶執行時所擁有的rwx權限。
# mkdir rh134/jerry2---建立一個目錄jerry2
# getfacl rh134/jerry2
【個人Linux,我作主!】ACL訪問控制列表
(3.5)此時雖然tom用戶對rh134目錄中新增長的文件具備權限,可是tom用戶自己是沒法在rh134目錄中建立文件的,由於咱們並無針對rh134目錄爲tom用戶設置acl權限。
【個人Linux,我作主!】ACL訪問控制列表
(3.6)若是咱們但願將針對tom用戶的默認權限取消,咱們可使用「# setfacl -x d:u:tom rh134/」命令,咱們發現以前建立的文件仍然具備tom用戶可讀、可寫的權限不會收回去的(圖3-7),可是若是咱們新建立的文件,則不會再繼承tom用戶能夠執行的相關權限了(圖3-8)。
# setfacl -x d:u:tom rh134/---取消針對134目錄下的文件繼承tom用戶擁有相關權限的默認設置
# getfacl rh134/jerry1---獲取rh134目錄中以前建立的文件的acl權限
# mkdir rh134/root2
# getfacl rh134/root2
【個人Linux,我作主!】ACL訪問控制列表
【個人Linux,我作主!】ACL訪問控制列表繼承

—————— 本文至此結束,感謝閱讀 ——————get

相關文章
相關標籤/搜索