Linux 中的許可權管理

貓&九發表於2020-10-21

許可權檢視及讀取  

  1. 許可權檢視       
    ls -l   file          檢視檔案許可權
    ls -ld  dir       檢視目錄許可權
  2. 許可權的讀取
    "檔案的屬性被叫做檔案的後設資料(meta data)","一種後設資料用1個byte來記錄內容"
     檔案許可權資訊
    - | rw-r--r-- | . | 1 | root | root | 0 |  Apr 12 10:57 |  westos
    [1]    [2]     [3]  [4]   [5]    [6]    [7]         [8]                 [9]
     目錄許可權資訊
    d | rw-r--r-- | . | 2 | root | root | 0 |  Apr 12 10:57 |  westosdir
    [1]    [2]     [3]  [4]   [5]     [6]   [7]           [8]              [9]
     對於每一位的解釋
    [1] 檔案型別
         - 普通檔案
         d 目錄
         l 軟連線
         b 快裝置
         c 字元裝置
         s socket套接字
         p 管道
    [2]   使用者許可權
          rw-|r--|r--
           u    g   o
    [3]   系統的selinux開啟
    [4]   對於檔案:檔案內容被系統記錄的次數(硬連結個數)
          對於目錄:目錄中子目錄的個數 
    [5]   檔案擁有者
    [6]   檔案擁有組
    [7]   對於檔案:檔案內容大小
          對於目錄:目錄中子檔案的後設資料大小
    [8]   檔案內容被修改的時間
    [9]   檔名稱


       二.普通許可權的型別及作用   
     
  3. 使用者對檔案的身份
    u:  user 檔案的擁有者,ls -l 看到的第五列資訊
    g:  group 檔案擁有組, ls -l 看到的第六列資訊
    o:  other 既不是擁有者也不是擁有組成員的其他使用者的通稱
  4. 許可權位
    rwx|r--|r--
     u   g   o
  5. 使用者身份匹配
    user>group>other
  6. 許可權型別
    -   許可權未開啟
    r   可讀
         對於檔案:可以讀取檔案內容
         對於目錄:可以ls列出目錄中的檔案
    w   可寫
         對於檔案:可以更改檔案內容
         對於目錄:可以在目錄中新建或者刪除檔案
    x   可執行
         對於檔案:可以用檔名稱呼叫檔案內記錄的程式
         對於目錄:可以進入目錄中

        三.設定普通許可權的方法    
  7. chmod         設定檔案許可權
           複製許可權
    chmod --reference=dir  dir1        複製dir目錄的許可權到dir1上

    chmod -R --reference=dir  dir1    複製/tmp目錄的許可權到/mnt/westosdir及
                             目錄中的子檔案上 -R 代表第歸操作

     chmod 字元方式設定許可權
    chmod <a|u|g|o><+|-|=><r|w|x> file        用字副方式設定檔案許可權
    示例:
    chmod o+wx  file1

    chmod  u-rw  file1

    chmod  u=rwx,g+wx,o-wx file1

    chmod  a-rwx file1

    chmod  -R u=rwx,g=rx,o=--- /mnt/westosdir/



     chmod 數字方式設定許可權
    許可權波爾指表示方式
    rwx = 111
    --- = 000
    三位二進位制可以表示的最大範圍為進位制數
    r=4   w=2   x=1
    chmod  777  /home/westos/Desktop     
                 rwxrwxrwx




        四.系統預設許可權設定    
     系統本身存在的意義共享資源, 從安全形度講系統共享的資源越少,開放的權力越小系統安全性越高,既要保證系統安全,又要系統創造價值,於是把應該開放的權力預設開放, 把不安全的權力預設保留
  8. 如何保留權力
      umask表示系統保留權力
    umask       檢視保留權力
    umask 許可權值    臨時設定系統預留權力
    檔案預設許可權 = 777-umask-111
    目錄預設許可權 = 777-umask
    umask值越大系統安全性越高
     umask臨時更改
    umask 077



     永久更改
    vim /etc/bashrc       shell系統配置檔案
    74     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    75        umask 002   普通使用者的umask
    76     else
    77        umask 022     -->  077     root使用者的umask
    78     fi




    vim /etc/profile      系統環境配置檔案
    59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    60     umask 002     普通使用者的umask
    61 else
    62     umask 022   ----> 077        root使用者的umask
    63 fi




    source /etc/bashrc        source作用時使我們更改的內容立即被系統識別
    source /etc/profile


        五.檔案使用者使用者組管理    
    chown username  file          更改檔案擁有者
    chgrp groupname  file         更改檔案擁有組
    chown username:groupname file     同時更改檔案的擁有者和擁有組
    chown|chgrp  -R user|group dir    更改目錄本身及目錄中內容的擁有者或者擁有組



     六.特殊許可權    


     stickyid   粘制位
    針對目錄:  如果一個目錄stickyid開啟,那麼這個目錄中的檔案
                只能被檔案所有人刪除
    chmod   1原始許可權  dir1
    chmod     o+t      dir1






    sgid       強制位
     針對目錄: 目錄中新建的檔案自動歸屬到目錄的所屬組中
    設定:
    chmod  2原始檔許可權  dir
    chmod g+s       dir



     只針對二進位制的可執行檔案(c程式)
     當執行二進位制可執行檔案時都是用檔案擁有組身份執行,和執行使用者無關






     suid       冒險位
     只針對二進位制的可執行檔案(c程式)
     當執行二進位制可行檔案時都是用檔案擁有者身份執行,和執行使用者無關
    chmod 4原屬性  file
    chmod u+s      file



        七.acl許可權列表    
    Aiccess Control Lists   訪問控制列表
     功能:
     在列表中可以設定特殊使用者對與特殊檔案有特殊許可權
     acl列表開啟標識
    -rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile
                  ^    沒有"+"代表acl列表未開啟
    -rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
                  ^    acl列表功能開啟


     acl列表許可權讀取
    getfacl  westosfile
    顯示內容分析
    file: westosfile  檔名稱
      owner: root       檔案擁有者
      group: root       檔案擁有組
    user::rw-       檔案擁有者許可權
    user:lee:rw-        特殊指定使用者許可權
    group::r--      檔案擁有組許可權
    group:westos:---    特殊指定的使用者組的許可權
    mask::rw-       能夠賦予特殊使用者和特殊使用者組的最大許可權閥值
    other::r--      其他人的許可權


    "注意:"
    "當檔案許可權列表開啟,不要用ls -l 的方式來讀取檔案的許可權"
     acl列表的控制
    setfacl -m u:lee:rw     westosfile  設定
    setfacl -m g:westos:rw  westosfile
    setfacl -m u::rwx   westosfile
    setfacl -m g::0     westosfile
    setfacl -x u:lee    westosfile    刪除列表中的lee



    setfacl -b westosfile           關閉


     acl 許可權優先順序
    擁有者 > 特殊指定使用者 > 許可權多的組 >許可權少的組 > 其他

     acl  mask 控制
     mask是能夠賦予指定使用者許可權的最大閥值
    問題
    當設定完畢檔案的acl列表之後用chmod縮小了檔案擁有組的權力
    mask會發生變
    恢復:
    setfacl -m m:許可權   檔案


     acl 列表的預設許可權
    setfacl -m u:lee:rwx   /mnt/westosdir   只對於/mnt/westosdir目錄本身生效
    setfacl -Rm u:lee:rwx   /mnt/westosdir      對於/mnt/westosdir目錄和目錄中已經存在的內容生效
     以上的命令之針對與存在的檔案生效,新建檔案是不會被設定的


    setfacl  -m d:u:lee:rwx /mnt/westosdir/   針對與/mnt/westosdir目錄中新建檔案生效



     八.attr許可權
     attr許可權限制所有使用者
    i   不能作任何的更改
    a   能新增不能刪除
    lsattr dir|file       檢視attr許可權
    chattr +i|+a|-i|-a dir|file   設定attr許可權

相關文章