Todos mis archivos subidos tienen permisos inutilizables.

Todos mis archivos subidos tienen permisos inutilizables.

Me acabo de mudar a un nuevo servidor y me encontré con algunos problemas de permisos extraños.

Cada archivo que subo tiene permisos de 600, es propiedad de la cuenta de usuario y también está en el mismo grupo. Con este permiso, el servidor no puede realizar cambios en estos archivos.

La carpeta a la que estoy subiendo (a través de sftp normal) tiene permisos de 755.

¿Por qué los archivos nuevos que subo aquí reciben este permiso de 600? ¿Y cómo lo cambio para que los archivos agregados tengan permisos para que el servidor web pueda modificarlos?

Nota: Instalé vsftpd que tiene una configuración para determinar la máscara de usuario predeterminada. Iniciando sesión a través de esteftpFunciona como se esperaba. Sin embargo, esto no soluciona el problema al iniciar sesión a través deftp.

Respuesta1

Mi solución básica para esto es crear un script que se encuentre entre SSH y SFTP y cambie la máscara de usuario cuando el usuario inicia sesión:

> vim /opt/sftp-server.sh

#!/bin/bash
umask 022
/usr/libexec/openssh/sftp-server

Luego edite el archivo de configuración ssh_d (/etc/ssh/sshd_config) y edite la línea sftp SubSystem para que apunte a su script:

Subsystem       sftp    /opt/sftp-server.sh

Asegúrese de haber configurado los permisos correctamente en su nuevo script:

> chmod 755 /opt/sftp-server.sh

¡Ahora los archivos cargados a través de SFTP deberían tener los permisos 755!

http://blog.mrmason.net/2009/05/27/changing-default-file-permissions-for-sftp/

Respuesta2

El servidor sftp es el subsistema sftp que se utiliza generalmente con openssh.

Tras una inspección más cercana del comando:

$ /usr/lib/openssh/sftp-server -h
usage: sftp-server [-ehR] [-f log_facility] [-l log_level] [-u umask]

Por lo tanto, podemos configurar la umask predeterminada para las conexiones pasando el modificador -u durante la inicialización. En /etc/ssh/sshd_configdonde está definido el subsistema sftp busque la línea.

Subsystem sftp /usr/lib/openssh/sftp-server

y cámbielo para que se vea así:

Subsystem sftp /usr/lib/openssh/sftp-server -u 0022

Para permitir que los archivos creados tengan la máscara de usuario predeterminada de 644 y los archivos 755

Recuerde que esta configuración es global y afectará a todos los archivos transferidos a través de sftp, así que tenga en cuenta la seguridad antes de implementarla.

información relacionada