特殊許可權管理

bug--maker發表於2018-09-18
  • 使用者在執行程式命令時,需要呼叫一個屬主和屬組是使用者本身的 bash 程式,同時對應
    一個屬主和屬組是 root 的檔案,在執行時一其他使用者的身份執行命令;當然這種許可權對於屬主和屬組時 root 的檔案;
    這裡寫圖片描述

  • 對於這個命令/bin/ls,屬主和屬組都是root,westos程式在呼叫這個命令時,應用的就是otherx許可權,當這個程式執行時ls程式的屬主和屬組就是westos,通過這種機制可以防止列出一些westos不具有許可權的檔案;

  • 對於/bin/passwd這個命令,因為每個使用者具有修改自己密碼的許可權,但是密碼檔案的屬主和屬組都是root,為了保證安全,這個檔案不具有任何許可權包括root組使用者,如果隨意的更改這個檔案的許可權,會導致許可權放大;

    • 先考慮一種方法,如果為了使用者能夠修改密碼,給了other使用者讀寫許可權,這就會導致,tom很有可能就可以修改jerry的密碼,因為可以通過修改檔案內容,所以這是不安全的;
    • 如果將使用者加入root屬組,那麼這些使用者很有可能具有root屬組的其他檔案的許可權,這個也是不安全的;
  • SUID:在執行某個程式時,如果具有這SUID許可權,那麼這個檔案執行時程式的屬主就是這個檔案本身的屬主,如果這個檔案原來具有執行許可權,顯示為s,否則為大寫的S;

  • 通過給/bin/passwd設定SUID許可權,即使使用者為tom jerry屬於other,passwd 程式執行本身的屬主和屬組都是root,當使用者修改密碼時,通過傳入的引數,passwd程式通過root的許可權就可以對 /etc/shadow通過root的許可權就進行修改,即保證了/etcv/passwd檔案本身的安全性,有保證了使用者對於修改自己密碼的需求;

  • SGID:啟動程式的程式的屬組不再是使用者的屬組而是程式執行時需要的檔案本身的屬組;在目錄裡面建立的檔案不再是使用者的基本組,而是這個目錄的基本組

  • Sticky:表示在一個公共目錄每個人都可以建立檔案,刪除自己的檔案,但是不能刪除別人的問檔案;用於目錄設定許可權;

  • 檔案系統的訪問控制列表:

    • 自己建立的檔案的屬主和屬組都是建立檔案使用者,普通使用者是不能改變檔案的屬組的;
      FACL:檔案系統訪問控制列表:利用檔案系統的擴充套件屬性儲存額外的訪問控制許可權,用來定義某個使用者某個組對於檔案有什麼樣的訪問許可權;也就是在許可權的劃分上可以細緻到某個確定的使用者,而不再是使用組這樣的模糊概念;
    • 系統的安全上下文的過程:程式是以使用者的的基本身份去訪問檔案系統的,先 owner-->group --> other;的預設流程進行訪問;當許可權有了 setfacl 時:owner--> facl,user-->group-->facl,group-->other.;
    • facl 裡面有一個許可權是mask,表示的是你所給的使用者或者組的如果沒有設定 mask 許可權,mask許可權是隨著設定的最大許可權改變的,如果已經設定最大許可權 mask,訪問控制許可權是不能超過mask許可權的,否則以 mask 許可權為準;
    • setfacl:用於設定額外的訪問控制列表;
      • -m:
        • u:UID:perm:用於設定給某個使用者;
        • g:GID:perm:用於設定給某個組;
        • 如果需要為了目錄設定預設的訪問控制列表:d:u:UID:perm或者d:g:GID:perm;
      • -x:
        • u:UID:perm:用於取消某個使用者;
        • g:GID:perm:用於取消某個組;
    • getfacl:用來獲取檔案的訪問控制列表資訊;
  • 如果檔案有擴充套件屬性時,進行檔案歸檔,或者複製時許可權會被忽略;

  • 對於檔案設定的mask:
    這裡寫圖片描述

  • 對於目錄設定的mask
    這裡寫圖片描述

相關文章