我在 /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 的按钮
为了使用户 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');