所以我目前正在尝试创建一个 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 chmod
并man chown
了解更多详情