如何以另一个用户身份执行 sudo 而不指定用户名

如何以另一个用户身份执行 sudo 而不指定用户名

所以我目前正在尝试创建一个 sudoers 文件,但是遇到了一些我无法弄清楚的事情。

我期望的最终结果是,我希望用户能够做类似的事情:

sudo /usr/sbin/script.pl

但是,我不想以 root 身份运行,而是希望以“other_user”身份运行脚本。

我查看了 sudoers 文件,并尝试添加如下行:

pedro      ALL = (other_user) /usr/sbin/script.pl

但这只有当我通过执行指定用户时才有效sudo -u other_user /usr/sbin/script

是否有一种(简单的)方法可以让脚本以特定用户身份运行,而无需在命令行中指定它?

答案1

我认为没有配置参数可以做到这一点。你可以破解源代码并重新编译。您也可以使用别名,例如

alias sudo='sudo -u pedro'

但你必须记住在\sudo 前面加上一个

\sudo somecommand 

答案2

这可能会有用:

alias sudop='sudo -u pedro'
alias sudoa='sudo -u alice'

除了 sudo 之外,您还需要指定其他内容,但它是深度连接的,并且输入起来非常容易。我使用了这个的变体来运行我需要运行的常见 sudo 命令。

答案3

这样做sudo chown other_user /usr/sbin/script; sudo chmod 6777 会将脚本的所有者更改为 other_user,然后将其设置为所有人都可编辑和可执行,最后将其设置为以 other_user 身份运行。

sudo chown other_user /usr/sbin/script; sudo chmod 6555//与上面相同,但是是只读的 sudo chown other_user /usr/sbin/script; sudo chmod 6755//与 6777 相同,但是只能由其他用户编辑

参见man chmodman chown了解更多详情

相关内容