Discussion:
Forzar permisos con SFTP
(demasiado antiguo para responder)
Marc Olive
2011-09-12 15:50:03 UTC
Permalink
Buenas gente,

Tengo un servidor SFTP, y quiero es que todos los archivos y directorios
subidos pertenezcan a un grupo concreto y todos los del grupo puedan escribir
el fichero o directorio.
Conseguir mantener el grupo está resuelto, para esto basta con establecer los
permisos del directorio raiz a +s. El problema lo tengo para establecer los
permisos en rw-rw---- (archivos) o rwxrwx--- (directorios):

He probado con "acl" con lo que puedo establecer el "acl" por defecto, y
tambien con el umask de los usuarios, pero parece que (no siempre) se
establecen como necesito. Entrando por shell y creando archivos si quedan con
los permisos correctos, pero desde clientes SFTP o usando sshfs parece que los
permisos los decide el programa cliente, que tiende a conservar los permisos
del archivo original.

He encontrado un parche para el servidor sftp que establece los permisos de
los archivos según esté configurado el servidor, pero no me hace demasiada
ilusion parchear el demonio, si alguien conoce otra solución se lo agradeceré.

Poner una cron que se ejecute cada minuto para corregir los permisos no es una
solución aceptable.

Gracias de antemano,
--
Marc Olivé
Blau Advisors

***@blauadvisors.com

C/ Molí de Guasch, 10 baixos 1a,
43440 L’Espluga de Francolí (Tarragona)
Tel. +34 977 870 702
Tel i Fax. + 34 977 870 507

www.blauadvisors.com
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@blauadvisors.com
Camaleón
2011-09-12 16:20:02 UTC
Permalink
Post by Marc Olive
Tengo un servidor SFTP, y quiero es que todos los archivos y directorios
subidos pertenezcan a un grupo concreto y todos los del grupo puedan
escribir el fichero o directorio.
Conseguir mantener el grupo está resuelto, para esto basta con
establecer los permisos del directorio raiz a +s. El problema lo tengo
para establecer los permisos en rw-rw---- (archivos) o rwxrwx---
(...)

Mira a ver si algo de lo que comentan por aquí te vale:

How to put desired umask with SFTP?
http://serverfault.com/questions/70876/how-to-put-desired-umask-with-sftp

Saludos,
--
Camaleón
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@gmail.com
AngelD
2011-09-12 16:40:02 UTC
Permalink
Post by Marc Olive
Tengo un servidor SFTP, y quiero es que todos los archivos y directorios
subidos pertenezcan a un grupo concreto y todos los del grupo puedan escribir
el fichero o directorio.
Conseguir mantener el grupo está resuelto, para esto basta con establecer los
permisos del directorio raiz a +s. El problema lo tengo para establecer los
A ver si he entendido bien. Con utilizar un 'chmod g+ws' y un
umask tipo '0002' a los usuarios del grupo, ¿no es suficiente?.
Post by Marc Olive
He probado con "acl" con lo que puedo establecer el "acl" por defecto, y
tambien con el umask de los usuarios, pero parece que (no siempre) se
establecen como necesito. Entrando por shell y creando archivos si quedan con
los permisos correctos, pero desde clientes SFTP o usando sshfs parece que los
permisos los decide el programa cliente, que tiende a conservar los permisos
del archivo original.
Lo de utilizar ACL's lo dejaría para cuando no haya alternativas,
a menos que te guste complicarte la vida, y además me parece no es la
solución.

Si el problema sólo es con los umask y el sftp, [1]parece que hay
procedimientos sencillos para forzar ésto, si utilizas el
[1]"sftp-server" sin chroot.

Si utilizas el "internal sftpd", encuentro referencias al fichero
[2]'/etc/login.conf', algo que desconozco si tiene equivalente el Linux,
por lo que puedes parchear el [3]ssh, o puedes generar un chroot a la
antigua usanza, para seguir utilizando el comando externo para sftp.
Post by Marc Olive
He encontrado un parche para el servidor sftp que establece los permisos de
los archivos según esté configurado el servidor, pero no me hace demasiada
ilusion parchear el demonio, si alguien conoce otra solución se lo agradeceré.
Si no utilizas chroot, el parámetro '-u' del sftp-server

Si utilizas chroot, me decantaría por montar un chroot "a la
antigua", y utilizar el parámetro '-u' del sftp-server
Post by Marc Olive
Poner una cron que se ejecute cada minuto para corregir los permisos no es una
solución aceptable.
Se me ocurre alguna otra idea, un poco más aceptable, utilizar las
[4]"inotify-tools" para cambiar los permisos cada vez que se deje un
fichero en el directorio descrito.

