Man page - file-hierarchy(7)
Packages contas this manual
- systemd-ask-password-wall.path(8)
- journald@.conf(5)
- systemd-rfkill.service(8)
- systemd-pcrlock-secureboot-authority.service(8)
- org.freedesktop.locale1(5)
- systemd-journald-audit.socket(8)
- bootup(7)
- systemd-hostnamed(8)
- system.conf.d(5)
- os-release(5)
- systemd.exec(5)
- networkd.conf(5)
- systemd-hibernate-resume-generator(8)
- systemd-timedated.service(8)
- networkctl(1)
- systemd-fsck@.service(8)
- systemd-tmpfiles(8)
- systemd-inhibit(1)
- systemd.net-naming-scheme(7)
- systemd-tmpfiles-clean.timer(8)
- systemd-ssh-proxy(1)
- systemd-user-sessions(8)
- logind.conf(5)
- org.freedesktop.network1(5)
- systemd-networkd-wait-online.service(8)
- systemd.kill(5)
- systemd.time(7)
- systemd-ask-password(1)
- systemd.journal-fields(7)
- systemd-socket-proxyd(8)
- pstore.conf.d(5)
- systemd-networkd.service(8)
- systemd-pcrlock-firmware-code.service(8)
- systemd-storagetm.service(8)
- systemd-growfs-root.service(8)
- systemd-ask-password-wall.service(8)
- systemd-creds(1)
- systemd-remount-fs.service(8)
- journald.conf(5)
- systemd-confext.service(8)
- systemd-tty-ask-password-agent(1)
- systemd-binfmt(8)
- systemd-pcrlock-make-policy.service(8)
- systemd-timedated(8)
- systemd-journald.service(8)
- systemd-pcrlock-file-system.service(8)
- pam_systemd_loadkey(8)
- systemd-gpt-auto-generator(8)
- daemon(7)
- systemd-tpm2-setup(8)
- hostnamectl(1)
- systemd-sleep(8)
- systemd-pcrmachine.service(8)
- systemd-bsod.service(8)
- systemd.unit(5)
- systemd-sysctl.service(8)
- systemd-pstore(8)
- binfmt.d(5)
- systemd-network-generator(8)
- systemd-poweroff.service(8)
- systemd-umount(1)
- systemd-tpm2-generator(8)
- systemd-rfkill.socket(8)
- systemd-localed.service(8)
- systemd.path(5)
- systemd-cgls(1)
- journald.conf.d(5)
- systemd-journald@.service(8)
- systemd-sysusers.service(8)
- systemd-user.conf(5)
- systemd-pcrfs@.service(8)
- systemd-measure(1)
- systemd.offline-updates(7)
- systemd-logind(8)
- systemd-machine-id-setup(1)
- systemd-volatile-root.service(8)
- systemd.service(5)
- user@.service(5)
- systemd.target(5)
- systemd-udev-settle.service(8)
- systemd-fsck(8)
- systemd-fsck-usr.service(8)
- user-runtime-dir@.service(5)
- systemd-user-runtime-dir(5)
- systemd-binfmt.service(8)
- systemd-initctl.socket(8)
- systemd-fsck-root.service(8)
- systemd-debug-generator(8)
- file-hierarchy(7)
- systemd-networkd-wait-online(8)
- systemd-volatile-root(8)
- systemd-reboot.service(8)
- systemd-hostnamed.service(8)
- networkd.conf.d(5)
- initrd-release(5)
- systemd.index(7)
- systemd-shutdown(8)
- systemd-update-done.service(8)
- systemd-system-update-generator(8)
- localectl(1)
- systemd.v(7)
- systemd-pcrfs-root.service(8)
- systemd.image-policy(7)
- systemd-backlight@.service(8)
- systemd-battery-check(8)
- systemd-rc-local-generator(8)
- systemd-sysctl(8)
- systemd-kexec.service(8)
- extension-release(5)
- systemd-journald.socket(8)
- systemd-random-seed.service(8)
- systemd-tmpfiles-setup-dev-early.service(8)
- systemd-modules-load(8)
- systemd.network(5)
- systemd-getty-generator(8)
- systemd-storagetm(8)
- systemd.generator(7)
- systemd.special(7)
- systemd-tmpfiles-setup-dev.service(8)
- systemd-notify(1)
- systemd-suspend.service(8)
- localtime(5)
- systemd-journald-varlink@.socket(8)
- systemd-pcrphase.service(8)
- systemd-quotacheck.service(8)
- systemd-pcrlock-firmware-config.service(8)
- systemd-journald@.socket(8)
- systemd-halt.service(8)
- systemd-sysext.service(8)
- systemd-delta(1)
- 30-systemd-environment-d-generator(8)
- systemd-ask-password-console.service(8)
- systemd-confext(8)
- systemd-initctl.service(8)
- iocost.conf(5)
- systemd-logind.service(8)
- systemd-mkswap@.service(8)
- hostname(5)
- busctl(1)
- org.freedesktop.portable1(5)
- systemd-localed(8)
- systemd-id128(1)
- systemd-sleep.conf(5)
- systemd.environment-generator(7)
- systemd-growfs(8)
- systemd(1)
- systemd.device(5)
- systemd-firstboot(1)
- systemd-hibernate-clear.service(8)
- systemd.swap(5)
- tmpfiles.d(5)
- systemd-cat(1)
- systemd-random-seed(8)
- locale.conf(5)
- systemd-detect-virt(1)
- systemd-sysext(8)
- systemd.scope(5)
- systemd-growfs@.service(8)
- systemd-fstab-generator(8)
- systemd-escape(1)
- systemd-network-generator.service(8)
- systemd-tmpfiles-setup.service(8)
- systemd-tmpfiles-clean.service(8)
- sleep.conf.d(5)
- systemd-boot-check-no-failures(8)
- org.freedesktop.systemd1(5)
- systemd-suspend-then-hibernate.service(8)
- run0(1)
- systemd-mount(1)
- systemd.slice(5)
- systemd-user-sessions.service(8)
- systemd-makefs@.service(8)
- journalctl(1)
- systemd-makefs(8)
- systemd-stdio-bridge(1)
- systemd-ssh-generator(8)
- systemd-update-done(8)
- systemd-xdg-autostart-generator(8)
- systemd-soft-reboot.service(8)
- systemctl(1)
- org.freedesktop.machine1(5)
- systemd.timer(5)
- systemd-journald(8)
- systemd-bsod(8)
- systemd-tpm2-setup-early.service(8)
- systemd-hybrid-sleep.service(8)
- systemd-analyze(1)
- smbios-type-11(7)
- systemd-environment-d-generator(8)
- systemd-networkd-wait-online@.service(8)
- org.freedesktop.login1(5)
- systemd-rfkill(8)
- timedatectl(1)
- systemd-hibernate-resume(8)
- systemd-sysv-generator(8)
- kernel-install(8)
- systemd-sysusers(8)
- systemd.netdev(5)
- systemd-journald-dev-log.socket(8)
- systemd-vpick(1)
- machine-id(5)
- systemd-pcrphase-initrd.service(8)
- systemd.mount(5)
- systemd-remount-fs(8)
- systemd.socket(5)
- sysusers.d(5)
- systemd.directives(7)
- rc-local.service(8)
- systemd-run-generator(8)
- systemd-battery-check.service(8)
- systemd-pstore.service(8)
- capsule@.service(5)
- logind.conf.d(5)
- systemd-pcrlock-secureboot-policy.service(8)
- environment.d(5)
- systemd-pcrphase-sysinit.service(8)
- org.freedesktop.hostname1(5)
- modules-load.d(5)
- systemd.automount(5)
- systemd-firstboot.service(1)
- systemd-boot-check-no-failures.service(8)
- loginctl(1)
- systemd.syntax(7)
- systemd-initctl(8)
- kernel-command-line(7)
- systemd.preset(5)
- systemd-pcrlock-machine-id.service(8)
- systemd-run(1)
- systemd-system.conf(5)
- systemd-machine-id-commit.service(8)
- user.conf.d(5)
- systemd.system-credentials(7)
- pstore.conf(5)
- systemd-cgtop(1)
- sysctl.d(5)
- systemd-tpm2-setup.service(8)
- systemd-pcrextend(8)
- systemd-modules-load.service(8)
- systemd.pcrlock.d(5)
- systemd-networkd(8)
- systemd-socket-activate(1)
- systemd-path(1)
- systemd-backlight(8)
- org.freedesktop.timedate1(5)
- systemd-quotacheck(8)
- systemd.resource-control(5)
- systemd-ask-password-console.path(8)
- varlinkctl(1)
- systemd-ac-power(1)
- systemd-hibernate-resume.service(8)
- systemd.pcrlock(5)
- machine-info(5)
- systemd-hibernate.service(8)
- systemd-pcrlock(8)
apt-get install systemd
Available languages:
en zh_TW zh_CN deManual
| FILE-HIERARCHY(7) | file-hierarchy | FILE-HIERARCHY(7) |
NAME
file-hierarchy - 檔案系統層次結構概覽
描述
對於使用 systemd(1) 的作業系統來說, 其檔案系統層次結構遵守 File System Hierarchy[1] 與 hier(7) 規範。 本手冊僅描述一個符合上述規範的子集, 該子集較小也較現代, 並且更加嚴格的遵守上述規範。
許多本文所描述的路徑都可以透過 systemd-path(1) 工具來查詢。
總體結構
/
/boot
/etc
/home
/root
/srv
/tmp
執行時資料
/run
/run/log
/run/user
發行商提供的作業系統資源
/usr
/usr/bin
/usr/include
/usr/lib
/usr/lib/arch-id
# systemd-path system-library-arch
/usr/share
/usr/share/doc
/usr/share/factory/etc
/usr/share/factory/var
應該持久儲存的易變系統資料
/var
/var/cache
/var/lib
/var/log
/var/spool
/var/tmp
虛擬檔案系統
/dev
/dev/shm
/proc
/proc/sys
/sys
相容性軟連線
/bin, /sbin, /usr/sbin
/lib
/lib64
/var/run
家目錄
使用者應用如果想要在使用者的家目錄中儲存檔案或目錄,那麼應該遵守下面的規範。 注意,下面的某些目錄雖然比較脆弱, 但是已經被 XDG Base Directory Specification[3] 標準化了。 其他為高層次使用者資源定義的位置參見 xdg-user-dirs[5] 文件。
~/.cache
~/.config
~/.local/bin
~/.local/lib
~/.local/lib/arch-id
~/.local/share
非特權程序的寫許可權
非特權程序通常對大多數目錄都沒有寫許可權。
但對於普通使用者的非特權程序來說,可以寫入 /tmp, /var/tmp, /dev/shm, $HOME (通常位於 /home 下), $XDG_RUNTIME_DIR (通常位於 /run/user 下) 目錄。
而對於系統的非特權程序來說,則僅可以寫入 /tmp, /var/tmp, /dev/shm 目錄。 如果系統的非特權程序需要在 /var 或 /run 目錄中建立一個專屬的、可寫入的目錄, 那麼可以在守護程序丟棄特權之前先建立該目錄,或者透過 tmpfiles.d(5) 在系統啟動時先建立該目錄, 或者透過服務單元檔案中的 RuntimeDirectory= 指令(詳見 systemd.unit(5) 手冊)建立該目錄。
檔案型別
Unix檔案系統支援不同的檔案節點型別: 普通檔案、目錄、軟連線、字元裝置、塊裝置、 套接字(socket)、管道(FIFO)。
強烈建議僅將裝置檔案放置在 /dev 目錄中、 僅將套接字(socket)與管道(FIFO)檔案放置在 /run 目錄中。 而普通檔案、目錄、軟連線則可以放置在所有目錄中。
系統軟體包
系統軟體包的開發者應該嚴格遵守下面的檔案佈局規範。 下面列出了發行商提供的系統軟體包中各類檔案的推薦位置:
Table 1. 系統軟體包中靜態檔案的推薦位置
| 目錄 | 用途 |
| /usr/bin | 應該出現在 $PATH 搜尋路徑中且與體系結構無關的可執行檔案。不要將軟體包內部使用的可執行檔案或非命令列工具(例如守護程序之類)放到此目錄中。因為眾多的軟體包都使用此目錄,所以必須選擇獨一無二的可執行檔名稱,以避免衝突。 |
| /usr/lib/arch-id | 全域性通用的體系結構相關的共享庫。因為眾多的軟體包都使用此目錄,所以必須選擇獨一無二的共享庫名稱,以避免衝突。 |
| /usr/lib/package | 發行商提供的該軟體包專屬的體系結構無關的靜態資源(可執行檔案、庫檔案、只讀資料)。 |
| /usr/lib/arch-id/package | 發行商提供的體系結構相關的該軟體包專屬的資源(通常不包括軟體包內部使用的可執行檔案)。 |
| /usr/include/package | 該軟體包提供的共享庫的 C/C++ 標頭檔案。 |
發行商提供的其他靜態資源應該存放在
/usr/share 目錄下,
具體的存放位置應該遵守其他的相關規範。
存放軟體包執行時資料以及配置檔案的相關目錄如下:
Table 2. 系統軟體包的執行時資料以及配置檔案的推薦位置
| 目錄 | 用途 |
| /etc/package | 特定於該系統的配置檔案。如果該目錄不存在,那麼軟體包應該儘可能回退到安全的預設設定,而不應該罷工。可選地,可以設定一個 tmpfiles.d(5) 配置檔案,以實現在系統啟動過程中,從 /usr/share/factory 目錄中複製("C"指令)或軟連線("L"指令)所需的檔案到該目錄中。 |
| /run/package | 軟體包的執行時資料。因為該目錄會在系統啟動過程中被清空,所以軟體包必須有許可權在此目錄中建立子目錄及檔案。可選的,可以設定一個 tmpfiles.d(5) 配置檔案,以實現在系統啟動過程中自動在此目錄中建立所需的子目錄及檔案。或者可選的,在服務單元檔案中使用 RuntimeDirectory= 指令(詳見 systemd.unit(5) 手冊)以達到上述目的。 |
| /run/log/package | 軟體包的執行時日誌。因為該目錄會在系統啟動過程中被清空,所以軟體包必須有許可權在此目錄中建立子目錄及檔案。 |
| /var/cache/package | 軟體包的持久快取。清空該目錄必須不影響軟體包的正常工作(但軟體包可以花費額外的時間重建這些快取)。軟體包必須有許可權在此目錄中建立子目錄及檔案。 |
| /var/lib/package | 軟體包的持久專屬資料。存放無法明確分類的持久資料。軟體包必須有許可權在此目錄中建立子目錄及檔案,因為在系統啟動時該目錄可能為空。可選的,可以設定一個 tmpfiles.d(5) 配置檔案,以實現在系統啟動過程中自動在此目錄中建立所需的子目錄及檔案。 |
| /var/log/package | 軟體包的持久日誌資料。軟體包必須有許可權在此目錄中建立子目錄及檔案,因為在系統啟動時該目錄可能為空。 |
| /var/spool/package | 軟體包的持久佇列資料。軟體包必須有許可權在此目錄中建立子目錄及檔案,因為在系統啟動時該目錄可能為空。 |
使用者軟體包
對於專屬於特定使用者的軟體包, 其存貯在使用者家目錄中的檔案必須嚴格遵守下面的檔案佈局規範。 注意,當安裝屬於系統範圍的軟體包時, 應該遵守前面"系統軟體包"小節的佈局規範。 下面列出了當使用者在其家目錄中安裝專屬軟體包時, 由發行商提供的各種型別的檔案在使用者家目錄中應該存放的位置:
Table 3. 使用者軟體包中靜態檔案的推薦位置
| 目錄 | 用途 |
| ~/.local/bin | 應該出現在 $PATH 搜尋路徑中且與體系結構無關的可執行檔案。不要將軟體包內部使用的可執行檔案或非命令列工具(例如守護程序之類)放到此目錄中。因為眾多的軟體包都使用此目錄,所以必須選擇獨一無二的可執行檔名稱,以避免衝突。 |
| ~/.local/lib/arch-id | 全域性通用的體系結構相關的共享庫。因為眾多的軟體包都使用此目錄,所以必須選擇獨一無二的共享庫名稱,以避免衝突。 |
| ~/.local/lib/package | 發行商提供的該軟體包專屬的體系結構無關的靜態資源(可執行檔案、庫檔案、只讀資料)。 |
| ~/.local/lib/arch-id/package | 發行商提供的體系結構相關的該軟體包專屬的資源(通常不包括軟體包內部使用的可執行檔案)。 |
發行商提供的其他靜態資源應該存放在
~/.local/share 目錄下,
具體的存放位置應該遵守其他的相關規範。
存放軟體包執行時資料以及配置檔案的相關目錄如下:
Table 4. 使用者軟體包的執行時資料以及配置檔案的推薦位置
| 目錄 | 用途 |
| ~/.config/package | 特定於該使用者的配置檔案。如果該目錄不存在,那麼軟體包必須能夠安全的回退到預設設定,而不能罷工。 |
| $XDG_RUNTIME_DIR/package | 特定於該使用者的執行時資料。 |
| ~/.cache/package | 軟體包的持久快取。清空該目錄必須不影響軟體包的正常工作(但軟體包可以花費額外的時間重建這些快取)。軟體包必須有許可權在此目錄中建立子目錄及檔案。 |
參見
systemd(1),
hier(7), systemd-path(1), systemd-gpt-auto-generator(8),
sysctl.d(5), tmpfiles.d(5), pkg-config(1),
systemd.unit(5)
NOTES
- 1.
- File System Hierarchy
- 2.
- IEEE Std 1003.1
- 3.
- XDG Base Directory Specification
- 4.
- Multiarch Architecture Specifiers (Tuples)
- 5.
- xdg-user-dirs
跋
本頁面中文版由中文 man 手冊頁計劃提供。
翻譯人員:金步國
金步國作品集:http://www.jinbuguo.com
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
| systemd 231 |