为什么没有 root 权限的用户不能以自己的身份使用 sudo -u?

为什么没有 root 权限的用户不能以自己的身份使用 sudo -u?

我正在编写一个必须以“用户”身份运行的简单脚本。一半时间我以自己的身份运行,另一半时间以用户身份运行,因此为了节省时间,我将其编写为

sudo -u user ./doStuff

但这不能正常工作,因为当我以用户身份登录时,此命令失败,因为我没有 sudo 权限来执行......我已经可以做的所有事情。

我的问题是,为了方便执行此类脚本,为什么不默认每个用户都具有以自己的身份使用 sudo 的权限?我是否遗漏了某种由此产生的安全性问题,或者这只是没人愿意去实现的东西?

其次,更多的是出于好奇,而不是真正的需要,如何修改文件/etc/sudoers,使每个用户都可以默认sudo -u以自己的身份登录?我知道我原来的脚本可以通过检查用户是谁来编写,但是为了方便测试,我将编写大量类似的脚本,我想省去一些我可能会忘记在未来的脚本中添加的额外步骤。

答案1

使用sudo当前用户身份登录至少可以说是不太优雅。更好的方法是简单地测试您是否以脚本中的身份登录user并采取相应措施。例如,如果这是一个 bash 脚本,请执行

if [[ $USER != "user" ]]; then
   su user;
fi

无论如何,如果你真的想这样做,请改用su

$ whoami
terdon
$ su terdon
Password: 
$ whoami
terdon

相关内容