Linux 文件系統層次標準定義了目錄樹的組織規範。理解每個頂級目錄的職責、掛載點規劃、關鍵子目錄結構,是系統規劃、故障排查、安全加固的基石。
| 目錄 | 核心職責 | 是否獨立分區建議 | 關鍵子目錄/文件 | |
|---|---|---|---|---|
/ | 根目錄,掛載點核心,包含啟動核心文件 | 是 (通常 20-50GB) | /etc, /bin, /sbin, /lib, /dev | |
/bin | 用戶基本命令 (ls, cp, mv, bash, systemd 等) | 否 (屬根分區) | → /usr/bin (現代發行版合併) | |
/sbin | 系統管理命令 (fdisk, mount, ip, systemctl 等) | 否 | → /usr/sbin | |
/boot | 內核、initramfs、GRUB 配置 | 建議獨立 (1-2GB, ext4) | vmlinuz-*, initramfs-*, grub2/ | |
/dev | 設備節點 (由 udev 動態管理) | 否 (tmpfs/devtmpfs) | sda, tty*, null, zero | |
/etc | 系統全局配置文件 (純文本) | 否 (屬根分區) | passwd, fstab, ssh/, sysconfig/, nginx/ | |
/home | 普通用戶家目錄 | 強烈建議獨立 (大容量, 配額, 加密) | /home/user | |
/lib, /lib64 | 核心庫、內核模塊 | 否 | modules/, ld-linux.so* | |
/media, /mnt | 臨時掛載點 (光盤、U盤、NFS) | 否 | ||
/opt | 第三方獨立軟件包 (自包含目錄) | 可選獨立 | /opt/google/chrome, /opt/oracle | |
/proc | 內核運行時信息虛擬文件系統 (零磁盤佔用) | 否 (procfs) | cpuinfo, meminfo, /proc/PID/ | |
/root | root 用戶家目錄 | 否 (屬根分區) | ||
/run | 運行時變數數據 (PID、Socket、鎖、自啟動服務狀態) | 否 (tmpfs) | /run/systemd/, /run/nginx.pid | |
/srv | 服務數據目錄 (Web根、FTP根、Git倉庫) | 建議獨立 | /srv/www, /srv/git, /srv/ftp | |
/tmp | 臨時文件 (重啟清理、所有用戶可寫、Sticky位) | 可選獨立 (tmpfs 或磁盤) | ||
/usr | 用戶空間只讀數據 (命令、庫、文檔、源碼) | 建議獨立 (大容量, 只讀掛載增強安全) | /usr/bin, /usr/lib, /usr/share, /usr/src, /usr/local | |
/var | 可變數據文件 (日志、緩存、郵件、數據庫、鎖) | 強烈建議獨立 (大容量, 配額, noexec) | /var/log, /var/cache, /var/lib, /var/spool, /var/www |
/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow:用戶/組數據庫,權限 644/600/644/600。/etc/fstab:啟動掛載表,錯誤導致進入緊急模式。/etc/ssh/sshd_config:SSH 服務核心配置,權限 600。/etc/sysconfig/ (RHEL系):網絡、鍵盤、時區、防火牆等服務配置。/etc/systemd/system/:系統級單元文件覆蓋目錄。/var/log/messages / /var/log/syslog:系統核心日志。/var/log/secure / /var/log/auth.log:認證授權日志 (SSH、sudo)。/var/log/dmesg:內核環形緩衝區啟動信息。/var/log/audit/audit.log:SELinux/Auditd 審計日志。/var/log/nginx/, /var/log/httpd/, /var/log/mysql/。/proc/cpuinfo、/proc/meminfo、/proc/loadavg、/proc/uptime:硬件/負載信息。/proc/PID/:進程虛擬文件系統 (cmdline, environ, fd/, maps, status, limits, cwd, exe)。/proc/sys/:內核參數運行時調整 (sysctl -w 持久化寫入 /etc/sysctl.d/)。/proc/filesystems、/proc/mounts、/proc/partitions:文件系統/掛載/分區信息。| 前綴 | 類型 | 示例 | 主設備號 |
|---|---|---|---|
sd | SCSI/SATA/USB 磁碟 | sda, sda1 | 8 |
hd | IDE 磁碟 (舊) | hda | 3 |
nvme | NVMe SSD | nvme0n1, nvme0n1p1 | 259 |
tty | 虛擬終端 | tty1~tty63 | 4 |
ttyS | 串口 | ttyS0~ttyS3 | 4, 64 |
pty | 偽終端主/從 | ptmx, pts/0 | 5, 136 |
loop | 回環設備 | loop0~loop7 | 7 |
md | RAID 設備 | md0 | 9 |
dm | Device Mapper (LVM/加密) | dm-0 | 253 |
null/zero/full/random/urandom | 特殊字符設備 | 1, 5 |
# 典型生產服務器分區方案 (500GB SSD)
/dev/nvme0n1p1 1G /boot ext4 defaults 0 0
/dev/nvme0n1p2 4G swap swap sw 0 0
/dev/nvme0n1p3 50G / ext4 defaults,noatime 0 1
/dev/nvme0n1p4 100G /var ext4 defaults,noatime,nosuid 0 2
/dev/nvme0n1p5 50G /usr ext4 defaults,noatime,ro 0 2
/dev/nvme0n1p6 200G /home ext4 defaults,noatime,nodev,usrquota,grpquota 0 2
/dev/nvme0n1p7 50G /srv ext4 defaults,noatime,nosuid 0 2
tmpfs 4G /tmp tmpfs defaults,nosuid,nodev,noexec,size=4G 0 0
關鍵掛載選項:
noatime:禁用訪問時間更新,顯著減少元數據寫入,提升 SSD 壽命與性能。nosuid:禁止 SUID/SGID 生效,防提權。nodev:禁止解析設備節點。noexec:禁止執行二進制文件 (適用 /tmp, /var, /home 非腳本目錄)。ro:只讀掛載 (/usr 升級時需重掛載 rw)。usrquota,grpquota:啟用磁盤配額。
# ls -l 首字符識別
- 普通文件
d 目錄
l 符號鏈接
b 塊設備
c 字符設備
p 命名管道
s Socket
# file 命令深度識別
file /bin/bash
# /bin/bash: ELF 64-bit LSB shared object, x86-64, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, stripped
/etc/fstab 語法檢查 (mount -a)、/boot 空間足夠 (內核升級需 ~100MB)、/etc/passwd/shadow 一致性 (pwck, grpck)。df -hT / df -i 磁盤/inode、du -sh /var/log/* 日志增長、ls -ld /tmp /var/tmp Sticky 位、find / -perm -4000 -newer /etc/baseline 新增 SUID。dmesg -T 內核錯誤、journalctl -xe 系統日志、ls -l /proc/PID/fd/ 文件描述符洩漏、lsof -p PID 打開文件/端口。chmod 600 /etc/ssh/sshd_config、chmod 640 /etc/sudoers、chattr +i /etc/passwd /etc/shadow (謹慎)、auditctl -w /etc/passwd -p wa 審計關鍵文件。解決 NTP 錯誤:no server suitable for synchronization found
利用 /proc 恢復被誤刪但仍被進程佔用的文件:lsof 定位 fd 並拷貝還原
ADSL 電話線干擾導致頻繁掉線排查實錄:路由器無辜、佈線才是兇手
Linux 檔案時間屬性深度解析:atime、mtime、ctime 與「建立時間」迷思
Linux 防火牆構建實戰:netfilter/iptables 核心機制與規則配置全解析
Linux 進階隱藏技術深度解析:檔案、行程與模組隱藏原理與實作
bzip2 Data integrity error when decompressing:檔案損壞唯一解是重新下載/傳輸