Ya nos contarás tus progresos.

[1]http://serverfault.com/questions/70876/how-to-put-desired-umask-with-sftp
[2]https://calomel.org/sftp_chroot.html
[3]http://sftpfilecontrol.sourceforge.net/
[4]http://inotify-tools.sourceforge.net/
--
Saludos --- Angel
Marc Olive
2011-09-13 08:40:01 UTC
Permalink
Post by AngelD
Post by Marc Olive
Conseguir mantener el grupo está resuelto, para esto basta con establecer
los permisos del directorio raiz a +s. El problema lo tengo para
establecer los
A ver si he entendido bien. Con utilizar un 'chmod g+ws' y un
umask tipo '0002' a los usuarios del grupo, ¿no es suficiente?.
No es suficiente si el (programa) cliente modifica luego los permisos para que
se correspondan con el archivo original.
Post by AngelD
Si el problema sólo es con los umask y el sftp, [1]parece que hay
procedimientos sencillos para forzar ésto, si utilizas el
[1]"sftp-server" sin chroot.
Si utilizas el "internal sftpd", encuentro referencias al fichero
[2]'/etc/login.conf', algo que desconozco si tiene equivalente el Linux,
por lo que puedes parchear el [3]ssh, o puedes generar un chroot a la
antigua usanza, para seguir utilizando el comando externo para sftp.
Si no utilizas chroot, el parámetro '-u' del sftp-server
Estamos en las mismas: si el cliente cambia los permisos, de nada sirve lo que
configure en el servidor.
Post by AngelD
Se me ocurre alguna otra idea, un poco más aceptable, utilizar las
[4]"inotify-tools" para cambiar los permisos cada vez que se deje un
fichero en el directorio descrito.
Pero hay muchos directorios que monitorizar (11.000), no se si seria mucha
carga para el sistema.
El otro problema es que habria que poner otra incron por cada nuevo directorio
que se cree.
Post by AngelD
Ya nos contarás tus progresos.
Me parece que tengo que decantarme con el parche de "sftpfilecontrol". En su
doc dicen "to control whether the client may issue chown and chmod commands in
an sftp session."
¿Problemas? Que solo existe para versiones antiguas de OpenSSH (5.4p1) y que
pierdo los parches aplicados por Debian.
Acabo de aplicar el parche, compilar e instalar, pero tengo otros problemas
para autentificarme, "sshd[31189]: Failed password for marc.olive from
10.81.55.4 port 51497 ssh2", seguramente por la conexión con LDAP (en la doc
ya avisan).
Seguiré peleando con esto, creo que "sftpfilecontrol" es la única opción.
Post by AngelD
[1]http://serverfault.com/questions/70876/how-to-put-desired-umask-with-sf
tp [2]https://calomel.org/sftp_chroot.html
[3]http://sftpfilecontrol.sourceforge.net/
[4]http://inotify-tools.sourceforge.net/
--
Marc Olivé
Blau Advisors

***@blauadvisors.com

C/ Molí de Guasch, 10 baixos 1a,
43440 L’Espluga de Francolí (Tarragona)
Tel. +34 977 870 702
Tel i Fax. + 34 977 870 507

www.blauadvisors.com
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@blauadvisors.com
AngelD
2011-09-13 11:30:01 UTC
Permalink
Post by Marc Olive
Post by AngelD
Post by Marc Olive
Conseguir mantener el grupo está resuelto, para esto basta con establecer
los permisos del directorio raiz a +s. El problema lo tengo para
establecer los
A ver si he entendido bien. Con utilizar un 'chmod g+ws' y un
umask tipo '0002' a los usuarios del grupo, ¿no es suficiente?.
No es suficiente si el (programa) cliente modifica luego los permisos para que
se correspondan con el archivo original.
Post by AngelD
Si el problema sólo es con los umask y el sftp, [1]parece que hay
procedimientos sencillos para forzar ésto, si utilizas el
[1]"sftp-server" sin chroot.
Si utilizas el "internal sftpd", encuentro referencias al fichero
[2]'/etc/login.conf', algo que desconozco si tiene equivalente el Linux,
por lo que puedes parchear el [3]ssh, o puedes generar un chroot a la
antigua usanza, para seguir utilizando el comando externo para sftp.
Si no utilizas chroot, el parámetro '-u' del sftp-server
Estamos en las mismas: si el cliente cambia los permisos, de nada sirve lo que
configure en el servidor.
Entonces, las opciones que utilicen umask no son factibles.
Post by Marc Olive
Post by AngelD
Se me ocurre alguna otra idea, un poco más aceptable, utilizar las
[4]"inotify-tools" para cambiar los permisos cada vez que se deje un
fichero en el directorio descrito.
Pero hay muchos directorios que monitorizar (11.000), no se si seria mucha
carga para el sistema.
El otro problema es que habria que poner otra incron por cada nuevo directorio
que se cree.
¿Estan todos los directorios colgando del mismo árbol?. Porque
puedes monitorizar el /home, por ejemplo, y cuando se genere o modifique
un archivo aplicar un if con más condiciones?. Siempre que esten en el
mismo filesystem sería factible.

