Linux文件基本知識
linux
文件基本知識
磁針石
聯系方式: Gmail
and gtalk: xurongzhong#gmail.com
文件路徑:D:\blog\@Linux\linux
基礎\文件系統
參考資料
* 《深入理解Linux內核(第三版)》之1.5. An Overview of the Unix
Filesystem
* 《LINUX與UNIX
SHELL編程指南》第一章
2008-10-10 根據參考資料1,2創建初稿。
文件類型
Unix 文件可以是下列類型之一 :
• 普通文件(regular file)
• 目錄
• 符號鏈接
• 面向塊的設備文件(block-oriented device file)
• 面向字符的設備文件(character-oriented device file)
• 管道(pipe)和命名管道(named pipe)(也叫FIFO)
• 套接字(socket)
前三種文件類型是所有Unix 文件系統的基本類型。設備文件與I/O
設備以及集成到內核中的設備驅動程序相關。例如,當程序訪問設備文件時,它直接訪問與那個文件相關的I/O 設備。管道和套接字是用于進程間通信的特殊文件。
文件描述符與索引節點
Unix對文件的內容和描述文件的信息給出了清楚的區分。除了設備文件和特殊文件系統文件外,每個文件都由字符序列組成。文件內容不包含任何控制信息,如文件長度或文件結束(end-of-file,EOF)符。
文件系統處理文件需要的所有信息包含在一個名為索引節點(inode)的數據結構中。每個文件都有自己的索引節點,文件系統用索引節點來標識文件。
雖然文件系統及內核函數對索引節點的處理可能隨Unix系統的不同有很大的差異,但它們必須至少提供在POSIX 標準中指定的如下屬性:
• 文件類型
• 與文件相關的硬鏈接個數
• 以字節為單位的文件長度
• 設備標識符(即包含文件的設備的標識符)
• 在文件系統中標識文件的索引節點號
• 文件擁有者的UID
• 文件的用戶組ID
• 幾個時間戳,表示索引節點狀態改變的時間、最后訪問時間及最后修改時間
• 訪問權限和文件模式
另有文件的位置。
訪問權限和文件模式
文件的潛在用戶分為三種類型:
• 作為文件所有者的用戶
• 同組用戶,不包括所有者
• 所有剩下的用戶(其他)
有三種類型的訪問權限——讀、寫及執行每組用戶都有這三種權限。因此,文件訪問權限的組合就用九種不同的二進制來標記。還有三種附加的標記,即suid (Set User ID), sgid (Set Group ID),及sticky 用來定義文件的模式。當這些標記應用到可執行文件時有如下含義:
suid
進程執行一個文件時通常保持進程擁有者的UID。然而,如果設置了可執行文件
suid 的標志位,進程就獲得了該文件擁有者的UID。
sgid
進程執行一個文件時保持進程組的用戶組ID。然而,如果設置了可執行文件sgid
的標志位,進程就獲得了該文件用戶組的ID。
sticky
設置了sticky 標志位的可執行文件相當于向內核發出一個請求,當程序執行結
束以后,依然將它保留在內存(這個標志已經過時,現在使用基于代碼頁共享的其他方法)。
當文件由一個進程創建時,文件擁有者的ID 就是該進程的UID。而其用戶組ID 可以是進程創建者的ID,也可以是父目錄的ID,這取決于父目錄sgid 標志位的值。
對于文件屬主來說,在只有讀權限位被置位的情況下,仍然可以通過文件重定向的方法向該文件寫入。能否刪除一個文件還依賴于該文件所在目錄權限位的設置。
hmod [who]
Operator [permission] filename
who的含義是:
u 文件屬主權限。
g 同組用戶權限。
o 其他用戶權限。
operator的含義:
+ 增加權限。
- 取消權限。
= 設定權限。
permission的含義:
r 讀權限。
w 寫權限。
x 執行權限。
s 文件屬主和組set-ID。
t 粘性位*。
l 給文件加鎖,使其他用戶無法訪問。
u,g,o 針對文件屬主、同組用戶及其他用戶的操作。
*在列文件或目錄時,有時會遇到“
t”位。“t”代表了粘性位。如果在一個目錄上出現
“t”位,這就意味著該目錄中的文件只有其屬主才可以刪除,即使某個同組用戶具有和屬主
同等的權限。不過有的系統在這一規則上并不十分嚴格。
如果在文件列表時看到“ t”,那么這就意味著該腳本或程序在執行時會被放在交換區(虛
存)。不過s于當今的內存價格如此之低,大可不必理會文件的“ t”的使用。
還可以通過使用- R選項連同子目錄下的文件一起設置:
chmod -R 664 /usr/local/home/dave/*
這樣就可以一次將/usr/local/home/dave目錄下的所有文件連同各個子目錄下的文件的權限全部設置為文件屬主<
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解