Apache/PHP 写入用户主文件夹

Apache/PHP 写入用户主文件夹

我在我们的系统上创建了一个 SSH 用户,fred其主目录为/home/fred,其子目录为/home/fred/someFolder。我试图允许以 身份运行的 PHP/Apachenobody在 fred 的目录中创建一个文件someFolder。无论我怎么尝试,我总是得到Warning: file_put_contents(/home/fred/someFolder/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/websiteDir/public_html/test.php on line 1

我尝试了几种不同的方法,但似乎都不起作用。尝试将文件夹的权限修改为 777、666、660 等。尝试使用 fred:nobody、nobody:fred、nobody:nobody、fred:fred 进行权限修改,仍然无效。尝试将 fred 添加到 nobody 的组中,尝试将 nobody 添加到 fred 的组中,但无效。

抱歉,我不太擅长 Linux...如能提供任何建议我将不胜感激。

答案1

/home/fred/someFolder 的所有父目录都必须为访问它的用户/组设置执行位。因此,/home/fred 很可能缺少这个权限。chmod a+x /home/fred

答案2

检查 SELinux 是否在强制模式下运行。如果是这样,它可能会导致权限问题,而您看到和设置的实际 UNIX 文件权限似乎不支持这些问题。您可以使用getenforce(至少在 Redhat/CentOS 上)查看 SELinux 的状态,并setenforce 0以交互方式禁用它。为了使更改持久,您需要在 中编辑 SELinux 配置/etc/selinux/config。希望对您有所帮助!

相关内容