apache 我如何给予www-data权限来运行index.php中的.py脚本和sudo?

dvtswwa3  于 2023-03-19  发布在  Apache
关注(0)|答案(1)|浏览(113)

我在/var/www/Web-EvilBlock/中有一个脚本EvilBlock.py
它需要具有sudo权限才能工作
我的问题是,在我的php网页中,我有一个执行.py脚本的按钮,但它不起作用。(需要sudo权限)
我让它工作的唯一方法是在visudo中添加这样一行:www-data全部=(全部)未通过:所有的,但是我想让它更安全一点。有没有其他的方法?我是linux的新手。
www-data是/var/www/Web-EvilBlock的所有者,并具有执行权限
EDIT:有人回答了我的问题,我在visudo中添加了这行:www-data ALL=(ALL)NOPASSWD:/usr/bin/python3 /var/www/Web-EvilBlock/EvilBlock.py但是现在我需要另一个使用sudo pkill -f EvilBlock.py的按钮

i2byvkas

i2byvkas1#

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

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

为了让www-data能够执行“sudo pkill -fEvilBlock.py“,我创建了一个.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代码:
返回值= shell_exec('sudo pkill -fEvilBlock.py')

相关问题