Nunca he utilizado "incron", sólo [5]inotifywait.
Post by Marc Olive
Post by AngelD
Ya nos contarás tus progresos.
Me parece que tengo que decantarme con el parche de "sftpfilecontrol". En su
doc dicen "to control whether the client may issue chown and chmod commands in
an sftp session."
¿Problemas? Que solo existe para versiones antiguas de OpenSSH (5.4p1) y que
pierdo los parches aplicados por Debian.
Acabo de aplicar el parche, compilar e instalar, pero tengo otros problemas
para autentificarme, "sshd[31189]: Failed password for marc.olive from
10.81.55.4 port 51497 ssh2", seguramente por la conexión con LDAP (en la doc
ya avisan).
Seguiré peleando con esto, creo que "sftpfilecontrol" es la única opción.
¿No puedes desarmar el paquete deb, y aplicar el parche?. Así sólo
perderias parches futuros y no pasados.
Post by Marc Olive
Post by AngelD
[1]http://serverfault.com/questions/70876/how-to-put-desired-umask-with-sf
tp [2]https://calomel.org/sftp_chroot.html
[3]http://sftpfilecontrol.sourceforge.net/
[4]http://inotify-tools.sourceforge.net/
[5]http://zerutek.com/wiki/Sincronizar_directorios_con_inotify
--
Saludos --- Angel
Camaleón
2011-09-13 11:50:01 UTC
Permalink
(...)
Post by Marc Olive
Post by AngelD
Si no utilizas chroot, el parámetro '-u' del sftp-server
Estamos en las mismas: si el cliente cambia los permisos, de nada sirve
lo que configure en el servidor.
(...)

No les dejes, crea una jaula.

Saludos,
--
Camaleón
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@gmail.com
Marc Olive
2011-09-15 07:00:01 UTC
Permalink
Post by Camaleón
Post by Marc Olive
Post by AngelD
Si no utilizas chroot, el parámetro '-u' del sftp-server
Estamos en las mismas: si el cliente cambia los permisos, de nada sirve
lo que configure en el servidor.
No les dejes, crea una jaula.
¿Como lo impido? ¿quitando el comando "chmod"?
Ya estan dentro de un servidor virtual openvz que solo se usa para el servidor
de archivos (pero con muchos comandos disponibles).
Post by Camaleón
Saludos,
--
Marc Olivé
Blau Advisors

***@blauadvisors.com

C/ Molí de Guasch, 10 baixos 1a,
43440 L’Espluga de Francolí (Tarragona)
Tel. +34 977 870 702
Tel i Fax. + 34 977 870 507

www.blauadvisors.com
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@blauadvisors.com
Camaleón
2011-09-15 11:10:01 UTC
Permalink
Post by Marc Olive
Post by Camaleón
Post by Marc Olive
Post by AngelD
Si no utilizas chroot, el parámetro '-u' del sftp-server
Estamos en las mismas: si el cliente cambia los permisos, de nada
sirve lo que configure en el servidor.
No les dejes, crea una jaula.
¿Como lo impido? ¿quitando el comando "chmod"?
Sí, exacto. Pero quitándolo "sólo" a tu jaula, no al sistema general,
claro :-)

Vamos, que sólo puedan subir y descargar archivos y que no tengan acceso
a una shell completa:

Jailkit howto - creating an sftp/scp-only shell in a chroot jail
http://olivier.sessink.nl/jailkit/howtos_sftp_scp_only.html
Post by Marc Olive
Ya estan dentro de un servidor virtual openvz que solo se usa para el
servidor de archivos (pero con muchos comandos disponibles).
Si no quieres limitarlos tanto podrías crear dos cuentas, una como
usuario "normal" que tenga acceso a lo que deba de tener acceso y que
pueda hacer lo que quiera y otra única y exclusivamente para subir
archivos que termine en la jaula.

Saludos,
--
Camaleón
--
To UNSUBSCRIBE, email to debian-user-spanish-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Archive: http://lists.debian.org/***@gmail.com
Loading...