Как изменить права доступа к файлу на сервере sFTP с помощью phpseclib? - PullRequest
1 голос
/ 27 ноября 2009

Я пробовал $sftp->chmod('0755', "file.zip"); и $sftp->chmod('0755', "file.zip");

Но в обоих случаях разрешение было установлено на 363.

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

0755 и '0755' - это не то же самое, что продемонстрировано таким образом:

<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;

Для этого попробуйте удалить одинарные кавычки в районе 0755.

Причина, по которой phpseclib ожидает, что разрешения будут представлены в виде восьмеричного значения ('0755' приводится к десятичному значению, а не восьмеричного), заключается в том, что именно так ftp_chmod делает это и именно так моделируется Net_SFTP::chmod(). (на самом деле, почти все SFTP API phpseclib смоделированы после PHP расширения API FTP)

1 голос
/ 26 октября 2015

Вы можете использовать

$sftp->chmod(0755, $file);

Вы не должны вводить разрешения в функцию phpseclib chmod() в виде строки.

1 голос
/ 27 ноября 2009

По предположению, разрешения 1363. Другими словами восьмеричное (755). Это полное предположение, но я бы предположил, что функция chmod использует десятичный режим, а не восьмеричный.

...