如何:sudo -u <username> 在 sudoer 中?
How to: sudo -u <username> in sudoer?
我需要从 php 文件(用户:www-data)中以用户 www-data
:
的身份明确启动具有 sudo 权限的命令
<?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.
看来需要sudo -u www-data
。我该如何解决这个问题?
使用 sudo
允许 www-data
到 运行 命令作为 www-data
是没有意义的,但您可以轻松地这样做:
www-data ALL=(www-data) NOPASSWD: /usr/bin/python3 /var/www/html/script.py
您的方法的问题是您尝试将命令 sudo -u www-data ..
添加到 sudoers,这对应于双 sudo sudo sudo -u www-data ..
我需要从 php 文件(用户:www-data)中以用户 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.
看来需要sudo -u www-data
。我该如何解决这个问题?
使用 sudo
允许 www-data
到 运行 命令作为 www-data
是没有意义的,但您可以轻松地这样做:
www-data ALL=(www-data) NOPASSWD: /usr/bin/python3 /var/www/html/script.py
您的方法的问题是您尝试将命令 sudo -u www-data ..
添加到 sudoers,这对应于双 sudo sudo sudo -u www-data ..