【问题标题】:Set 777 permission on every folder created对创建的每个文件夹设置 777 权限
【发布时间】:2015-05-22 22:01:32
【问题描述】:

我有一个文件夹data,我以编程方式在其中创建新文件夹。这就是为什么我希望所有这些文件夹都拥有 777 权限 - 因为我稍后也会在这些文件夹中创建文件。

我该怎么做?

我试过chmod 777 data,试过chmod -R 777 data - 没有任何效果。数据文件夹有777权限,但是当我在里面新建文件夹时,这个新文件夹没有777权限。

我该如何解决这个问题?

【问题讨论】:

  • 显示您在编码中实现的内容
  • Can't change code yet you are ask for an answer on StackOverflow...如果您的问题与代码无关,您可能应该转到 ServerFault...
  • 好的,我的意思是,我不想更改代码,但我可以更改它。
  • 使用umask函数

标签: php linux


【解决方案1】:

使用phpchmod函数:

  chmod($directory, 0777);

【讨论】:

  • 哦,还有一件事 - 我使用 vagrant,所以在 vagrant 上运行代码,更改 /home/vagrant/data/folder 权限不起作用。我必须更改主机上同步文件夹的权限 - 我该怎么做?
  • 至少,这是正确的答案,前提是您应该更改代码
【解决方案2】:

在 php 级别或 apache 级别更改 umask

http://php.net/manual/en/function.umask.php Setting the umask of the Apache user

虽然您更有可能只是希望另一个组读入,但在这种情况下,在文件夹上设置组粘性位,所有文件都将使用与父组相同的组创建

【讨论】:

    【解决方案3】:

    了解更多有关您的应用程序会很有帮助,因为将整个目录结构设置为 777 通常是一个非常糟糕的主意。

    以下是一些关于如何使事情变得更细粒度的建议:

    “粘性”位。

    这是 /tmp 文件夹中使用的内容,允许任何人和所有人创建文件,但只有所有者或 root 才能访问或删除创建的文件。 Here is a link that discusses it.

    POSIX 功能

    Posix Capabilities 以编程方式提升您的应用程序,为其提供 root 权限的子集。 Capabilities FAQ

    搜索这两个想法可能会给您一些关于如何让您的应用程序以安全的方式执行您想要的操作的更多想法。

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2014-02-10
      • 2017-03-03
      • 1970-01-01
      相关资源
      最近更新 更多