Web 应用程序软件包指南
Arch 软件包指南
32 位 – CLR – CMake – 交叉编译 – DKMS – Eclipse 插件 – Electron – 字体 – Free Pascal – GNOME – Go – Haskell – Java – KDE – 内核模块 – Lisp – Meson – MinGW – Node.js – 非自由软件 – OCaml – Perl – PHP – Python – R – Ruby – Rust - 安全 – Shell – VCS – Web – Wine
此页面描述了如何打包 Web 应用程序。
独立的用户
出于安全原因,每个 Web 应用程序都应以单独的(非特权)用户(即 $pkgname
)身份运行。
注意: 传统上,许多 Web 应用程序都以
http
用户/组身份运行,这可能被认为是不安全的,因为在这种情况下,应用程序可以读取彼此的文件。有关如何在软件包中创建用户以及处理该用户的文件的所有权的详细信息,请参阅 systemd-sysusers(8)、 sysusers.d(5)、 systemd-tmpfiles(8) 和 tmpfiles.d(5) 手册页。
目录结构
布局遵循 FHS。
/usr/share/$pkgname
:应用程序的数据目录保存 Web 应用程序的文件。文件归root
所有,因此对于应用程序用户和组$pkgname
是只读的。/etc/$pkgname
:应用程序的配置目录保存应用程序的配置文件(符号链接到数据目录)。位于此处的文件必须转到 backup 数组,并且归用户和组$pkgname
所有。
- 警告: 可能包含身份验证信息的文件必须受到保护(即,系统上任何其他用户或组都不可读取,除了
root
和$pkgname
)!
/run/$pkgname
:应用程序的运行时目录(归用户和组$pkgname
所有)。它可用于套接字(例如,在方便 套接字激活 的设置中)。
/var/cache/$pkgname
:应用程序的缓存目录(归用户和组$pkgname
所有)。它(或其中的子文件夹)符号链接到数据目录,用于需要可写缓存目录的应用程序。/var/lib/$pkgname
:应用程序的持久存储(归用户和组$pkgname
所有)。它(或其中的子文件夹)符号链接到数据目录,用于需要持久存储目录的应用程序。