權限管理與ACL

一、文件屬性

1.文件屬性:

權限管理與ACL文件屬性.PNG

   文件屬性操作

    chown : change owner  ,設置文件所有者

    chgrp : change group  ,設置文件的屬組

   文件屬主修改: chown  

    格式:chown [OPTION]… [OWNER][:[GROUP]] FILE…

    用法:

    OWNER

    OWNER:GROUPNAME    (同時修改屬主、屬組)

    :GROUPNAME                (默認屬主,修改屬組)

    命令中的冒號可用.替換;

    -R: 遞歸    (遞歸設置目錄中的文件、子目錄權限)

    chown [OPTION]… –reference=RFILE FILE…   參照某文件權限設置權限

   文件屬組修改: chgrp

    格式:chgrp [OPTION]… GROUP FILE…

    chgrp [OPTION]

    -R  遞歸 遞歸設置目錄中的文件、子目錄權限)

      

2.文件權限:

權限管理與ACL權限.PNG

   1)權限定義對象:

    文件的權限主要針對三類對象進行定義:

    owner: 屬主,文件擁有者, u

    group: 屬組, 文件擁有組,g

    other: 其他, 除以上兩類人以外的全部用戶,o

    每個文件針對每類訪問者都定義了三種權限:

    r: Readable ,讀取

    w: Writable ,寫

    x: eXcutable,執行

    系統對于權限,是依次將用戶權限與文件、文件夾的所有者、組、其他權限,依次匹配

    注:只針對部分文件系統,fat格式的文件系統不支持權限修改(元數據分區中無此內容)

   2)權限實際意義

     文件權限的實際意義:

    r: 可使用文件查看類工具獲取其內容

    w: 可修改其內容,內容也可以被破壞,但是無法刪除文件

    x: 可以把此文件提請內核啟動為一個進程,針對二進制程序、腳本而言

     目錄權限的實際意義:

    r: 無法進入目錄(cd)可以使用ls查看此目錄中文件列表,但是無法查看文件屬性—

    w: 可在此目錄中創建文件,也可刪除此目錄中的文件(但需要先有X權限)

    +wx : 可以進入目錄,創建、修改、刪除文件、文件內容,但是無法獲取文件列表

    x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此

   3)權限操作    

    權限賦值的八進制數字法:

    ? — 000 0

    ? –x 001 1

    ? -w- 010 2

    ? -wx 011 3

    ? r– 100 4

    ? r-x 101 5

    ? rw- 110 6

    ? rwx 111 7

    ? 例如:

    640: rw-r—–

    rwxr-xr-x: 755

    權限修改:

    命令格式:  chmod [OPTION]… OCTAL-MODE FILE…

    chmod [OPTION]… MODE[,MODE]… FILE…

    -R: 遞歸修改權限  (此操作有風險)

    + X (大寫) 當遞歸+X時,如果目錄內有子目錄,則加執行權限, 如果遇到文件,若文件本身

     無執行權限,則不加,若有則加x權限        

    eg : chomd a=rwX \目錄

    MODE:

    修改一類用戶的所有權限:

    u=     g=     o=     ug=   a= (all,全部用戶)  u=,     g=

    修改一類用戶某位或某些位權限

    u+/-    g+/-   o +/-    a+/-

    八進制賦值

    eg:  chmod  666 file1

    chmod [OPTION]… –reference=RFILE FILE…

    參考RFILE文件的權限,將FILE的修改為同RFILE;

   4)新文件、目錄默認權限  umask值

     umask作用:用于設置創建文件、目錄時的默認權限

     默認權限:

     新建文件默認權限:  666-umask

        (取值為666是處于安全考慮,使新建文件默認下均不含有執行權限)

        如果所得結果某位存在執行(奇數)權限,則將其權限+1,得到最終權限

        eg: umask=125   –>  666-125 =541  –>+1處理后為: 642  (5+1,1+1)

     新建目錄默認權限: 777 – umask

        eg :  umask=100 –> 777-100=677 (rw-rwx-rwx)

                               umask 操作:

    umask    查看umask 值  (無需加參數)

    (注:如論如何設定,新文件默認均無執行權限)

    umask N  : 設定umask = N

    注: umask 每個位的最大值不超過7

     umask -S   以模式方式顯示umask

    eg:   u=rwx,g=rw,o=x

    umask -p  輸出umask值以供調用

    eg:   umask 0022

     

