我正在为实验类的学生编写一个上传脚本,以将他们的作业上传到我的主目录中的一个文件夹中。问题是脚本在用户 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/