web-dev-qa-db-ja.com

Debianパッケージファイルの所有者に適切なUIDとGIDは何ですか?

私は現在、独自の適性リポジトリを構築しており、すべてのパッケージが可能な限り多くのLintianチェックに合格するようにしています。現在、「wrong-file-owner-uid-or-gid」(初期情報 ここ 、より詳細な情報 ここ )に苦労しており、適切な数がわかりません。 UIDとGIDに使用するのはです。

現在、AWSUbuntuマシンでパッケージをビルドしています。

$ id ubuntu
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(Sudo),29(audio),30(dip),44(video),46(plugdev),102(netdev)

これらはすべて、マシンのデフォルトです。提供される最初のリンクは次のように述べています。

許可され、グローバルに割り当てられたIDのセットは、0〜99、64000〜64999、および65534の範囲で構成されます。

これらの範囲のうち、2番目のリンクは次のように述べています。

0-99:すべてのDebianシステムで同じ、Debianプロジェクトによってグローバルに割り当てられます。これらのIDは、すべてのDebianシステムのpasswdファイルとgroupファイルに表示されます。この範囲の新しいIDは、base-passwdパッケージが更新されると自動的に追加されます。

静的に割り当てられた単一のuidまたはgidを必要とするパッケージは、これらのいずれかを使用する必要があります。それらのメンテナは、base-passwdメンテナにIDを要求する必要があります。

60000-64999:Debianプロジェクトによってグローバルに割り当てられていますが、オンデマンドでのみ作成されます。 IDは一元的かつ静的に割り当てられますが、実際のアカウントはユーザーのシステムでオンデマンドでのみ作成されます。

これらのIDは、あいまいなパッケージ、または静的に割り当てられたIDを多数必要とするパッケージ用です。これらのパッケージは、必要に応じて/ etc/passwdまたは/ etc/groupにアカウントをチェックして作成する必要があります(この機能がある場合はadduserを使用)。さらに割り当てが必要になる可能性が高いパッケージには、拡張の余地を与えるために、割り当ての後に「穴」を残す必要があります。

65534:ユーザーがいません。対応するgidは、グループnogroupを参照します。

誰かがDebianパッケージのこのLintianチェックに準拠する方法を説明するのを手伝ってもらえますか?ユーザーのUIDとGIDを変更するのと同じくらい簡単ですか?選択するのに最も適切なID番号は何ですか?

3
Mike Roberts

別のUIDまたはGIDが特に必要でない限り、最適な値はそれぞれ0と0です。パッケージはroot、またはrootの権限を持つ誰かによってインストールされます。通常、それらに含まれるファイルは、ファイルが別のユーザーまたはグループ(おそらく構成ファイル)によって所有される特別な理由がない限り、rootによって所有されることが期待されます。私の推測では、あなたのdebian/rulesが実行されていません dh_fixperms

dh_fixperms is a debhelper program that is responsible for setting the
permissions of files and directories in package build directories to a
sane state -- a state that complies with Debian policy.

dh_fixperms makes all files in usr/share/doc in the package build
directory (excluding files in the examples/ directory) be mode 644. It
also changes the permissions of all man pages to mode 644. It makes all
files be owned by root, and it removes group and other write permission
from all files.
2
muru