我想在 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