
makefileでは、以下のように「install」コマンドを使用しました。
コマンド:'install -o 1010 -g 100 -m 0755 -D パス'
ユーザー名とグループ名をチェックする代わりに、uid と gid をチェックしたいと思います。
次のシナリオを考えてみましょう。
ステップ1:
システム 1: UID 1010 に対応するユーザーは「XXXX」です。「システム 1」を使用して RPM インストーラーを作成します。
ステップ2:
システム 2: UID 1010 に対応するユーザーは「YYYY」です。RPM ファイルのインストール中に、「警告: ユーザー XXXX が存在しません - root を使用しています」という警告メッセージが表示されます。
このステップでは、RPMインストーラーが正常にインストールされるためには、ログインしたユーザーのUIDが「1010」に等しい必要があると想定しています。しかし、実際には、RPMインストーラーは、ユーザー名がインストールシステムと同じであると想定しています。
答え1
そうですね、LDAP のようなものを使用していない限り、異なるマシン間で uid/oid/gid は異なる値を持つことができます。その場合でも、システムで定義されているユーザーには独自の ID があります。ユーザーが別のマシンに存在するという保証はありません。
おそらく、ユースケースをさらに詳しく説明したほうがよいでしょうか?
答え2
%files
RPM ファイルのセクションを使用して.spec
、インストールされたシステム (質問のシステム 2) で期待される所有権を設定します。
%pre
RPM.spec
ファイルのセクションを使用して、インストールされたシステム (質問のシステム 2) に予期されるユーザーとグループが実際に存在するかどうかを確認することもできます。
%files
# Set file permissions and ownership
%pre
# Check if expected user 'myuser' exists. If not, exit with an error.
# Check if expected group 'mygroup' exists. If not, exit with an error
さらに詳しくrpm.org。