Cyk*_*ker 16 dpkg users user-management passwd
怀疑某些软件包在安装时运行了脚本,这些脚本会在/etc/passwd. 如何检查哪个包创建了特定用户?
Zan*_*nna 17
如果包是通过dpkg(包括 with apt install)安装的,这将相当可靠地工作。有关在默认 Ubuntu 安装中创建的用户列表以及创建它们的包,请参阅muru 的回答。对于这些用户,此方法不会产生任何输出。
您可以使用以下命令:
grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
Run Code Online (Sandbox Code Playgroud)
替换<user>为您感兴趣的用户名,例如,systemd
它会搜索preinst和postinst脚本众所周知包dpkg的adduser或useradd命令有问题的用户,看看这包是负责创建用户。结果通过管道传送到 sed,因此它只返回包名本身而不是脚本文件的全名。
grep -RlE 递归搜索并仅打印包含匹配项的文件名,使用扩展正则表达式'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'搜索adduser或useradd你想找到在同一行命令和用户(.*将匹配他们之间的任何字符,捕捉任何命令选项)的目录中dpkg存储脚本,在文件名称以结束instsed -r 's:.*/(.*)\.[-a-z]+inst:\1:'去掉之前的所有内容,包括/完整路径中的最后一个和.preinst或.postinst扩展名感谢@muru 提出了一种比find在此处使用更简洁、更快捷的搜索方式:)
mur*_*uru 16
这里通常adduser添加的用户和组有一个重要的例外:默认情况下随 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
包 README ( /usr/share/doc/base-passwd/README) 还列出了一些 UID 在 60000-64999 范围内的用户,并说明这些是由相应的包创建的。
另见:
base-passwd14.04的源代码- 您可以在*.master文件中看到用户和组的列表。| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |