0

我正在尝试在 /var/sandbox 中设置一个沙盒区域,应该允许更改通过网站运行的一些 php 代码。我已将其设置为沙盒文件夹具有 775 权限并分配给组“沙盒用户”,然后将组“沙盒用户”添加到“www-data”用户配置文件中,以便可以对其进行编辑通过 Apache 运行时。

但是,我正在运行的 php 脚本仅在某些时候有效,这似乎是因为有时 'www-data' 忘记了它是 'sandbox-users' 组的一部分。我的 php 代码中有以下行:

echo shell_exec('whoami') . " | " . shell_exec('whoami | groups') . "<br>";

脚本工作的时间,我(适当地)得到输出:

www-data | www-data sandbox-users

当它不起作用时,我会回来:

www-data | www-data

脚本何时起作用以及何时不起作用似乎没有任何模式 - 如果给定时间,它会来回切换。

www-data 是否有任何理由放弃其组?有什么办法可以防止这种情况发生吗?

编辑:要为此添加另一个有趣的皱纹,如果我去终端并运行“组 www-data”,它会告诉我 www-data 始终位于沙盒用户组中,包括两个失败脚本之间的几秒钟运行给我上面列出的第二个输出(没有沙盒用户组)。

4

1 回答 1

0

@regilero 在现场 - Web 服务器尚未重新启动,并且一些 apache 进程是 www-data 组更改之前的遗留问题。因此,随机性取决于网页是从较新的还是较旧的进程提供的。重新启动这些进程解决了这个问题。永远记住 IT 的第一条规则:重新启动,看看是否能解决问题!

于 2013-09-12T16:44:35.900 回答