「ウェブアプリケーションパッケージガイドライン」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(accuracy を追加)
3行目: 3行目:
 
[[en:Web application package guidelines]]
 
[[en:Web application package guidelines]]
 
[[pt:Web application package guidelines]]
 
[[pt:Web application package guidelines]]
  +
{{Accuracy| 以下のファイルシステムレイアウトは1つよりも多くのウェブアプリにおいて不十分です。}}
 
{{Package Guidelines}}
 
{{Package Guidelines}}
 
このページではウェブアプリケーションをパッケージ化する方法を説明します。
 
このページではウェブアプリケーションをパッケージ化する方法を説明します。

2022年4月11日 (月) 12:18時点における版

この記事あるいはセクションは翻訳の途中です。
この記事またはセクションの正確性には問題があります。
理由: 以下のファイルシステムレイアウトは1つよりも多くのウェブアプリにおいて不十分です。 (議論: トーク:ウェブアプリケーションパッケージガイドライン#)

このページではウェブアプリケーションをパッケージ化する方法を説明します。

ユーザの分離

セキュリティ上の理由により、すべてのウェブアプリケーションは別々の(非特権)ユーザ(つまり、$pkgname)として実行されるべきです。

ノート: 以前は多くのウェブアプリケーションが http ユーザ/グループとして実行されていました。この場合、アプリケーションが互いのファイルを読むことができるので安全でないと考えられます。

ユーザの作成方法や、パッケージのユーザ用のファイルやフォルダーの所有権をどう扱うかについては、systemd-sysusers(8)sysusers.d(5)systemd-tmpfiles(8)tmpfiles.d(5) を参照してください。

ディレクトリ構造

ディレクトリ構造は FHS に従います。

  • /usr/share/$pkgname: アプリケーションのデータディレクトリにはウェブアプリケーションのファイルが格納されます。ファイルは root が所有しており、ゆえに $pkgname ユーザと $pkgname グループに対しては読み取り専用となります。
  • /etc/$pkgname: アプリケーションの設定ディレクトリにはウェブアプリケーションの設定ファイルが格納されます(データディレクトリへのシンボリックリンクとなります)。ここに位置するファイルは backup 配列 に含まれていなければならず、$pkgname ユーザと $pkgname グループが所有しています。
警告: 認証情報を含んでいる可能性のあるファイルは保護されていなければなりません。(つまり、システム上のいかなるユーザやグループからも読み取り可能であってはなりません。ただし、root$pkgname は例外です。)!
  • /run/$pkgname: アプリケーションのランタイムディレクトリです($pkgname ユーザと $pkgname グループが所有しています)。ソケット用に利用可能です(例えば、ソケットアクティベーションを容易にするセットアップで)。
ノート: ディレクトリのパッケージガイドラインによれば、/run はパッケージに含まれていてはいけません。tmpfiles を使って適切なパーミッションを持つディレクトリを作成してください。
  • /var/cache/$pkgname: アプリケーションのキャッシュディレクトリです($pkgname ユーザと $pkgname グループが所有しています)。このフォルダ(あるいは、この中のサブフォルダ)は、書き込み可能なキャッシュディレクトリを必要とするアプリケーション用にデータディレクトリへのシンボリックリンクとなります。.
  • /var/lib/$pkgname: アプリケーションの永続的ストレージです($pkgname ユーザと $pkgname グループが所有しています)。このフォルダ(あるいは、この中のサブフォルダ)は、永続的なストレージディレクトリを必要とするアプリケーション用にデータディレクトリへのシンボリックリンクとなります。