在 Linux 系統管理中,文件創建與權限控制是基礎且關鍵的技能。本文通過實例講解 touch 創建文件、chmod 修改權限,並深入剖析權限位的含義與數字表示法。
touch /etc/init.d/httpd
touch 的主要用途:
touch 常用於強制重新編譯某目標文件(通過將其時間戳設為最新,使 make 認為源文件已更新)。chmod 755 /etc/init.d/httpd
Linux 文件權限由 10 個字符表示(如 -rwxr-xr-x):
- 普通文件,d 目錄,l 鏈接等)。每組權限由 r(讀,值 4)、w(寫,值 2)、x(執行,值 1)三位組成,三值相加得八進制數字:
| 權限字符 | 二進制 | 八進制 | 含義 |
|---|---|---|---|
| rwx | 111 | 7 | 讀、寫、執行 |
| rw- | 110 | 6 | 讀、寫 |
| r-x | 101 | 5 | 讀、執行 |
| r-- | 100 | 4 | 僅讀 |
因此 755 拆解為:
rwx 完全控制。r-x 可讀、可執行,不可寫。r-x 同組權限。對腳本文件(如 /etc/init.d/httpd),755 確保擁有者可修改,所有人可執行,是服務啟動腳本的標準權限。
除數字模式,chmod 還支持符號模式,語法:[ugoa...][[+-=][rwxX]...][,...]
u=所有者,g=組,o=其他,a=所有(默認)。+ 增加,- 移除,= 精確設置。示例:
chmod u+x script.sh # 給所有者加執行權限
chmod go-w file.txt # 移除組和其他用戶的寫權限
chmod a=rw,ug+x file.txt # 所有人可讀寫,所有者和組額外可執行
在三組權限之外,還有三個特殊位,顯示在執行位上(用 s/S/t/T 表示):
/usr/bin/passwd 允許普通用戶修改 /etc/shadow)。/tmp 防止用戶誤刪他人文件)。四位八進制表示:chmod 4755 (Setuid+755),chmod 2775 (Setgid+775),chmod 1777 (Sticky+777)。
777。cd)或訪問其下文件需目錄的 x 權限。x;若用解釋器調用(bash script.sh)則只需 r。setfacl/getfacl 可為特定用戶/組授權,突破傳統 UGO 限制。掌握 touch、chmod 及權限位本質,能讓你精準控制文件訪問,構建安全合規的 Linux 環境。