linux acl

某些系統帳號但願對某一些文件有管理權限,有三種方法:linux

            1 加入屬主所在的同一個組中,這等於擴大了訪問其餘文件的權限了。ide

            2 加入other中,這樣權限放開的更大了。測試

            3 給文件的sudo權限。spa

            4 採用acl策略。rest

      前三種方法都有本身的缺點,最終考慮使用acl。blog

      所謂ACL,就是Access Control List,一個文件/目錄的訪問控制列表,能夠針對任意指定的用戶/組分配RWX權限。此功能遞歸

須要內核的支持,在linux 2.6之後默認加入內核中。ip

            acl由一系列的訪問控制權限組成,主要的有以下:ci

            ACL_USER_OBJ: 至關於Linux裏file_owner的權限rem

            ACL_USER: 定義了額外的用戶能夠對此文件擁有的權限

            ACL_GROUP_OBJ: 至關於Linux裏group的權限

            ACL_GROUP: 定義了額外的組能夠對此文件擁有的權限

            ACL_MASK: 定義了ACL_USER, ACL_GROUP_OBJ和ACL_GROUP的最大權限

            ACL_OTHER: 至關於Linux裏other的權限

查看內核版本 uname -a

查看是否安裝acl  dumpe2fs |grep "Default mount iptions"

wKiom1NnkUajH_JuAABZn_RTl2Q408.jpg

在設置acl規則前咱們先了解一下設置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


        遞歸的對全部文件及目錄進行操做。


        -P,--physical


       跳過全部符號連接,包括符號連接文件。

       

        -m -x -M -X


        -m -x 是在設置acl所須要定義的選項,-m 表示設置acl ,-x 表示刪除acl規則


        -M -X 則能夠在文件中讀入acl規則,使相應的規則生效




        用cp來複制文件的時候咱們如今能夠加上-p選項.這樣在拷貝文件的時候也將拷貝文件的ACL屬性.對於不能拷貝的ACL屬性將給出警告


        mv命令將會默認地移動文件的ACL屬性. 一樣若是操做不容許的狀況下會給出警告


      開始設置規則:

以root 用戶創建一個文件a.txt,設置權限只有root可讀

經過acl,給niu用戶增長可讀權限

設置acl以前:

wKiom1Nnk6iiUnQCAABlsjdKVu4377.jpg

設置acl:此時 ls -l 後面會多出個 + 號

wKiom1NnlHehbNBJAABkdtAzSKA901.jpg

設置acl以後:niu 用戶能夠讀取a.txt的內容

wKioL1NnlKjjPpoAAACk64kRsmc898.jpg

在acl的mask不存在的狀況下,權限位的第二組才表示組的權限,若是acl中存在mask,則第二組權限位表明mask值,mask規定了ACL_USER, ACL_GROUP和ACL_GROUP_OBJ的最大值,在設置的權限相沖突的狀況下以設置的mask爲主

例如: 設置acl 用戶niu 對a.txt 有rw權限,設置mask 位r 。結果應該是用戶牛對a.txt只有讀權限

wKioL1NnmOuzOfZfAACkbZq3ePY315.jpg

驗證:只可讀不可寫

wKioL1NnmUnhbxy1AABTU_CCDmw615.jpg

把mask改成rw,結果應該是用戶niu 具備讀寫權限

wKiom1NnmhmwvMU_AADcPNTyxac268.jpg

刪除acl,也能夠從文件中恢復文件原有的acl規則,以下:先保存規則到一個文件中

wKioL1Nnm3XDO93lAAD0SK1PdfA926.jpg

恢復acl

wKioL1NnnAGB9E_5AAB3IAdyn0s488.jpg

相關文章
相關標籤/搜索