Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用超级用户权限运行Apache模块?_C_Apache_Apache Modules_Suexec - Fatal编程技术网

如何使用超级用户权限运行Apache模块?

如何使用超级用户权限运行Apache模块?,c,apache,apache-modules,suexec,C,Apache,Apache Modules,Suexec,我在Ubuntu上使用Apache2.4。我用C语言编写了一个模块,并使用Apache扩展工具(apxs)将其集成到Apache服务器中。我的代码中有一部分使用exec函数调用可执行文件,但我想以超级用户的身份调用该可执行文件。因此,我希望以超级用户权限运行我的模块,但默认情况下,Apache以www数据用户的身份运行,并请求www数据的密码 是否有任何方法可以使用超级用户权限运行此模块 否则,在Apache模块中是否有其他方法在C中运行root命令 是否可以为此使用suExec模块 不,不可能

我在Ubuntu上使用Apache2.4。我用C语言编写了一个模块,并使用Apache扩展工具(apxs)将其集成到Apache服务器中。我的代码中有一部分使用exec函数调用可执行文件,但我想以超级用户的身份调用该可执行文件。因此,我希望以超级用户权限运行我的模块,但默认情况下,Apache以www数据用户的身份运行,并请求www数据的密码

是否有任何方法可以使用超级用户权限运行此模块

否则,在Apache模块中是否有其他方法在C中运行root命令


是否可以为此使用suExec模块

不,不可能在与Apache服务器本身不同的用户下运行Apache模块。但有几种策略可以绕过这一限制

1) 您可以在要从Apache运行的可执行文件上设置“”,如下所示:

chown root:root executable
chmod 06755 executable
然后,当您从Apache模块运行此可执行文件(例如,使用
fork
+
exec
或使用
system
)时,该可执行文件将在root用户下运行,并具有root权限

2) 您可以通过某种方式配置该文件,使www数据能够在sudo命令的帮助下以root权限运行有问题的可执行文件

3) 您可以使用根权限运行一个单独的进程,并使用任何类型的IPC/RPC从Apache模块接收命令


请注意,如果可能的话,您应该避免使用root权限,因为在root下运行代码可能会带来安全风险。当然,除非您完全确定您的代码不会有任何bug。

否,否则不可能在Apache服务器本身之外的其他用户下运行Apache模块。但有几种策略可以绕过这一限制

1) 您可以在要从Apache运行的可执行文件上设置“”,如下所示:

chown root:root executable
chmod 06755 executable
然后,当您从Apache模块运行此可执行文件(例如,使用
fork
+
exec
或使用
system
)时,该可执行文件将在root用户下运行,并具有root权限

2) 您可以通过某种方式配置该文件,使www数据能够在sudo命令的帮助下以root权限运行有问题的可执行文件

3) 您可以使用根权限运行一个单独的进程,并使用任何类型的IPC/RPC从Apache模块接收命令


请注意,如果可能的话,您应该避免使用root权限,因为在root下运行代码可能会带来安全风险。当然,除非您完全确定您的代码不会有任何bug。

为什么不简单地让root成为被调用的可执行文件的所有者,并对可执行文件执行chmod u+s?但是,当从任何人都可以访问的web服务器调用二进制文件时,请小心以root用户身份运行二进制文件!为什么不简单地让root成为被调用的可执行文件的所有者,并对可执行文件执行chmodu+s呢?但是,当从任何人都可以访问的web服务器调用二进制文件时,请小心以root用户身份运行二进制文件!