如何在 openbsd 上使用 mod_python 运行需要 root 权限才能在 apache 中执行的 python 脚本

如何在 openbsd 上使用 mod_python 运行需要 root 权限才能在 apache 中执行的 python 脚本

我正在尝试使用 mod_python 在 Apache 2.x 中运行 python 脚本。我使用发布者编辑了 httpd.conf

     LoadModule python_module /usr/local/apache2/modules/mod_python.so
     <Directory /usr/local/apache2/htdocs/mod_python>

    SetHandler mod_python
    PythonHandler mod_python.publisher
    PythonDebug On
</Directory>

我正在尝试使用需要 root 权限的 python 脚本在防火墙中添加一条规则。它要求 root 权限?请帮忙。

答案1

一探究竟。

“与 pfctl(8) 类似,py-pf通过 pf(4) 伪设备提供的 ioctl(2) 接口向内核发送命令;这使得 Python 能够借助 fcntl 和 ctypes 模块与内核进行本地通信,而无需编写特定的 C 扩展模块。”

因此,通过运行 apache 的用户检查 pf 伪设备中的权限。

答案2

您需要使用从您的 Web 应用程序sudo运行pfctl,并且需要将“apache”用户添加到文件中,sudoers并赋予其运行权限pfctl而无需输入密码。

笔记:要修改您的文件,请以 root 身份或具有提升权限的帐户sudoers使用该命令。visudo

你可能也不想使用过时的 mod_python 方式来运行 Python Web 应用。例如瓶子或者烧瓶搭配nginx在基地会是一个更好的选择。

相关内容