特殊權限set_uid 、特殊權限set_gid 、特殊權限stick_bit 、 軟連接文件 、 硬鏈接文件

1.set uid、set gid和sticky bitnode

set uid :該權限針對二進制可執行文件,使文件在執行階段具備文件全部者的權限。好比,passwd這個命令就具備該權限。當普通用戶執行passwd命令時,能夠臨時得到root權限,從而能夠更改密碼。ui

set gid:該權限能夠做用在文件上(二進制可執行文件),也能夠做用在目錄上。看成用在文件上時,其功能和set uid同樣,它會使文件在執行階段具備文件所屬組的權限。目錄被設置這個權限後,任何用戶在目錄下建立的文件都具備和改目錄所屬的組相同的組。it

sticky bit:能夠理解爲防刪除位。文件是否能夠被某用戶刪除,主要取決於該文件所在的目錄是否對該用戶具備寫權限。若是沒有寫權限,則這個目錄下的全部文件都不能刪除,同時也不能添加新的文件。若是但願用戶能添加文件但不能刪除該目錄下其餘用戶的文件,則能夠對父目錄增長該權限。設置該權限後,就算用戶對目錄具備寫權限,也不能刪除其餘用戶的文件。配置

例如,passwd命令設置了set uid權限,而/tmp/目錄則設置了sticky bit權限。下面咱們來看看它們的權限,示例命令以下:file

能夠發現,passwd命令顯示的是rws而非傳統的rwx,用數字表示爲4755.、/tmp/顯示的rwt而非rwx,用數字表示爲1777。那麼,這個4和1是如何計算出來的呢?當有特殊權限時,第一位數字能夠是0、1(--t)、2(-s-)、3(-st)、4(s--)、5(s-t)、6(ss-)或7(sst)。再回過頭來看passwd,它是s--,因此是4;而/tmp/是--t,因此是1.權限

配置這些特殊權限的方法和以前同樣。好比,我想給一個文件增長set uid權限,那麼命令爲chmod u+s filename,而去掉這個權限的命令爲chmod u-s filename。同理,想設置set gid權限的命令爲chmod g+s dirname,設置sticky bit權限的命令爲chmod 0+t dirname。二進制

set_uid上的權限爲大寫的S,而不是小寫s,好比rwS,這是由於該文件沒有x權限所致,無論是大寫的S仍是小寫的s,都表示它存在set_uid或者set_gid權限,同理sticky bit也同樣。密碼

2.硬連接方法

當系統要讀取一個文件時,會先讀inode 信息,而後再根據inode中的信息到塊區域將數據取出來。而硬連接是直接再創建一個inode連接到文件放置的塊區域,即進行硬連接時該文件內容沒有任何變化,只是增長了一個指向文件的inode,並不會額外佔用磁盤空間。硬連接有兩個限制:(1)不能跨文件系統,由於不一樣的文件系統有不一樣的inode;(2)不能連接目錄。im

ln: [來源文件][目的文件] 硬連接

上例中作了硬連接後,目錄總大小沒有發生變化。硬連接文件不會複製數據塊,額外佔用磁盤空間。示例以下:

不容許目錄作硬連接

3.軟鏈接

ln:[-s] [來源文件][目的文件] 軟鏈接

軟鏈接:是創建一個獨立的文件,當讀取這個連接文件時,它會把讀取行爲轉發到該文件所連接的文件上。

刪除源文件,不能讀取軟鏈接文件。

目錄能夠作軟連接

相關文章
相關標籤/搜索