
Tengo un usuario myuser, al que solo se le permite conectarse a ssh a través de sftp. Me gustaría que este usuario siempre cree archivos con rwx-rwx-rx y que siempre sean propiedad del grupo apache. Intenté lograr la parte de permisos de archivos con umask, pero en umask los archivos y directorios obtienen permisos diferentes para la misma umask. Se agradece la ayuda.
Respuesta1
Fondo
Este es un problema permanente al sftp
compartir archivos. Esto se debe a que los permisos resultantes se basan en el permiso original del archivo en el lado del usuario y el -u
argumento umask () no fuerza dichos permisos, sino que solo elimina los permisos no deseados. Esto significa que sólo si el usuario intenta cargar un archivo con permiso 0777
, este se aplica y se reduce a 0775
. De lo contrario, simplemente se deja como estaba. Por ejemplo, si el usuario tiene un archivo almacenado en su sistema de archivos con permiso 0700
, aparecerá también después de cargarlo como 0700
.
Solución
Recientemente resolvimos este problema en Fedora aplicando un parche que fuerza el permiso exacto de los nuevos archivos cargados usando -m
el cambio a sftp-server
. Se basa en este error ascendente:
https://bugzilla.mindrot.org/show_bug.cgi?id=1844
Esto está disponible en la actualidad.CentOS 7.2. Del registro de cambios:
- Add sftp option to force mode of created files (#1197989)
Solución alterna
No existe otra solución elegante, excepto algún script que se ejecute periódicamente (de cron
), que corrige los permisos incorrectos. Sería una frase ingeniosa en bash, pero supongo que se te ocurren algunas. Puedo dar más detalles sobre esto si estás interesado.
O puede utilizarlo inotify
para "captar" los cambios antes.
El grupo debería heredarse del directorio principal, ¿no es así?