rpm -e パッケージは /etc/passwd からエントリを削除しません。

rpm -e パッケージは /etc/passwd からエントリを削除しません。

私はSplunkを使っていくつかの問題に直面しました。

  1. 私はそれを使用してインストールしました。

    rpm -iv splunk-7.2.3-06d57c595b80-linux-2.6-x86_64.rpm

  2. 以下を使用して削除します。

rpm -e splunk-7.2.3-06d57c595b80.x86_64

rpm私の質問は/ etc / passwdからSplunkユーザーを削除するのはどうですか?また、viaを削除してsplunk-7.2.3-06d57c595b80-linux-2.6-x86_64.rpmも機能しませんが(インストールは)なぜrpm -qa | grep splunk実際のパッケージ名を最初に取得するのかは少し混乱しています。

このSplunk rpmカプセル化に関連していますか、それとも標準に関連していますか?

答え1

rpmパッケージは、複数のファイルとオプションのスクリプトセット(事前/インストール後の辞書/削除後の辞書/アップグレード後の確認)で構成されています。

--listオプションを使用して、パッケージに含まれているファイルを表示できます。パッケージを --erase すると削除されます。

rpm -qipl package.rpm

--scriptsを含むスクリプトの内容をダンプすることもできます。インストール/削除スクリプトの仕組みの標準化されたテンプレートや施行はあまりないため、実際にはパッケージマネージャによって異なります。ただし、パッケージの --scripts をダンプすることで、RPM がシステムに何をするかを正確に把握できるので、クリーンアップスクリプトをよりよく書くことができます。

rpm -qi --scripts package.rpm

rpm でほんの数のファイルが必要で、管理者がシステム構成を変更したくない場合や信頼できない場合は、 --noscripts を使用してインストールすることも検討できます。

答え2

パッケージとともにユーザーを削除しないことが基準です。

Thomasはコメントに良い説明を提供し、この素晴らしい文書にリンクしました。https://ma.ttias.be/on-removing-users-with-postun-in-rpm-spec-files/

しかし、別の理由があります。多くの管理者は、システムにユーザーを提供するためにLDAPまたはNISを使用します。新しいユーザーを作成するパッケージをインストールする前に、まずそのユーザーをLDAPに追加します。これが、次のコマンドを使用して新しいユーザーを作成する理由です。

getent passwd USERNAME >/dev/null || \
    useradd -r -g GROUPNAME -d HOMEDIR -s /sbin/nologin ...

つまり、ユーザーを作成する前に、パッケージは常にユーザーがすでに作成されていることを確認する必要があります。

もちろん、クライアントシステムからLDAPユーザーをまったく削除することはできません。あまりにも簡単なこともuserdel失敗する可能性があります。そのため、管理者はユーザーの管理に使用するツールを使用してユーザーを削除する必要があります。

関連情報