如何:sudo -u <username> in sudoer?



我需要从php文件(user:www data(中启动一个具有sudo权限的命令,显式地作为用户www-data:

<?php
$command = 'sudo -u www-data /usr/bin/python3 /var/www/html/script.py';
shell_exec($command);
?>

为了能够对www-data使用sudo,我想把命令放在sudoers(sudo visudo(中,比如:

www-data ALL=NOPASSWD: sudo -u www-data /usr/bin/python3 /var/www/html/script.py

www-data ALL=NOPASSWD: -u www-data /usr/bin/python3 /var/www/html/script.py

但语法错误(来自visudo的错误消息(。以下是使用sudoers(正确语法(

www-data ALL=NOPASSWD: /usr/bin/python3 /var/www/html/script.py

但不适用于我的脚本(日志文件中的apache错误(:

Sorry, user www-data is not allowed to execute '/usr/bin/python3 /var/www/html/script.py' as www-data on raspberrypi.

似乎需要CCD_ 4。我该如何解决这个问题?

使用sudo来允许www-data作为www-data运行命令是没有意义的,但您可以很容易地做到这一点:

www-data ALL=(www-data) NOPASSWD: /usr/bin/python3 /var/www/html/script.py

您的方法的问题是,您试图将命令sudo -u www-data ..添加到sudoers中,它对应于双sudosudo sudo -u www-data ..

相关内容

  • 没有找到相关文章

最新更新