我尝试将PHP的chmod的权限设置为02775。但是由于某种原因,它仅向文件中添加了0775。我以为这可能是PHP的chmod实现或其他问题,所以我尝试使用PHP的passthru()函数运行“chmod 02775路径”,但结果却相同。我在shell中尝试了相同的命令,并且效果很好。我使用root用户以CLI身份运行脚本,因此这不是用户限制问题。

我能提出的唯一理由是,PHP是否以某种方式在受控环境中运行?否则,passthru()至少应该起作用。

最佳答案

好的,发现了问题。
显然,PHP chown()和chgrp()函数会将粘滞位重置为0。因此chmod()必须是最后一个要调用的命令,以保留权限。

10-01 22:53
查看更多