我有一个帐户需要无缝伪装成其他帐户,如下所示:
manager$ sudo -u worker_A echo hello from worker A
hello from worker A
manager$ sudo -u worker_B echo hello from worker B
hello from worker B
所以我把这样的东西放在一个文件中/etc/sudoers.d
:
manager ALL=worker_A,worker_B,worker_C NOPASSWD: ALL
这似乎适用于上述命令。但是,在某些情况下,我需要作为worker_*
帐户做的事情需要整个登录环境,即我需要将-i
/--login
标志传递给 sudo。然而,当我尝试这个时,我得到了一个完全出乎意料的结果:
manager$ sudo -u worker_A echo hello from worker A
hello from worker A
manager$ sudo -u worker_A -i echo hello from worker A
[sudo] password for manager:
问题:
- 这里发生了什么?
- 我该如何解决?
(注意:我已经更改了帐户名称并简化了 sudoers 文件的内容,以创建一个最小的示例并保护隐私。希望我没有在此过程中无意中输入任何拼写错误或更改任何内容。)