¿Cómo cambiar los permisos para el archivo en el servidor sFTP usando phpseclib?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Probé $ sftp- > chmod ('0755', " file.zip "); y $ sftp- > chmod ('0755', archivo de " ;. zip ");

Pero en ambos casos, el permiso se ha establecido en 363 en su lugar.

¿Fue útil?

Solución

0755 y '0755' no son lo mismo que se demuestra de esta manera:

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

Por eso, intenta eliminar las comillas simples alrededor de 0755.

La razón por la que phpseclib espera que los permisos se representen como un valor octal ('0755' se convierte a un valor decimal, no uno octal) es porque así lo hace ftp_chmod y eso es lo que Net_SFTP :: chmod () se modela después. (en realidad, casi toda la API de SFTP de phpseclib se basa en la API de extensión FTP de PHP)

Otros consejos

En una conjetura, los permisos son 1363. En otras palabras, octal (755). Es una suposición completa, pero sugeriría que la función chmod está tomando un modo decimal, en lugar de uno octal.

Puedes usar

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

No debe ingresar permisos en la función phcodeeclib chmod () como una cadena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top