linux檔案類型詳解 *nix 有各種的檔案類型當#ls -la後,會發現在許可權位前有個 - 有些是 b 有些是 d這個位置就是檔案類型的標示 普通檔案regular file, 用 - (破折號)標示, 比如 -rwxr--r-- ,rxw前面的 - 表明這個是普通檔案。 www.2cto.com 目錄檔案directory 用d標示 ,比如drwx------ 目錄也是一個檔案,其中存放著檔案名稱和檔案索引結點之間的關聯關係。目錄是目錄項組成的一個表。其中每個表項下面對應目錄下的一個檔案。 塊裝置檔案block deivce ,用 b 標示,實際上表示硬體裝置 ,I/O以2的冪次方資料區塊大小傳送,可以在/dev 目錄訪問這些裝置,包含磁碟驅動光碟片驅動這類儲存的。字元裝置檔案character device ,用c 標示,也表示硬體裝置,但是資料是以位元組流發送的,這些裝置包括終端裝置和串口裝置。 連結link裝置 用 I 標示, 就是ln 建立的連結,分為軟和永久連結, 其中永久連結限制了其連結的檔案必須是同一檔案系統的,不能連結到目錄,不能連結不存在的檔案。其連結的檔案許可權就是它所指向的檔案的許可權。具名管道檔案pipe 用 p標示, 管道也是一個檔案,作為資料管道方便程式之間的通訊,管道實際緩衝了來自第一個進程的輸入資料,也稱為FIFO。通訊端檔案socket 用s標示 ,通訊端是方便進程之間通訊的特殊檔案。與管道不同的是,通訊端能促使通過網路連接的不同電腦的進程之間進行通訊。通訊端檔案也不與任何資料區塊關聯。 www.2cto.com 檔案模式有三種 sticky,suid,sgid, 來表示特別許可權位,換成數字就是1777 的1這種 suid位,對應八進位位為4.表明使用者訪問權位上的可執行位x 變為s 比如 -rws------ ,當使用者執行一個可執行檔時,執行進程就調用這個檔案的使用者關聯起來。 如果可執行位上設定了suid位,那麼進程就繼承檔案所有者的UID。進而可以訪問擁有者的所有訪問權。可以查看/usr/bin/passwd 的許可權 大寫的S表明檔案本來沒有可執行許可權並且設定了suid位。 使用#chmod 4755 filenamesgid ,對應八進位位為2,表明使用者組訪問權位上的可執行位x變為s 比如-rwxrws--- ,類似於上面的suid,不過是用於組的。進程也有實際的組ID和有效組ID,分別對應使用者的GID和檔案組的GID。使用#chmod 2755 filename sticky ,對應八進位位為1,如果有這個存在,表明防止對那個目錄具有寫入權限的使用者(不包含root使用者和檔案所有者)刪除或者更名其中的檔案,這個在 許可權位的最後面, t 比如-rwx-----t,就就是設定了sticky後該目錄下的檔案只能有超級管理員和檔案所有者刪除和目錄所有者刪除。使用#chmod 1755 filename www.2cto.com 助記法裡面 suid 為u+s, sgid 為 g+s, sticky為o+t (刪除標記位 分別是 u-s,g-s,o-t) rwsrw-r-- 表明有suid標示,rwxrwxrw- 表明有sgid標示,rwxrw-rwt 表明有stick標示,當設定了特別許可權位時,如果原來這個位上有x,那麼這個特殊標示就顯示為小寫字母s,s,t ,否者就顯示為大寫S,S,T. 作者 rainysia