天天看點

Linux基礎指令(七)

綜述:特殊權限

明确:特殊權限的設定方式,以及應用場景!

引入:我們發現 /tmp以及 /usr/bin/passwd的權限有些奇怪?

Linux基礎指令(七)

思考:不是隻有r、w、x嗎?這些特殊權限的(s、t)的含義是什麼?

過渡:對應的Xwindows資料總管圖形展示(展示略)!

###################################################

一、SBIT(Sticky Bit)(粘制位)

 場景引入:在一個公共的目錄下使用者A、B都建立了檔案fileA、fileB,但是使用者A誤删除了使用者B建立的檔案,導緻不可恢複!

 需求:使用者建立的檔案隻能自己或者超級使用者root使用者可以删除,其他人不能删除!删除!删除!

 注意1:即使目前使用者組對目錄有wx的權力,也不能删除該檔案!--->測試!

 其他人:others,是相對于使用者和使用者組之外的人而言的!

 補充一句:其他使用者對檔案的内容或者目前目錄下的子目錄的内容是否有編輯能力不在考慮的範圍之内!

 注意2:改變權限之前其他使用者(other)必須對目錄具有x,w權限,即具有寫入和修改目錄内容的的權力;且隻針對目錄的操作!

 重述:x(表示進入目錄),w(操作目錄的内容)

粘制位的了解:本來應該完成的,由于設定了粘滞位使其功能受阻!

 設定方式

chown  o+t  dir

    chown 1###  dir
           

 測試:

Linux基礎指令(七)
Linux基礎指令(七)

進一步測試:檔案的所有者所在的使用者組是否可以删除檔案?

前提:也是具有wx的權限

Linux基礎指令(七)

精簡:雖然t在o位置,但是其實限制的是go對應使用者的删除目錄内容的權力!

現象:大寫T出現的原因?

Linux基礎指令(七)

##############################################

二、SGID(強制位)

概念:當s标示在使用者組的x使則稱之為Set GID,簡稱SGID

生活案例:掃地的工具是使用者A的,但是真正打掃幹活的人是使用者B,符合生活認知!

Linux基礎指令(七)

1)針對目錄--->組

引入:員工在富士康(目錄)生産手機,但是員工在工廠下(目前目錄)生産的檔案都屬于富士康(目錄),跟誰生産的沒有關系!

兩種設定方式:

chmod  g+s   dir

chmod  2***  dir
           

  前提條件:使用者若對此目錄具有x和w的權限,該使用者能夠進入此目錄和編輯此目錄的内容

  測試:

Linux基礎指令(七)

  說明:t作用于g位的x主要是限制使用者編輯目錄内容中的建立,其它的(重命名,移動等)照舊!

  達到的效果:"任何使用者"在此目錄下建立,建立檔案或者目錄的有效使用者組(effective group)将會變成該目錄的使用者組!

  任何使用者:root也不能例外!如果使用者組是root也會變成使用者組!

  說明:大寫S産生的原因!

 2)針對二進制檔案

 特點:當目錄上有sgid權限時,任何人執行此二進制檔案産生的程序都屬于二進制檔案所屬的使用者組!

 任何人:同上,root也不能例外!

 注意:對于腳本(shell)不行!

 測試:

Linux基礎指令(七)
Linux基礎指令(七)

注意:是在kiosk的使用者下進行測試的!

#########################################################

三、SUID(冒險位)

概念:當s标志出現在二進制檔案所有者u的x權限中時是冒險位,此時就被稱為Set UID!

SUID有這樣的限制和功能

(1)SUID權限僅對二進制程式(具有s屬性的指令)有效;

(2)執行者對于該程式需要有x的可執行權限;

(3)本權限(SUID)僅在執行過程中(run-time)生效;

(4)執行者具有該程式所有者的權限;

設定方式:

chmod   u+s file(二進制)

chmod  6*** file(二進制)
           

實驗1:

Linux基礎指令(七)

實驗2:

Linux基礎指令(七)

達到的效果:當檔案上有sgid時任何人在執行此二進制檔案的身份是二進制檔案的所有者的身份!

需求:限制root使用者删除檔案和目錄的權力!

Linux基礎指令(七)
Linux基礎指令(七)
Linux基礎指令(七)

相關連結