RPMのインストール中にユーザー/グループを作成するための推奨手順

RPMのインストール中にユーザー/グループを作成するための推奨手順

RPMのベストプラクティスガイドを勤勉に検索した後、何も見つからなかった後、驚くべきことにコミュニティに目を向けました。

インストール後、一部のユーザーとグループが存在すること、およびこれらのユーザーがそのグループのメンバーであることを確認する必要があります。これに推奨される手順はありますか?

既存のrpm仕様では、%preスクリプトを使用して追加する前に必要なユーザーとグループが削除されていることがわかりますuseradd。私はこれが一般的な慣行だと聞きました。なぜこれですか?テストユーザーがいるよりも優れていますかid -u

一部の顧客はユーザーを直接管理したい場合があるため、rpm を実行する前にユーザーを作成します。つまり、最善のアプローチは、ユーザーが存在するかどうかをテストし、存在しない場合は作成することです。これについて意見がありますか?ありがとうございます。

編集する:RHEL 5.7

答え1

Fedoraプロジェクトにはベストプラクティスのリストがあります。

useraddデフォルトでは、パッケージに特定のグループが必要な場合、ユーザー/グループ管理はrpmインストールスクリプトを使用して処理する必要があるか、または必要なユーザーまたはグループがすでに存在するかどうかを確認するためにgroupadd使用する必要があるというアイデアです。getentこれにより、管理者は、たとえばパッケージで管理できるLDAPなどのディレクトリサービスを介してシステムユーザー/グループを管理できる柔軟性を得ることができます。一方、ディストリビューションでは、ユーザー/グループがパッケージによってインストールされ、ローカル管理者によって管理されていない場合は、UIDとGIDをパッケージによって作成されるユーザーとグループに事前に割り当てる必要があります。プラットフォーム上のすべてのシステムで同じように実行されます。

答え2

私はこれが古い質問であることを知っていますが、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

関連情報