Как изменить права доступа к файлу на сервере sFTP с помощью phpseclib?

StackOverflow https://stackoverflow.com/questions/1809040

  •  05-07-2019
  •  | 
  •  

Вопрос

Я попробовал $ sftp-> gmod ('0755', " file.zip "); и $ sftp- > chmod ('0755', " файл. застежка-молния & Quot;);

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

Не следует вводить права доступа в функцию phpseclib chmod () в виде строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top