Apache + mod_php 忽略 SUID?

Apache + mod_php 忽略 SUID?

当从 Web 访问的 PHP 脚本使用 shell_exec 命令时,apache 或 mod_php 是否会导致 SUID 标志被忽略?

我正在尝试允许 Web 可访问的 PHP 脚本重命名 Apache 用户没有写入权限的某些文件。我不想授予它写入这些文件的权限,因为我只希望一个受控脚本能够执行此操作。我试图避免 SUDO 和所需的配置,或者避免使用特权用户 cron 调用的队列带来的麻烦/不安全性,似乎我应该能够使用 SUID 来实现这一点。

如果您需要更多信息,我在这里有一个类似的问题,但我认为它太详细了,人们看不到我在问什么。

https://stackoverflow.com/questions/6432931/suid-issues-with-php-apache

答案1

奇怪的选择,但也许你可以让 apache 进程指示它有权访问的地方,它想要什么 - 然后你就有了 cron 作业或某种调用脚本的东西,它可以解释 apache 进程指示的内容并执行所需的操作。

在我看来,这听起来很不靠谱。但无论你做什么,这也许是可行的方法。从安全角度来看,SUID 听起来很危险。我认为我建议的是略微改进。

答案2

据我所知,mod_php 将始终以 apache 用户的 uid 运行您的脚本。如果您想使用 apache 以不同的 uid 提供 php 脚本,您可以尝试使用 fastcgi。此处为通用说明但是您可以(并且应该)搜索特定于您的操作系统打包系统(apt/yum/etc)的安装说明。

相关内容