一、SUID、SGID、SBIT簡介 SUID:對一個可執行文件,不是以發起者身份來獲取資源,而是以可執行文件的屬主身份來執行。SGID:對一個可執行文件,不是以發起者身份來獲取資源,而是以可執行文件的屬組身份來執行。SBIT:粘滯位,通常對目錄而言。通常對於全局可寫目錄(other也可寫)來說,讓 ...
一、SUID、SGID、SBIT簡介
SUID:對一個可執行文件,不是以發起者身份來獲取資源,而是以可執行文件的屬主身份來執行。
SGID:對一個可執行文件,不是以發起者身份來獲取資源,而是以可執行文件的屬組身份來執行。
SBIT:粘滯位,通常對目錄而言。通常對於全局可寫目錄(other也可寫)來說,讓該目錄具有SBIT後,刪除只對屬於自己的文件有效(但是仍能編輯修改別人的文件,除了root的)。不能根據安全上下文獲取對別人的文件的寫許可權。
設置方式:
#chmod u+s
#chmod g+s
#chmod o+t
同上,去除特殊位有: #chmou u-s .等。
SUID:置於 u 的 x 位,原位置有執行許可權,就置為 s,沒有了為 S .
SGID:置於 g 的 x 位,原位置有執行許可權,就置為 s,沒有了為 S .
SBIT : 粘滯位,置於 o 的 x 位,原位置有執行許可權,就置為 t ,否則為T .
將三個特殊位的用八進位數值表示,放於 u/g/o 位之前。其中 suid :4 sgid:2 SBIT:1 例: 對某個目錄:
#chmod 4551 file // 許可權: r-sr-x--x
#chmod 2551 file // 許可權: r-xr-s--x
#chmod 1551 file // 許可權: r-xr-x--t
由於SUID和SGID是在執行程式(程式的可執行位被設置)時起作用,而可執行位只對普通文件和目錄文件有意義,所以設置其他種類文件的SUID和SGID位是沒有多大意義的。 對一個屬主為root的可執行文件,如果設置了SUID位,則其他所有普通用戶都將可以以root身份運行該文件,獲取相應的系統資源。當然這在某些場合時需要的,但是濫用會造成系統的安全隱患。 對一個全局可寫目錄,若其從屬於mygrp組,一個屬於mygrp組的用戶建立文件後屬組為自己的私有組,但是加上給該文件夾加上SGID位後,可以讓用戶創建的文件從屬於該目錄所屬的組,因為是以文件夾屬組的身份來創建的。 對於一個全局可寫目錄,加上SBIT位以後,普通用戶將只能刪除自己的文件,而不能刪除其他用戶的文件。
粘著位(sticky)-----tmp目錄
一般來說都是用於目錄
其他用戶可以寫 但是就是不能隨便的刪除。。。。。。
chmod 777 abc
chmod +t abc
等價於 chmod 1777 abc
,即當一個目錄被設置為"粘著位"(用chmod a+t),則該目錄下的文件只能由
一、超級管理員刪除
二、該目錄的所有者刪除
三、該文件的所有者刪除
也就是說,即便該目錄是任何人都可以寫,但也只有文件的屬主才可以刪除文件
UID---4
GID---2
黏貼位-1