PHP ssh2\u sftp\u mkdir创建权限不正确

PHP ssh2\u sftp\u mkdir创建权限不正确,php,linux,file-permissions,umask,Php,Linux,File Permissions,Umask,我正在使用上面的方法远程创建文件夹,但该文件夹没有权限774,而是被设置为754,这意味着该文件夹不可由组写入。当前umask也会修改该模式,您可以使用umask对其进行更改。发生的情况是,由于某种原因,php函数受到系统umask设置的影响,问题是没有记录在案 例如,如果你 ssh2_sftp_mkdir($sftp, '/home/site',0774); 您系统上的umask设置为022,因为在大多数Linux发行版上它是默认的,您最终将创建具有754 drwxr权限的目录站点- 可以通

我正在使用上面的方法远程创建文件夹,但该文件夹没有权限774,而是被设置为754,这意味着该文件夹不可由组写入。

当前umask也会修改该模式,您可以使用umask对其进行更改。

发生的情况是,由于某种原因,php函数受到系统umask设置的影响,问题是没有记录在案

例如,如果你

ssh2_sftp_mkdir($sftp, '/home/site',0774);
您系统上的umask设置为022,因为在大多数Linux发行版上它是默认的,您最终将创建具有754 drwxr权限的目录站点-

可以通过使用函数从php修改umask,但如文档中所述,不建议使用此函数,因为多线程Web服务器中可能存在意外行为

要了解什么是umask以及它如何在Debian Linux中工作,请参阅或

我对处理这种情况的建议是,在创建目录/文件时,尽最大努力设置权限,并且在创建之后,确保使用函数设置正确的权限

在这种情况下,这将是

ssh2_sftp_mkdir($sftp, '/home/site',0774);

好的,手册声明ssh2_sftp_mkdir函数类似于在ssh2.sftp://wrapper中使用mkdir,所以我认为它会的;ssh2_sftp_mkdir$sftp$文件夹,0775;乌马斯克$旧;最后的权限是755它允许您稍后使用ssh2\u sftp\u chmod更改目录权限吗?
/* Create directory */
ssh2_sftp_mkdir($sftp, '/home/site',0774);

/* Make sure proper permissions are set */
ssh2_sftp_chmod($sftp, '/home/site',0774);