對Linux使用者來說,suid、sguid、sticky bit是較進階之設定,在此詳細說明。

一、首先需理解Linux系統之檔案與目錄設定權限之方式;每個檔案與目錄皆由r(ead)-->4、w(rite)-->2、x(execute)-->1三個事件所規範,而執行此三項事件之人員有三種類別:u(ser)、g(roup)、o(ther)。
      
 Ex:  如一個檔案權限是rwxrwxrwx,換算成數字即是777,第一個7代表user可對該檔案讀、寫、   執行,第二個7代表同一group的人可對該檔案讀、寫、執行,第三個7代表身份為other的人可對該檔案讀、寫、執行。

二、但有時你會看到檔案權限是1777的數字,為何會多一個'1'呢?

 說明:suid、sguid、sticky bit所等價之數字依序是4、2、1,而他們佔用之位置都是每個身份(user、group、other)之'x'事件的位置。所以如果檔案權限是rwsrwsrwt,轉化成數字即是"7777"。第一個7的由來即是suid、sguid、sticky bit三個事件相加之結果。

三、而 suid、sguid、sticky bit之實際意義何在呢? 
     
suid:如加入suid之權限即是該檔案得到特權,可任意存取該檔案擁有者能使用的全部系統資源。
     
sguid:如加入suid之權限即是該檔案得到特權,可任意存取該檔案群組擁有者能使用的全部系統資源。      

sticky bit:這是比較常用到之事件,在Linux系統中,有/tmp和/var/tmp兩個目錄,是開放給所有user暫時存放檔案之處,也就是所有user在該目錄下皆有權力任意刪除別人之檔案;所以如果對該目錄下達sticky bit指令,即可防止user刪除別個user之檔案!由此可知,如果用samba系統之網管人員,當學生在繳交作業到共用資料夾時,即可下達1770給該共用目錄,防止學生刪掉他人檔案。
四、但有時您會發現rwSrwSrwT大寫字母又是什麼意思呢?

這表示x權限是沒有開放的(0),所以上述的寫法換算成數字即是7666。      

arrow
arrow
    全站熱搜

    bunkera 發表在 痞客邦 留言(0) 人氣()