可从父目录继承 chmod 权限

可从父目录继承 chmod 权限

我有一个名为的目录cache/var/www我需要以以下方式提供权限:

sudo chmod -R 777 cache

但这还不够,因为 PHP 脚本会自动在其下创建子目录,以便更好地管理文件,例如a、、b...c等等。现在,每当创建任何新目录时,它都不会从父目录“缓存”继承权限,而是保留drwxr-xr-x访问权限,而不是drwxrwxrwx

有人可以帮忙吗?

答案1

这是 UNIX 功能的预期行为umask,用于控制新创建文件的权限。

例如,使用umask0022组和世界写入位将被屏蔽。这可能解释了您在脚本创建的目录中看到的结果。

您可能能够将umaskPHP 中的 调整为0000,但由于这是一个进程全局设置,并且 PHP 解释器嵌入在 Apache 中,因此它可能会对脚本以外的安全产生影响。另一种方法是chmod()在创建目录后发出调用,这应该更安全一些,并且不依赖于设置umask

您可能还需要考虑是否真的需要将这些目录设置为全球可写。如果文件需要由 Web 服务器和其他脚本写入,也许您可​​以将目录设置为由这两个环境的共同组拥有,并仅使其可由组写入。

相关内容