sudo 到同一个普通用户,无需身份验证

sudo 到同一个普通用户,无需身份验证

我的脚本在以 root 身份执行时,使用 sudo 而不使用 passwd,这很好。但有时我必须以普通用户身份执行该脚本,该脚本通过该 sudo 命令“切换”到自身。在这种情况下,我也必须省略 passwd 过程。

目前我使用默认的(几乎为空的)sudoers 文件。我想用一个简单的、通用的、非用户特定的规则来扩展它。

我尝试使用 * 和 ALL 设置一些通配符规则,但失败了。

感谢您的帮助。

答案1

假设必须执行该脚本的用户是someuser,那么该脚本的完整路径是/usr/local/bin/somescript

使用visudo,添加以下行

someuser ALL=(someuser) NOPASSWD: /usr/local/bin/somescript

要执行此操作(如果脚本位于$PATH:,则可以省略完整路径):

someuser@somehost:~$ sudo -u someuser /usr/local/bin/somescript

sudo但是……为什么你不能在不使用 sudo 的情况下执行该命令?这样调用它和不这样调用它应该没什么区别sudo

更新

如果需要允许所有用户以任何用户身份执行任何命令,请将以下行(但请注意,这是一个完全不安全且有风险的配置。这将允许任何用户(第一列)在任何机器(不重要,第二列)上以任何用户(第三列,括号之间)的身份执行任何命令(第四列)

ALL ALL=(ALL) ALL

答案2

您想要执行一个以 root 身份运行的脚本,但允许非特权用户运行它。这意味着您应该启用setuid 位

相关内容