【问题标题】:'nobody' own the file created through php“没有人”拥有通过 php 创建的文件
【发布时间】:2013-06-11 23:31:38
【问题描述】:

我的一个客户使用个人服务器,将默认所有者设置为“nobody”,因此他无法写入或删除任何这些文件。 我已经通过手动创建所需的文件残酷地解决了这个问题,但这不是一个解决方案,因为我仍然需要创建名称无法预测的文件。

有没有我可以提供的php解决方案或服务器配置来最终解决这个问题?

一些图片:

【问题讨论】:

    标签: php server-configuration


    【解决方案1】:

    文件以运行 Web 服务器的用户身份写入。在您的情况下,nobody 是 Web 服务器正在运行的用户

    【讨论】:

    • -1 指出了显而易见的问题,解决问题的方法是 OP 所要求的,而不是发生了什么。
    【解决方案2】:

    要获得正确的权限,您可以在目录上设置组 setuid 位

    chmod g+rwxs dirname

    这将确保在目录中创建的文件归该组所有。然后,您应该确保每个人都使用 umask 002 或 007 运行。

    PHP CHMOD Link

    【讨论】:

    • 我已经添加了umask功能,但是因为没有得到网站的url所以无法查看。不过我想问另一件事:使用touch而不是file_put_contents创建文件更好吗?
    • @Dheed 如果要将数据写入 ta 文件,请使用 file_put_contents,如果您只想更改文件的时间,请使用 touch。请注意,如果文件不存在,touch 会创建一个文件。在你的情况下,我会使用 file_put_contents。
    • 问题是我无法检查,因为我无法重现此错误,而且我的客户没有给我他网站的 url,但不要担心它是否有效,我会标记你的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2023-03-12
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多