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