当PHP执行窗帘功能时,unix用户似乎正在篡夺www数据

时间:2012-04-10 00:28:32

标签: php apache unix permissions linode

我在linode上运行LAMP堆栈。 Ubuntu版本是Lucid。

当PHP脚本执行mkdir()move_uploaded_file命令时,新创建的文件夹/文件最终由unix用户'Grusha'拥有。我确实创建了这个用户,但它不应该拥有文件。整个Web文件夹由www-data拥有,并且(通过扩展名)包含新文件夹/文件正在其中移动的文件夹。

用户的/ etc / passwd行是这样的:

grusha:x:1000:1003:,,,:/home/grusha:/bin/bash

/ etc / group是这样的:

grusha:x:1003:

Grusha拥有PHP会话,因为它们也被创建,但没有别的。系统上没有任何进程或文件作为Grusha运行。

我使用公钥登录,通过的用户不是Grusha(也不是root)。

当我删除Grusha时,我无法再重启Apache。我得到bad username并且重启失败。我的PHP会话也不起作用。

所以最后我再次添加Grusha并且服务器将启动并且一切正常,除了脚本使文件由Grusha拥有,而不是www-data

我一直在四处寻找,但找不到任何信息。我的httpd.conf是空的。我的apache2.conf包含以下行:

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

这些变量在www-data中定义为/etc/apache2/envars

如果有人有任何建议,我将不胜感激。

非常感谢, 埃利奥特

2 个答案:

答案 0 :(得分:0)

suPHP模块可能已启用。它的功能是让PHP代码在拥有脚本的用户的用户ID下执行,而不是www-data,这在共享服务器上可能非常不安全。尝试删除/etc/apache2/mods-enabled/suphp.load/etc/apache2/mods-enabled/suphp.conf

,关闭suPHP

如果不是问题,请检查用户grusha实际上是否与www-data具有相同的数字用户ID(在/etc/passwd中)。但这可能不太可能。

答案 1 :(得分:0)

啊,这个问题已经解决了。道歉。
我在/ etc / apache2 / sites-enabled /中有mpm指令导致apache以grusha的形式运行。
不确定这是怎么发生的,但无论如何都是固定的。 感谢你们两个人思考我的问题。