在我的 Ubuntu 9.10 系统上,有一个shadow
系统组。似乎根本没有任何用户分配给该组。我能找到属于该组的唯一文件是/etc/shadow
和/etc/gshadow
.
我知道这些文件的目的是单独存储密码,让那些passwd
出于其他原因仍可能想要访问的普通用户无法访问。
但是shadow
组的目的是什么?
我对此感到好奇的原因是因为我正在考虑将其配置nsswitch.conf
为将其存储在其他地方,并且想知道是否有任何东西实际上正在尝试使用组凭据访问shadow
数据库。shadow
可能没有任何用户,但肯定有软件需要能够读取该文件。请注意,
passwd
它本身是 setuid root,因此不需要它。不,
shadow
组应该没有用户,但是影子密码需要这个组才能工作。我想这里的想法是让文件只能由 root 和 root 访问。您可能在 root 组中有额外的用户,这就是创建单独用户组的原因。
在我的 Ubuntu 机器上,有许多命令是 set-group-id to shadow。这为他们提供了准确且仅读取两个影子文件的特权(它们被分组到影子,并且只有组可读)。
如果您的服务只需要能够读取一个或另一个影子文件,只需将其设置组 ID 设置为影子。这有点与上面的建议相反 - 并不是有很多其他人在组 root 中,而是按照惯例(和文件权限),这个组只授予您对这两个资源的访问权限。