It seems that when creating directory using this function, permissions are affected by the system umask setting.
If you want to make sure proper permissions are set, after creating directory, set permissions by using ssh2_sftp_chmod function.
PHP - Manual: ssh2_sftp_chmod
2024-12-22
(PECL ssh2 >= 0.12)
ssh2_sftp_chmod — Changes file mode
$sftp
, string $filename
, int $mode
): bool
Attempts to change the mode of the specified file to that given in
mode
.
sftp
An SSH2 SFTP resource opened by ssh2_sftp().
filename
Path to the file.
mode
Permissions on the file. See the chmod() for more details on this parameter.
成功时返回 true
, 或者在失败时返回 false
。
示例 #1 Changing the mode of a file on a remote server
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
ssh2_sftp_chmod($sftp, '/somedir/somefile', 0755);
?>
It seems that when creating directory using this function, permissions are affected by the system umask setting.
If you want to make sure proper permissions are set, after creating directory, set permissions by using ssh2_sftp_chmod function.
官方地址:https://www.php.net/manual/en/function.ssh2-sftp-chmod.php