どのパッケージがユーザーを作成したかを確認する方法は?


14

一部のパッケージには、インストール時に実行されるスクリプトがあり、それがでユーザーアカウントを作成することが疑われています/etc/passwd。どのパッケージが特定のユーザーを作成したかを確認するにはどうすればよいですか?

回答:


16

パッケージがdpkg(を含むapt install)経由でインストールされた場合、これは合理的に確実に機能します。デフォルトのUbuntuインストールで作成されたユーザーのリストとそれらを作成するパッケージについては、muruの回答を参照してください。これらのユーザーの場合、このメソッドは出力を生成しません。

次のコマンドを使用できます。

grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'

<user>関心のあるユーザーの名前に置き換えます。たとえば、systemd

これにより、or コマンドと問題のユーザーが認識しているすべてのパッケージのpreinstpostinstスクリプトが検索さdpkgれ、そのユーザーの作成を担当するパッケージが表示されます。結果はsedにパイプされるため、スクリプトファイルのフルネームではなくパッケージ名のみが返されます。adduseruseradd

説明

  • grep -RlE 再帰的に検索し、一致するファイルの名前のみを出力し、拡張正規表現を使用します
  • '(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'スクリプトを保存するディレクトリ、名前が末尾で終わるファイル内で、同じ行で検索するadduseror useraddコマンドとユーザーを検索します(.*それらの間の任意の文字に一致し、コマンドオプションをキャッチします)。dpkginst
  • sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'/完全なパスの最後と.preinstor .postinst拡張子を含む前のすべてを取り除きます

findここで使用するよりもすっきりと高速な検索方法を提案してくれた@muruに感謝します:)


preinstそのスクリプトにはユーザーを作成するパッケージがいくつかあるため、同様に確認する必要があります。しかし、私はそれを受け入れますので、私はアイデアを得る。
サイカー16

おかげうん@Cyker :)私は編集します...私は、私はそれらすべてをキャッチすることができますかどうかを確認するために、今そこに探しています
Zanna

grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'単純化するためにfind -exec grep
ムル16

素晴らしいです感謝の@muru ...(今私はちょうど必要basename -sワイルドカード/正規表現を受け入れるように...)私はそれが接尾辞インスト前と後を切り落とすことができます(私はそうはadduserを持つ任意のPREINSTスクリプト見つけることができませんでしたので、肩をすくめを
ザンナ

Debianポリシーの@Zannaが推奨postinstしているので、使用するものを見つけることはまずありませんpreinst(しかし、まれなケースが存在する可能性があります)。
ムル16

15

通常のadduser-addedユーザーとグループには重要な例外があります:デフォルトでUbuntuに付属しているものです。これらはbase-passwdパッケージによって提供されます。このパッケージによって追加されたユーザーとグループのリストは、に記載されてい/usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}ます。リストは次のとおりです。

ユーザー(通常、対応するグループを持つ)

root    man     majordom    irc         gdm
daemon  lp      postgres    gnats       saned
bin     mail    www-data    nobody      klog
sys     news    backup      messagebus  syslog
sync    uucp    operator    postfix
games   proxy   list        haldaemon

グループ(対応するユーザーなし)

adm     fax     audio       staff       sshd
tty     voice   src         users       fetchmail
disk    cdrom   shadow      lpadmin     cupsys
kmem    floppy  utmp        sasl        nogroup
dialout tape    video       scanner
dip     sudo    plugdev     ssh

パッケージのREADME(/usr/share/doc/base-passwd/README)には、60000〜64999の範囲のUIDを持つ一部のユーザーがリストされており、これらはそれぞれのパッケージによって作成されていると記載されています。

こちらもご覧ください:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.