特殊權限與軟硬連接

特殊權限set_uid

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

passwd 顯示的是 rws,並不是傳統的 rwx。用數字表示爲 4755。那麼這個 4 是如何計算來的呢?當有特殊權限時,第一位數字能夠是 0, 1(--t), 2(-s-), 3(-st), 4(s--), 5(s-t), 6(ss-), 7(sst)。再回過頭來看 passwd,它是 s--因此是 4。下面來自定義一個 set uid 的權限:ui

說明: su - user1 這個命令可讓 root 用戶臨時切換到 user1 用戶下,以 user1 的身份去執行命令。普通用戶是沒有權限查看/root/目錄內容的,因此報錯了。用 exit 退出 user1,而後給/bin/ls 命令加一個 set uid權限,再次切換到 user1 下,再執行 ls /root/就能夠查看了。這裏咱們使用了 chmod u+s /bin/ls 來給 ls 增長一個 set uid 權限。spa

有時候你可能會看到-rwSr-xr-x 這樣的權限, s 變成了 S,這是因爲全部者沒有了執行權限:it

特殊權限set_gid

該權限能夠應用在文件上一樣也能夠做用在目錄。設置在文件上,做用和 set uid 相似,前提是這個文件是可執行的二進制文件,當設置 set gid 後,執行該文件的用戶會臨時以該文件所屬組的身份執行。若目錄被設置這個權限後, 任何用戶在此目錄下建立的文件或目錄都具備和該目錄所屬的組相同的組。table

說明:給/tmp/test 目錄設置 set gid 權限後,權限由原來的 drwxrwxrwx 變爲 drwxrwsrwx,此時以 user1的身份在/tmp/test 目錄裏建立目錄和文件,其所屬組都爲 root,而不是 user1。test

特殊權限stick_bit

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

說明:一個文件可否被刪除,取決於該文件父目錄的權限, /tmp/目錄是 777,任何人均可寫的,因此理論上任何人均可以刪除/tmp/下的全部文件,可是剛纔咱們作的實驗卻代表, user2 是不能夠刪除 user1 的文件的,這就是由於/tmp/目錄有一個 stick bit。file

用法:

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

軟連接

軟連接: 跟硬連接不一樣,這個是創建一個獨立的文件,而這個文件的做用是當讀取這個連接文件時,它會把讀取的行爲轉發到該文件所 link 的文件上。語法

那麼就來舉一個例子:如今有文件 a,咱們作了一個軟連接文件 b(只是一個連接文件,很是小), b 指向了文件 a。當讀取 b 時,那麼b 就會把讀取的動做轉發到 a 上,這樣就讀取到了文件 a。因此,當咱們刪除文件 a 時,文件 b 並不會被刪除,可是再讀取 b 時,會提示沒法打開文件。然而,當咱們刪除 b 時, a 是不會有任何影響的。(b文件相似Windows的快捷方式,可是是二級快捷方式,inode是一級)

這就用到了 ln 命令:

語法 : ln [-s] [來源文件] [目的文件(快捷方式)]
ln 經常使用的選項就一個-s,若是不加就是創建硬連接,加上就創建軟連接。

軟連接文件:

軟鏈接目錄:

不建議使用相對路徑,並且相對路勁只能在當前目錄下建立軟連接,當文件發生移動時,會失去軟連接的效果:

使用絕對路徑:

爲防止使用一些空間時被佔滿後寫入失敗,經常使用到了軟連接方式存儲將文件存儲軟連接到另外一個地方:

硬連接

連接文件分爲兩種,硬連接(hard link)和軟連接(symbolic link)。兩種連接的本質區別關鍵點在於 inode。

硬連接: 當系統要讀取一個文件時,就會先去讀 inode table,一個文件對應一個 inode,而後再去根據 inode 中的信息到塊區域去將數據取出來。而硬連接是直接使用了和源文件相同的 inode,硬連接文件(能夠建立多個,,可刪除,也是相似快捷方式但使用或者說記錄了inode(真正數據位置信息))直接連接到文件放置的塊區域。也就是說,進行硬連接的時候實際上該文件內容沒有任何變化,只是指定了相同的 inode。硬連接有兩個限制: (1)不能跨文件系統(分區),由於不一樣的文件系統有不一樣的 inode table; (2) 不能連接目錄。

相關文章
相關標籤/搜索