如何作为另一个用户sudo,而不指定用户名

所以我正在尝试创build一个sudoers文件,但是我遇到了一些我无法弄清楚的东西。

我正在寻找的最终结果是,我希望用户能够做到这样的事情:

sudo /usr/sbin/script.pl 

但是,而不是作为根运行,我想脚本运行为“other_user”。

我看着sudoers文件,并尝试添加一行:

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

但是,只有通过执行sudo -u other_user /usr/sbin/script指定用户才有效。

有没有一种(简单的)让脚本作为特定的用户运行,而不必在命令行中指定它?

我不认为有这样做的configuration参数。 你可以破解源代码并重新编译它。 你也可以使用别名,例如

 alias sudo='sudo -u pedro' 

但是之后你必须记得把sudo当作其他任何东西

 \sudo somecommand 

这是可能的工作:

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

你还必须指定一些除了sudo以外的东西,但它是深入连接的,并且很容易地input。 我使用这个变化来运行常见的sudo命令。

sudo chown other_user /usr/sbin/script; sudo chmod 6777 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 6555 //与上面相同但是只读sudo chown other_user /usr/sbin/script; sudo chmod 6755 sudo chown other_user /usr/sbin/script; sudo chmod 6755 //与6777相同,但只能由other_user编辑

man chmodman chown了解更多细节