Configurar umask para sesiones SFTP

Si necesitamos configurar un umask determinado para los usuarios SFTP, debemos tener en cuenta que los cambios que realicemos a nivel de .bashrc no serán válidos para estos usuarios, debido a que no abren una shell al establecer conexión vía SFTP.

A partir de la versión 5.4 de OpenSSH podemos establecer el parámetro umask en la configuración del servidor ssh (sshd_config). Así por ejemplo si quisieramos establecer un umask de 0022 lo podemos hacer añadiendo la siguiente línea al fichero. En Red Hat y derivados se encuentra en /etc/ssh/sshd_config:

Subsystem sftp internal-sftp -u 0022

Y reiniciar el servicio SSH:

# service sshd restart

En versiones anteriores como la 5.3, he conseguido hacerlo funcionar con la siguiente configuración en lugar de la anterior:

Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6 -u 000

Y en la documentación de OpenSSH recomiendan esta otra que también podéis probar si tenéis problemas:

Subsystem sftp /bin/sh -c 'umask 0022; /usr/libexec/openssh/sftp-server'