linux之ACL許可權學習筆記

2021-06-28 20:40:23 字數 2756 閱讀 3814

在linux中我們接觸到的常見的許可權有三種身份(owner,group,others)搭配三種許可權(r,w,x,分別可用數字4 2 1表示)。

現在描述乙個場景:

講授linux的jack老師建立了乙個資料夾 directory, hanson和bill屬於助教組,jack和助教組一起向資料夾directory裡新增、刪除資料。資料夾的所屬主jack(owner)、助教組(group)需要擁有許可權rwx,其他人(others)對directory則沒有任何許可權,整個資料夾的許可權設為770。可現在來了乙個其他班的老師tom,他想檢視directory裡有什麼好資料,好和他的學生分享,tom對directory的許可權只能是r-x,他只擁有進入(x)、檢視(r)檔案的許可權。

jack的學生們也開始思索了:

皮皮:把tom老師放到助教組肯定不行的,這樣他會有刪除directory中的檔案的權利?

鋼絲:現在我新建乙個組,將許可權設為r-x,讓directory屬於這個組,然後把tom加入這個組。可這樣不是和助教組衝突了嗎,linux中的檔案的所屬組只能有乙個!

豬兒:把其他人(others)的許可權改為r-x(5).這樣tom不就可以只能檢視、不能刪除檔案了嗎?可是這樣的話,所有的人都可以檢視這個檔案了,寶貴的資料落入惡毒的黑客分子怎麼辦?

阿傻:可不可以將資料夾的所屬使用者改為tom,許可權設為r-x……

阿傻話還沒說完,就被旁邊的大胖當頭就一下,「你傻啊,所屬使用者改為了tom,那我們的老師jack怎麼辦?這樣整個資料夾的許可權就是570,你有見過owner的許可權還比group許可權小嗎?」

……同學們思也不得其解。

那現在acl(access control list)來了,它就是來解決這個問題的。

檢視分割槽acl許可權是否開啟, dumpe2fs 命令是查詢指定分割槽詳細檔案系統資訊的命令,-h 引數表示僅顯示超級塊中資訊,而不是顯示磁碟塊組的詳細資訊。

df -h 檢視分割槽情況

dumpe2fs -h /dev/sda12           

如圖:

臨時開啟分割槽acl許可權:

mount -o remount,acl /   重新掛載根分割槽,並掛載加入acl許可權

若要永久修改,則可以修改/etc/fstab這個檔案,他是系統開機自動掛載的檔案,使用命令mount -o remount重新掛載檔案系統或是重啟系統,使修改失效。

根據上面的情景在我的ubuntu裡模擬上面的情況:

建立使用者和組:

修改directory資料夾所屬主和許可權:

getfacle 檔名   檢視acl許可權

設定acl許可權的命令

setfacl [選項] 檔名

選項:-m  設定acl許可權

-x  刪除指定的acl許可權

-b  刪除所有的acl許可權

-d  設定預設的acl許可權

-k  刪除預設的acl許可權

-r  遞迴設定acl許可權

1、給使用者設定acl許可權

setfacl -m u:jack:rx directory

2、給組分配acl許可權

setfacl -m g:testgroup:rx directory

3、遞迴acl許可權:

setfacl -m u:使用者名稱:許可權 -r 目錄名(遞迴是父目錄在設定acl許可權時,所有的子檔案和目錄也會擁有相同的    acl許可權)

4、預設acl許可權:

預設acl許可權的作用是如果給父目錄設定了預設acl許可權,那麼父目錄中所有新建的子檔案都會繼承父目錄的acl許可權。

setfacl -m d:u:使用者名稱:許可權 -r(可選) 目錄名

5、刪除acl許可權:

setfacl -x u:使用者名稱 檔名   刪除指定使用者的acl許可權

setfacl -x g:組名 檔名     刪除指定使用者組的acl許可權

setfacl -b 檔名 刪除所有的acl許可權

通過acl,賦予tom老師r-x許可權:

看到上面的mask::rwx沒有,mask是用來指定最大有效許可權的。如果我給使用者賦予了acl許可權,是需要和mask許可權「相與」才能得到使用者的真正許可權,如圖:

設定最大有效許可權:setfacl -m m:rx /directory,看的演示:

修改後的最大有效許可權是mask::r-x,注意#effective:r-x,表示現在director所屬組的實際許可權不是rwx了,而是r-x,它是和mask::r-x

中的r-x,rwx和r-x相與之後的結果r-x。檔案的屬主的許可權不依賴於mask,但組(group)和tom使用者的許可權是和mask表示的許可權相與之後的結果,這就是所謂的最大有效許可權。

Linux學習 ACL許可權

acl許可權是為了防止許可權不夠用的情況,一般的許可權有所有者 所屬組 其他人這三種,當這三種滿足不了我們的需求的時候就可以使用acl許可權 dumpe2fs命令是查詢指定分割槽詳細檔案系統資訊的命令 此時顯示預設的掛載設定為acl mount o remount,acl 重新掛載根分割槽,並掛載加...

Linux學習之ACL許可權詳解 十

目錄 acl許可權簡介與開啟 檢視與設定acl許可權 最大有效許可權與刪除acl許可權 預設acl許可權和遞迴acl許可權 使用者許可權管理始終是linux系統管理中最重要的環節。大家對linux unix的ugo許可權管理方式一定不陌生,還有最常用的chmod命令。為了實現一些比較複雜的許可權管理...

Linux許可權管理之設定ACL許可權

ps 乙個使用者既不屬於檔案的所有者u,所屬組人員g也不屬於其他人o,那麼他想訪問伺服器裡面的檔案則需要給他設定acl許可權,這樣他才有訪問該檔案的許可權。檢視當前系統有哪些分割槽 df h 檢視指定分割槽詳細檔案資訊 dumpe2fs h 分割槽路徑 下面是檢視 根分割槽 的詳細檔案資訊 臨時開啟...