php - 使用适当的所有权和权限将上传的文件放入主目录

标签 php linux apache

我正在为实验类的学生编写一个上传脚本,以将他们的作业上传到我的主目录中的一个文件夹中。问题是脚本在用户 apache 下运行,脚本创建的任何目录和文件最终都归该用户所有。此外,我希望文件最终所在的文件夹的权限必须设置为完全开放,以便 apache 可以创建目录并将文件移动到其中(当然仍将由 apache 拥有)。

我正在尝试替换该部门提供的旧脚本,除其他问题外,该脚本有大约 5 个不同的用例,在这些用例中,学生可以在文件未实际上传时收到确认。该脚本确实使用 chown 显然没有 PHP 存在的任何问题。也许 python 解释器运行时使用的访问设置与 PHP 解释器不同。

有什么策略可以处理这个问题?

最佳答案

有几种方法可以解决这个问题,但我能想到的最良性的方法是在您的主目录中专门创建一个子目录用于上传作业。

您所要做的就是将目录组所有权授予 apache 用户所属的某个组。假设网络服务器用户是apache,并且还有一个组apache表示该用户是其成员。您还可以为此目的创建一个您和 apache 都属于的公共(public)组。

现在假设您要将上传的文件放入的目录是 ~/homework-submissions

作为你自己

mkdir ~/homework-submissions
chgrp apache ~/homework-submissions
chmod g+a ~/homework-submissions

有了这种安排,新创建的文件将归 apache:apache 所有,但此时网络服务器更改所有权应该没有问题。

关于php - 使用适当的所有权和权限将上传的文件放入主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8737958/

相关文章:

python - 在 OS 10.9 服务器上部署 Django

php - Doctrine CLI 输出 doctrine.php 的内容

php - 更新 mysql 表以防计算机关闭

c# - 在 Linux 上使用 Mono 进行 native P/调用 : DllNotFound

linux - 如果结果超过我的 shell 上的一个页面,如何自动传递到 less?

javascript - 使用 htaccess 隐藏文件扩展名后链接无法正确打开

java - 如何使用 Apache PDFBox 使 PDF 文本可选择?

php - 将我的 Controller 移动到 laravel 5 中的子文件夹后,获取 Controller 不存在

php - 将本地站点带到实时站点 url 不起作用

linux -/etc/init.d 脚本 'detach' 来自输出