如何授予 www-data 权限以使用 index.php 中的 sudo 运行 .py 脚本?

问题描述 投票:0回答:1

我在 /var/www/Web-EvilBlock/EvilBlock.py 中有一个脚本

需要有sudo权限才能工作

我的问题是,在我的 php 网页中,我有一个执行该 .py 脚本的按钮,但它不起作用。(需要 sudo 权限)

我让它工作的唯一方法是在 visudo 中添加以下行: www-data ALL=(ALL) NOPASSWD: ALL 但我想让它更安全一点。还有别的办法吗?我是 linux 的新手。

www-data是/var/www/Web-EvilBlock的拥有者,有执行权限

编辑:有人回答了我的问题。 我在 visudo 中添加了这一行: www-data ALL=(ALL) NOPASSWD:/usr/bin/python3 /var/www/Web-EvilBlock/EvilBlock.py 但是现在我需要另一个使用 sudo pkill -f EvilBlock.py 的按钮

php bash apache sudo visudo
1个回答
1
投票

为了使用户 www-data 只有对 EvilBlock.py 的 sudo 权限,我在 visudo 的末尾添加了以下行:

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

对于能够执行“sudo pkill -f EvilBlock.py”的 www-data,我创建了一个包含“命令”的 .sh 文件。然后在 visudo 我添加了以下行:

www-data ALL=(ALL) NOPASSWD:/usr/bin/bash /var/www/Web-EvilBlock/pkill.sh

注意:编辑 sudoers 文件时要非常小心,因为不正确的更改会导致系统无法使用

执行 .py 的 PHP 代码:

$output = shell_exec('sudo python3 /var/www/Web-EvilBlock/EvilBlock.py');

pkill .py 的 PHP 代码:

$output2 = shell_exec('sudo pkill -f EvilBlock.py');

© www.soinside.com 2019 - 2024. All rights reserved.