Sé que esta pregunta ya se ha discutido, pero al leer las publicaciones no pude encontrar las respuestas, porque algunos dijeron "sí, umask puede funcionar", y otros dicen "el comando put OpenSSH siempre preserva los permisos".
Antes que nada solo para precisar:
- Yo uso OpenSSH 5.9 en RHEL 6.2
- He configurado un servidor SFTP chrooteado, usando el
internal-sftp
subsistema, con-u 0002
para umask - Preciso que no uso la opción
-p
o-P
Por lo que he leído por un lado: hay muchas formas de definir umask para transferencias SFTP:
- opción
-u
deinternal-sftp
(osftp-server
), desde OpenSSH 5.4 - crear un contenedor para
sftp-server
(en el que configuramos explícitamente la umask, esto no se ajusta al entorno chrooteado por cierto) - agregar una configuración específica en el
pam.d/sshd
archivo
Por otro lado he leído:
El cliente y el servidor OpenSSH SFTP transfieren los permisos (como una extensión) y crean el archivo remoto con los permisos en el lado local. AFAICT, no hay forma de deshabilitar este comportamiento.
Entonces hice la siguiente prueba:
En mi cliente creé un archivo MYFILE
y un directorio MYDIR
con los permisos 600 y 700.
Luego con sftp
comandos:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
Si cambio los permisos de MYFILE
y MYDIR
en el lado del cliente, y subo nuevamente, obtengo los nuevos permisos en el lado del servidor.
También probé la pam.d
solución, pero no cambió nada.
Entonces ahora estoy confundido:
Por lo que probé y una parte de lo que leí, diría que OpenSSH siempre conserva los permisos. Pero como hay muchas publicaciones que dicen que se puede definir una umask, me imagino que hago algo incorrecto en mis configuraciones de prueba.
Agradecería algunos comentarios experimentados.
Gracias.