rPMのベストプラクティスガイドを一生懸命検索し、事実上何も見つけなかった後、驚いたことに、私はコミュニティに訴えました-
インストール後に一部のユーザーとグループが存在し、ユーザーがグループのメンバーであることを確認する必要があります。このための推奨手順はありますか?
既存のrpm仕様では、必要なユーザーとグループは、useradd
で追加する前に、%preスクリプトの先頭で削除されていることがわかります。これは一般的な習慣だと言われています。どうしてこれなの? id -u
を使用してユーザーの存在をテストするよりも優れていますか?
一部のクライアントはユーザーを自分で管理したい場合があるため、rpmを実行する前にユーザーを作成します。したがって、上記のすべてを要約すると、ユーザーの存在をテストし、存在しない場合は作成するのが最善のアプローチのようです。それについて何かコメントはありますか?ありがとう。
[〜#〜] edit [〜#〜]:RHEL 5.7
これは古い質問だと思いますが、rpmスペックファイルでグループを作成する方法を見つけようとしてここに来ました。うまくいけば、以下が役立つでしょう。
グループが存在するかどうかを確認し、どのユーザーがそのグループに属しているかを確認するには、
getent group root
たとえば、グループ「root」の場合。
また、rpmスペックファイルにグループを追加する標準的な方法として、以下が役立つことがわかりました。 rpm内でユーザーとグループを作成する
[rpmスペックファイルの]%preセクションで、必要なユーザー/グループを正しい方法で作成してください(RHELパッケージでの方法の例については、「rpm -q --scripts ...」を参照してください)。または、「システムユーザー」(uid <500)などを使用したくない場合があります。
例としてrtkitを見ました
rpm -q --scripts rtkit-0.11-10.fc21.x86_64
preinstall scriptlet (using /bin/sh):
getent group rtkit >/dev/null 2>&1 || groupadd -r -g 172 rtkit
Fedora Projectにはベストプラクティスのリストがあります 。
基本的には、パッケージが特定のグループを必要とする場合、ユーザー/グループの管理はuseradd
またはgroupadd
を使用してrpmインストールスクリプトで処理し、getent
を使用して必要なユーザーまたはグループがすでに存在するかどうかを判別します。これにより、管理者はシステムのユーザー/グループを柔軟に管理できます。 LDAPなどのディレクトリサービスを介して、それ以外の場合はパッケージによって管理される可能性があります。一方、ディストリビューションでは、パッケージによって作成されるユーザーとグループにUIDとGIDを事前に割り当てて、ユーザー/グループがパッケージによってインストールされ、ローカル管理者によって管理されていない場合に、そのUIDとGIDは、同じプラットフォームを実行しているすべてのシステムで一貫しています。