Linux檔案及目錄的Suid/Guid和T屬性(轉)

BSDLite發表於2007-08-11
Linux檔案及目錄的Suid/Guid和T屬性(轉)[@more@]  1. 4000---調整使用者號
  2000---調整組號
  1000---粘著置位
  
  2. suid/guid程式
  當一個程式的使用者或組被置位的時候,即4000或2000時,可實現某些特殊的功能一般來說,一個執行中的程式為執行這個程式的使用者所擁有,但如果該程式是suid/guid程式,則執行的程式則為檔案所有者擁有,執行中的程式在程式執行期間擁有檔案所有者的全部許可權如果一個普通使用者執行了一個屬於根使用者的帶s標誌的程式,則該程式不考慮使用者許可權, 自動擁有在系統中讀/寫任何檔案及目錄的特權,對於guid程式也是一樣的。
  
  最典型的要數/usr/bin/passwd程式了,-r-s--x--x ,可幫助普通使用者更改在系統中的密碼, 利用的就是suid的作用。 但也要嚴格設定這種許可權,避免破壞性,
  
  因為如果你的suid程式是/bin/bash的話,則會導致嚴重後果,一個普通使用者若在某個短時間取得過root許可權,他就能設定一個suid程式/binb/bash來取得根特權。
  (若拿它來破壞別人的系統,後果自負)
  
  # cp /bin/bash /home/jephe/.backdoor
  
  # chmod 4755 /home/jephe/.backdoor
  
  這樣當攻擊者執行了/home/jephe/.backdoor後就得到了根特權,可用id命令顯示suid=0
  
  因此一個管理員應定期執行檢查程式檢查系統內有無異常的suid/guid程式:象下面這樣的命令
  
  #find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ; >suid-sguid-results
  
  把上面的命令放入cron job並郵遞檔案suid-guid-resuilts給管理員郵箱帳號.
  
  3. 程式的t屬性
  粘著位 告訴系統在程式完成後在記憶體中儲存一份執行程式的備份,如該程式常用,可為系統節省點時間,不用每次從磁碟載入到記憶體
  
  4.目錄的s屬性
  
  目錄的S屬性使得在該目錄下建立的任何檔案及目錄屬於該目錄所擁有的組。
  例如在apache中為個人設定WEB目錄的時候,如果給apache分配的組名為httpd.
  則:
  
  #chown -R jephe.httpd ~jephe/public_html
  #chmod -R 2770 ~jephe/public_html
  
  確保在public_html中建立新的檔案或子目錄時,新建立的檔案設定了組ID。
  
  另外如有兩個使用者a和b都屬於組c,則希望在某目錄下a建立的檔案也能被b修改,則可設定該目錄chmod +s屬性,同時設定a和b的預設umask為770。
  
  5. 目錄的T屬性
  設定了目錄的T屬性後1000,由只有該目錄的所有者及root才能刪除該目錄,如/tmp目錄就是drwxrwxrwt
  
  6. 檔案及目錄的三種時間位
  每個Linux檔案有三種儲存著的時間日期標誌。
  
  檔案建立時間 (實際上是檔案I節點建立時間)
  檔案最後訪問時間
  檔案最後修改時間
  
  
  預設ls -l時顯示的是檔案最後修改時間,也可用ls -l --time=atime(檔案最後訪問時間)ls -l --time=ctime(檔案建立時間)
  
  可用touch命令改變時間日期標誌,從而可隱蔽攻擊者對檔案放置特洛伊木馬後對檔案時間的修改
  
  7。可用chattr改變檔案及目錄的屬性。
  
  有時你會發現對某個檔案即使是root使用者也不能修改或新增新內容,那很可能是該檔案被用chattr命令設定成不可更改或附加新內容了。你必須先用chattr去掉這些屬性再更改內容。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947114/,如需轉載,請註明出處,否則將追究法律責任。

相關文章