set_uid:該權限針對二進制可執行文件,使文件在執行階段具備文件全部者的權限; 通俗一點講就是,普通用戶想要訪問一個沒有其餘用戶可執行權限的目錄時,暫時藉助二進制文件的所屬主權限去訪問這個目錄,若是沒有s權限,就不能訪問; 注意:普通用戶要有這個二進制文件的可執行權限。若是沒有,那也是不能訪問的。 咱們系統中passwd命令就具備s權限。當普通用戶執行passwd命令的時候,能夠臨時得到root權限,從而能夠更改密碼;node
系統修改密碼命令:passwdui
系統密碼文件:/etc/shadowspa
注意:這裏全部者,所屬組,其餘用戶都沒有執行權限,可是root是超級用戶,它具備至高無上的權限,因此root用戶是能夠修改密碼的;按理說普通用戶沒有執行權限是沒辦法去修改密碼的,可是咱們passwd命令具備s權限,普通用戶在使用命令passwd時,能夠臨時獲取到passwd所屬主的root權限,因此能修改密碼。blog
例子:使用普通用戶查看/root/目錄:qt
咱們怎樣才能讓普通用戶yyl打開/root/目錄呢? 解:咱們給ls命令加上一個s權限,讓用戶yyl臨時擁有ls的全部者權限;例如:it
設置s權限:table
- chmod u+s 二進制文件名
- chmod u=rws 二進制文件名
- chmod 4755 二進制文件名 這個4是這樣得出來的:
suid = 4
sgid = 2
stick_bit = 1
取消s權限:權限
- chmod u-s
- chmod u=rwx
- chmod 755
set_gid:該權限能夠做用在二進制可執行文件上,也能夠做用在目錄上。看成用在文件上時,其功能和set_uid同樣,它會使文件在執行階段具備該文件所屬組的權限。做用在目錄上時,任務用戶在此目錄下建立的文件和目錄都具備和該目錄所屬組相同的組。二進制
設置s權限:密碼
- chmod g+s 二進制文件名或目錄
- chmod g=rws 二進制文件名或目錄
- chmod 2755 二進制文件名或目錄
例子:做用在二進制文件上
例子:做用於目錄上
sticky_bit:防刪除位。一個目錄下的文件能不能被刪除,不是取決於文件自己的屬組屬組還有其餘權限, 而是在於這個文件所在目錄的權限是否可讀可寫可執行,若是目錄可寫,那就意味着咱們能夠刪除目錄下的任何文件。當一個目錄的權限爲其餘人可讀可寫可執行的時候,那麼其餘用戶均可以刪除這個目錄下的文件,包括root文件,爲了防止文件被其餘用戶刪除,咱們給這這個目錄增長一種特殊權限:sticky,防刪除位,要用root用戶操做。這樣一個用戶就不能刪除另外一個用戶建立的文件了。只有root和建立文件本人才可以刪除。
/tmp/ 這個目錄有這個權限,哪一個用戶建立的文件或文件夾都只有它自己和root用戶有權限刪除和更改
(誰的文件誰作主)
更詳細參考:http://blog.51cto.com/walkerqt/1354117
特殊權限的數值表示
三種特殊權限能夠用單獨的一位8進制數值表示
SUID、SGID和sticky-bit的數值表示
SUID SGID sticky 二進制 八進制 說明
- - - 000 0 不設置特殊權限
- - t 001 1 只設置sticky
- s - 010 2 只設置SGID
- s t 011 3 只設置SGID和sticky
s - - 100 4 只設置SUID
s - t 101 5 只設置SUID和sticky
s s - 110 6 只設置SUID和SGID
s s t 111 7 設置三種特殊權限
設置t權限:
- chmod o+t 目錄
- chmod o=rwt 目錄
- chmod 1755 目錄
例子:
軟連接:是創建一個獨立的文件,當讀取這個連接文件時,它會把讀取的行爲轉發到該文件所連接的文件上。
比較源文件和軟連接的大小,軟鏈接的大小與源文件的長度有關
硬連接:當系統要讀取一個文件時,會先讀取inode信息,而後再根據inode的信息到塊區域將數據取出來。而硬連接就是直接在創建一個inode連接到文件放置的塊區域,即進行硬連接時,該文件的內容沒有任何變化,只是增長了一個指向這個文件的inode,並不會額外佔用磁盤空間。
注意:咱們建立的硬連接和源文件的inode同樣,大小同樣,真正存文件的是在inode號這個塊裏面
刪除源文件,對硬連接沒影響,對軟鏈接有影響。
硬連接不能連接目錄 軟鏈接能夠