linux中用ACL實現靈活的權限管理

ACL是什么??

ACL英文原意是Access Control List(訪問控制列表).它能夠實現靈活的權限管理,除了文件的所有者,所屬組和其他人,設置相應的權限外,ACL允許你給任何用戶或是用戶組設置任何文件/目錄的訪問權限(注意的是有些不支持數字模式的權限給定)

ACL有什么用??

作為UGO權限管理的補充,aclGUO辦不到或者是難以辦到的功能

        1.可以針對用戶來設置權限

        2.可以針對用戶組來設置權限

        3.子文件/子目錄繼承父目錄的權限

檢查linux是否支持ACL??

acl需要linux內核和文件系統的配合才能工作,目前我們能見到的大多數linux發行版默認是支持的,但最好還是先檢查一下

 圖片1.png

注意:在linuxVfat 文件系統不支持acl

      centos7.0默認創建的xfsext4文件系統上有acl

      centos7.x之前版本,手工創建的ext4文件系統也不支持acl

      功能。需手動增加:

               tune2fs -o acl /dev/sdb1

               mount -o acl /dec/sdb1 /mnt

設置/dev/sda1掛載選項,用Posix Access Control Lists和用戶指定的擴展屬性

 那如何設置acl呢??

  1.   setfacl  -m  u:用戶名:所給權限:文件

 圖片2.png   

   2.  setfacl  -m  u:用戶名:所給的權限:目錄

如果后面是目錄,則只有所給的這個目錄有這個權限,其子目錄里面沒有。

    3.    setfacl  -Rm  g:組名:所給權限X:目錄

R 就會遞歸到子目錄里和文件,用X只給目錄執行權限給文件件怎會沒有

   4.    setfacl  -M file.acl 文件或是目錄

比如,編輯一個acl文件。以后用到這個權限時直接調用就行了 uwang0   gtomrw

大量文件對要求有相同的acl,可寫在文件里這樣統一管理比較方便

   5.    setfacl  -m  du:用戶名:權限 目錄

表示在這個目錄下新建的文件、目錄默認都會有這個acl

   6.    setfacl  -x  u:用戶名:文件|目錄

刪除所創建的acl

   7.    setfacl  -X  file.acl 目錄

默認acl權限給了x,文件也不會繼承x權限

base acl不能刪除

   8.    setfacl  -k  dir 刪除默認acl權限

   9.    setfacl  -b  file清除所有自己設置的acl權限

 圖片3.png

如何限制特殊用戶的最高權限呢??

acl文件上的group權限是mask值(自定義用戶,自定義組,擁有組的最大權限)而非傳統的組權限

mask 只影響除所用者和other的之外的人和組的最大權限

mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限

用戶或組的設置必須在mask權限設定范圍內才會生效

  10.  Setfacl -m mask ::rw 文件名(中間兩個冒號之間沒有空格)

圖片4.png 

  –set選項會把原有的acl項都刪除,用新的替代,需要注意的是一定要包含UGO的設置,不能像-m一樣只是添加acl就可以如

  11.  setfacl –set u::rwuwangrw,g::r,o::–  文件

  12 .  acl 的備份 getfacl -R /tmp/dir >acl.txt

  13.  getfacl 可看到特殊權限

 

原創文章,作者:yywan1314,如若轉載,請注明出處:http://www.www58058.com/27841

(0)
yywan1314yywan1314
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • Centos7下安裝httpd源碼包

    今天小編來跟大家做個練習,就是如何在Centos7下安裝httpd源碼包. 一:下載httpd最新版本的源碼包 [root@localhost ~]# rpm -qa |grep httpd //查詢系統上是否已安裝httpd包 httpd-tools-2.4.6-45.el7.centos.4.x86_64 httpd-2.4.6-45.el7.cento…

    2017-08-19
  • awk詳解

    —————————— 課外練習 只處理用戶ID為奇數的行,并打印用戶名和ID號 [root@localhost ~]# awk -F: '{if($3%2!=0) {print&n…

    Linux干貨 2016-09-25
  • rpm,yum,編譯安裝應用詳解 (Blog 5)

    rpm, yum, 編譯安裝全解

    2017-11-27
  • bash編程初體驗(二)

    bash編程初體驗(二) read if case 概述 在本篇文章中,我們將介紹bash編程中有關if語句的簡單用法,if語句的基本思路是判斷給定的條件是否滿足,即結果是真還是假,從而選擇執行哪種操作。如此,如果條件為真,if會執行一種指令,如果條件為假,if會選擇執行另一種指令,這種執行就是所謂的選擇結構,它能夠改變命令的基本順序流結構,以選擇流的形式運…

    Linux干貨 2016-08-19
  • 中文man安裝手冊

      首先需要確認的是有沒有安裝中文支持,如果沒有請安裝:#yum groupinstall -y "Chinese Support" 現在下載安裝包: wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz  (這個wget是直接網頁下…

    系統運維 2016-01-13
  • 第三周作業

      1. 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u root 2. 取出最后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# who | tail -1 roo…

    Linux干貨 2016-12-26
欧美性久久久久