在 Linux 中,是否可以让用户从属于 root 以外的用户?

在 Linux 中,是否可以让用户从属于 root 以外的用户?

我想在 Linux 中创建从属于另一个用户的用户。我的意思是,我希望上级用户以两种方式与下级用户相关:

  • 上级用户必须能够以相同的权限访问下级用户的所有文件
  • 上级用户必须能够su对这些下级用户 无需输入这些用户的密码,类似于 root 可以su 向任何具有登录 shell 的用户

这可能吗?如果可以,怎么做?我知道我可以用小组来处理第一件事,但第二件事实际上更重要。

我一直在寻找解决方案,但一直没找到。我不确定这是否意味着它无法完成/真的很晦涩难懂,或者我只是没有合适的词语来表达它。

答案1

第一部分——文件访问——在普通的 Linux 上通常是不可能的。你可以使用组或文件 ACL 来做一些事情,但没有什么可以阻止文件所有者使用它们chmod来将自己的文件设为私有。

没有这样的事在 Linux 中,rootX是“ 的下属,root因此root可以访问 的文件X”。
相反,root 只是具有“覆盖所有权限检查”功能 (cap_dac_override)。仅此而已。

但是,可能可以编写一个 LSM 来执行此操作 - SELinux 或 SMACK 使用的那种模块...或者你可以简单地使用su <subordinate_user>和阅读他们的文件:


第二部分可以通过编写自定义sudo规则或特殊的 PAM 配置来实现su(尽管不幸的是我不知道有任何现有的 PAM 模块可以提供帮助)。

例如,如果您想允许用户 X 运行sudo -u Z -s(相当于su Z),规则将是:

X    ALL=(Z) ALL

您还可以使用%groupname来指定 Unix 组:

superiorguy    ALL=(%subordinates) ALL

相关内容