UPDATE:
到目前为止,没有人能够回答这个问题,我得到的答复是我预测的,我要求人们不要回复。当我要求他们提供答案的支持(证明)时……蟋蟀。然后我就投票支持它?严重地?你们中有谁投了反对票,愿意解释一下为什么投反对票吗?
在另一个人告诉我之前全部该发行版安装的用户是必需的请解释删除以下任何用户时哪些服务或功能会中断或出错:adm
games
operator
?
我想知道如何确定可以安全删除哪些用户和组。是不是就像没有进程像它们一样运行并且没有它们拥有的文件一样简单?
我使用的是CentOS8。是否有关于每个用户/组开箱即用的官方文档,它们的用途是什么,哪些只是为了它而存在,哪些是有目的的?
我发现一篇 Redhat 文章列出了“可选用户”。我认为这意味着不需要并且可以将其删除。其中之一是用户nobody
。可悲的是,删除它后我发现内核实际上需要它,我不得不把它放回去。可选的就这么多。
有许多组没有立即分配任何用户,例如sys
mem
kmem
wheel
man
。这些可以简单地删除吗?
有些组disk
tape
floppy
video
cdrom
用于授予用户对硬件的访问权限。如果我从不打算将用户分配给任何这些组,我可以删除它们,还是它们与硬件绑定并且如果删除会破坏东西?
我还发现一些类似的组utmp
utempter
ssh_keys
slocate
postdrop
没有任何用户,但拥有这些组所有权的文件。一个文件怎么可能被赋予一个没有用户可以使用的组?
我在网上阅读了有关该主题的尽可能多的内容,我看到的第一个答案是,不要担心它们,不要打扰它们。这不是我所问问题的答案。我不是在询问人们的意见是否应该删除系统不会错过的用户或组。我要求了解如何确定哪些用户和组正在使用以及哪些可以在不破坏任何内容的情况下删除。
答案1
我想知道如何确定可以安全删除哪些用户和组。是不是就像没有进程像它们一样运行并且没有它们拥有的文件一样简单?
在静态系统上,几乎 - 您还应该检查是否没有服务或 udev 规则引用它们,并且没有 cron 作业或基于计时器的作业需要它们。
在基于 Fedora 的系统(包括 RHEL 和 CentOS)上,您可以通过运行来检查保留用户/组
cat /usr/share/doc/setup*/uidgid
这会给你一些至少在某些情况下,了解给定用户和/或组的用途。特别是,它将列出许多用户和组的“所有者”包;如果您不使用相应的软件包,并且用户和/或组仍然存在于您的系统上,请随时将其删除。
有许多组没有立即分配任何用户,例如
sys
mem
kmem
wheel
man
。这些可以简单地删除吗?
其中一些用于设备,例如 /dev/kmem
,并且不应该被删除。其他的大部分现在都是历史文物,保存下来是为了避免损坏任何东西;如果您知道不需要它们,则可以将其删除(但请参见下文)。
有些组
disk
tape
floppy
video
cdrom
用于授予用户对硬件的访问权限。如果我从不打算将用户分配给任何这些组,我可以删除它们,还是它们与硬件绑定并且如果删除会破坏东西?
同样,其中一些用于设备,因此请先检查一下。
我还发现一些类似的组
utmp
utempter
ssh_keys
slocate
postdrop
没有任何用户,但拥有这些组所有权的文件。一个文件怎么可能被赋予一个没有用户可以使用的组?
这适用于系统管理员可能希望向用户授予对这些文件的访问权限的场景,其粒度比让用户本身成为系统管理员更细,或者可能适用于在运行时假定相应组的守护程序或定期运行的命令。
同样,在静态系统上,请随意删除用户和组。毕竟,如果它破坏了您的系统,您知道如何修复它;由于您运行的系统没有签订支持合同,因此您不会因此而冒影响您的支持能力的风险。
您可能遇到的主要问题是将来安装软件包时:您可能会安装一个假定存在知名用户和/或组的软件包,如果不存在则安装失败。我不确定这样的包会是符合政策,或者即使仍然存在任何此类软件包,但这是一种可能性,也是避免删除用户和组的主要原因。