「ウェブアプリケーションパッケージガイドライン」の版間の差分
ナビゲーションに移動
検索に移動
Kusanaginoturugi (トーク | 投稿記録) (→ディレクトリ構造: リンクを修正) |
(→ユーザの分離: 翻訳) |
||
5行目: | 5行目: | ||
{{Package Guidelines}} |
{{Package Guidelines}} |
||
このページではウェブアプリケーションをパッケージ化する方法を説明します。 |
このページではウェブアプリケーションをパッケージ化する方法を説明します。 |
||
− | == |
+ | == ユーザの分離 == |
+ | セキュリティ上の理由により、すべてのウェブアプリケーションは別々の(非特権)ユーザ(つまり、{{ic|''$pkgname''}})として実行されるべきです。 |
||
− | For security reasons, every web application should be run as a separate (unprivileged) user (i.e. {{ic|''$pkgname''}}). |
||
+ | {{Note|以前は多くのウェブアプリケーションが {{ic|http}} ユーザ/グループとして実行されていました。この場合、アプリケーションが互いのファイルを読むことができるので安全でないと考えられます。}} |
||
− | {{Note| Traditionally, many web applications were run as the {{ic|http}} user/group, which can be considered unsafe, as in such a scenario applications can read each other's files.}} |
||
− | + | ユーザの作成方法や、パッケージのユーザ用のファイルやフォルダーの所有権をどう扱うかについては、{{man|8|systemd-sysusers}} や {{man|5|sysusers.d}}、{{man|8|systemd-tmpfiles}}、{{man|5|tmpfiles.d}} を参照してください。 |
|
==ディレクトリ構造== |
==ディレクトリ構造== |
2022年4月11日 (月) 10:25時点における版
パッケージ作成ガイドライン
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
このページではウェブアプリケーションをパッケージ化する方法を説明します。
ユーザの分離
セキュリティ上の理由により、すべてのウェブアプリケーションは別々の(非特権)ユーザ(つまり、$pkgname
)として実行されるべきです。
ユーザの作成方法や、パッケージのユーザ用のファイルやフォルダーの所有権をどう扱うかについては、systemd-sysusers(8) や sysusers.d(5)、systemd-tmpfiles(8)、tmpfiles.d(5) を参照してください。
ディレクトリ構造
The layout follows the FHS.
/usr/share/$pkgname
: The application's data directory holds the files of the web application. Files are owned byroot
and are therefore readonly to the application user and group$pkgname
./etc/$pkgname
: The configuration directory of the application holds configuration files for the application (symlinked to the data directory). Files located here have to go to the backup array and are owned by the user and group$pkgname
.
/run/$pkgname
: The runtime directory of the application (owned by the user and group$pkgname
). It can be used for sockets (e.g. in setups facilitating socket activation).
/var/cache/$pkgname
: The cache directory of the application (owned by the user and group$pkgname
). It (or subfolders in it) is symlinked to the data directory for applications requiring writable cache directories./var/lib/$pkgname
: The persistent storage of the application (owned by the user and group$pkgname
). It (or subfolders in it) is symlinked to the data directory for applications requiring persistent storage directories.