3特殊權限:SUID(s), SGID(s), Sticky(t)

  linux安全上下文

    前提:進程有屬主和屬組;文件有屬主和屬組

    (1) 任何一個可執行程序文件能不能啟動為進程:取決于發起者

    對程序文件是否擁有執行權限

    (2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為

    發起者所屬的組

    (3) 進程訪問文件時的權限,取決于進程的發起者

    (a) 進程的發起者,同文件的屬主:則應用文件屬主權限

    (b) 進程的發起者,屬于文件屬組;則應用文件屬組權限

   SUID

    作用:可執行文件上SUID權限(作用于二進制程序)(u+s后)任何用戶可啟動此進程,

         視為以root用戶啟動,并且具備root權限

    (對于各種命令,+s之后,任何用戶使用它都可以獲取root使用時的權限)

    作用對象:SUID只對二進制可執行程序有效,SUID設置在目錄上無意義

    權限設定:

    chmod u+s FILE…

    chmod u-s FILE…

   SGID

    作用:

    目錄:當一個目錄實行了sgid,在目錄中任何新創建的文件,都繼承本目錄的屬組

    為自己的屬組

    文件:作用在文件上, 一旦一個文件被賦予SGID的權限, 無論當前的用戶有無執

    行權限,用戶運行該程序,會自動繼承該程序所屬組的權限。

             作用對象:目錄、文件

    權限設定:

    chmod g+s FILE…

    chmod g-s FILE..

    Sticky 位 (粘滯位)

    作用:具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權

    在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件

    作用對象:僅作用于目錄,sticky 設置在文件上無意義

    ?權限設定:

    chmod o+t DIR…

    chmod o-t DIR…

    ?例如:

    ? ls -ld /tmp

    drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

    注:當文件夾、文件 SUID\SGID\STKCKET 顯示為大寫時,為錯誤狀態

    小寫才是正常狀態

        chmod 777 /dir 未必可以除掉 s權限

        應該改為: chmod 0777 /dir

    特殊權限的數字法:

    SUID SGID STICKY

    000 0

    001 1

    010 2

    011 3

    100 4

    101 5

    110 6

    111 7

    eg: chmod 4777 /tmp/a.txt

   權限位映射:

    SUID: user,占據屬主的執行權限位

    s: 屬主擁有x權限

    S:屬主沒有x權限

    SGID: group,占據屬組的執行權限位

    s: group擁有x權限

    S: group沒有x權限

    Sticky: other,占據other的執行權限位

    t: other擁有x權限

    T: other沒有x權限

    注意:修改時,應注意是否需要先賦予x權限,后再追加s權限

    設定文件的特定屬性:

    chattr +i 不能刪除,改名,更改

    chattr +a 只能增加

    lsattr 顯示特定屬性

二、訪問控制列表ACL

  1.ACL

    ACL: Access Control List,實現靈活的權限管理

    功能:除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限

    ACL生效順序:所有者,自定義用戶,自定義組,其他人

  2. ACL安裝:

    CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。

    CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。

    需手動增加:

    tune2fs –o acl /dev/sdb1

    mount –o acl /dev/sdb1 /mnt

  3. ACL 使用詳解

    命令:setfacl 設置ACL規則           

          getfacl  file|dir  獲取文件、目錄ACL列表

      

       setfacl    設定文件訪問控制列表

      用法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

      -m, –modify=acl 更改文件的訪問控制列表

             u:username:rwx file/dir  用戶

             g:groupname:rwx file/dir  組

             o:0 file/dir   其他

             :0 指無任何權限

      -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 應用到默認訪問控制列表的操作 (生效以后,目錄中的任何新建文件也會賦予acl默認權限)

      -R, –recursive 遞歸操作子目錄

      -L, –logical 依照系統邏輯,跟隨符號鏈接

      -P, –physical 依照自然邏輯,不跟隨符號鏈接

          –restore=file 恢復訪問控制列表,和“getfacl -R”作用相反

          –test 測試模式,并不真正修改訪問控制列表屬性

      -v, –version           顯示版本并退出

      -h, –help              顯示本幫助信息

    使用示例:

    mount -o acl /directory      掛載ACL,使指定目錄的ACL臨時生效,重啟后失效

    ? getfacl file |directory        查詢ACL列表

    ? setfacl -m u:wang:rwx file|directory   設定用戶的指定權限

    ? setfacl -Rm g:sales:rwX directory      遞歸設定組對目錄以及其目錄內文件的權限

    ? setfacl -M file.acl file|directory 使用file.acl文件中的acl條目對file/dir進行acl修

                              改文件格式,參照getfacl得到的信息

    ? setfacl -m g:salesgroup:rw file| directory   對指定組設定對某文件、目錄的權限

    ? setfacl -m d:u:wang:rx directory   對dir中的新建文件也賦予wang:rx權限

                               刪除用戶wang對file/dir的ACL條目

        文件內容格式:u:username

               g:groupname

                o:

     ? setfacl -X file.acl directory     刪除dir上 file.acl 文件中對應的條目

   4. ACL中的mask值

    ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,除了所有者、

      others ,其他人(屬組、ACL添加的其他用戶)的權限均不會高于此權限,受此權限的影響而非傳統的組權限

    • getfacl 可看到特殊權限: flags

    • 默認ACL權限給了x,文件也不會繼承x權限。

    • base ACL 不能刪除

    • setfacl -k dir 刪除默認ACL權限

    • setfacl -b file1清除所有ACL權限

    • getfacl file1 | setfacl –set-file=-  file2 復制file1的acl權限給file2

  5.備份和恢復ACL

    主要的文件操作命令cp和mv都支持ACL,只是cp命令需要

    加上-p 參數。但是tar等常見的備份工具是不會保留目錄

    和文件的ACL信息

    #getfacl -R /tmp/dir1 > acl.txt

    #setfacl -R -b /tmp/dir1

    #setfacl -R –set-file=acl.txt /tmp/dir1

    #getfacl -R /tmp/dir1

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

(0)
ldt195175108ldt195175108
上一篇 2016-08-05 16:13
下一篇 2016-08-05 16:13

相關推薦

  • 集中練習8-bash腳本及系統啟動

    集中練習8-bash腳本及系統啟動

    2017-12-06
  • 計算機基礎

    計算機系統 計算機系統由兩大部分組成硬件系統(Hartware)和軟件系統(Software) 硬件系統:主要由中央處理器、存儲器、輸入輸出控制系統和各種外部設備組成。中央處理器是對信息進行高速運算處理的主要部件,其處理速度可達每秒幾億次以上操作。存儲器用于存儲程序、數據和文件,常由快速的主存儲器(容量可達數百兆字節,甚至數G字節)和慢速海量輔助存儲器(容量…

    Linux干貨 2017-05-20
  • N21-第五周

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; # grep "^[[:space:]]\+" /etc/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; # grep&nbs…

    Linux干貨 2016-08-15
  • linux入門及基本命令

    Linux的入門及基本命令     一.   磁盤分區 1.       分區類型 主分區:1-4,一個硬盤最多四個,最少可以沒有,前提有別的硬盤存在,啟動系統或存數據,不要再分小區,只有個活動狀態。 2.    &nb…

    Linux干貨 2017-07-15
  • 馬哥教育第一天

    來到馬哥教育第一天,初步接觸IT,第一次寫博客,不知道寫點啥,記幾個地址吧。

    2018-03-26
  • 正則表達與擴展正則表達

    說到正則表達式那就不得不說grep命令: 1.grep命令的作用:grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。2.格式 2.命令格式 :grep [options] 3.主要參數: gre…

    2017-08-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 23:30

    對命令的的常見用法總結的很好,可以嘗試著將自己的操作放進去,這樣在以后的復習中會更直觀哦。

欧美性久久久久