He leído algunas cosas para indicar que los shells restringidos se pueden romper si no se implementan correctamente (incluso wikipedia , por ejemplo).
Estoy buscando alguna guía sobre las causas de los agujeros de seguridad en los depósitos restringidos y cómo resolver estos problemas.
Supongo que el problema principal son los binarios que le permites al usuario usar; si alguno de estos programas facilita la ejecución de otros programas / scripts con privilegios más altos.
¿Eso significa que un shell rbash predeterminado es relativamente seguro?
¿Hay algún programa específico que sea (más o menos) definitivamente seguro / no seguro (hasta ahora he visto ejemplos específicos de vim y scp utilizados para romper)?
¿Y hay otras cosas en que pensar?
Además, ¿existen mejores alternativas al uso de un shell restringido cuando desea limitar los comandos que un usuario puede ejecutar?
Actualización 1
Después de lo que bstpierre mencionó con el uso de ssh command =, ¿alguien ha intentado usar command = para forzar al usuario a ejecutar un script que tomó información del usuario usando SSH_ORIGINAL_COMMAND y luego ejecutó comandos / programas adicionales limitados basados en esa entrada? Me imagino que esto tendría un caso de uso bastante limitado, pero me parece viable siempre y cuando el script sea cuidadoso con la información que aceptó.
Actualización 2
La sugerencia que hice en la Actualización 1 resulta ser exactamente lo que hace la gitolita; usando command = y SSH_ORIGINAL_COMMAND, con algo de magia mágica para diferenciar entre ramas. Información de sus docs .
Así que sé que este método es una alternativa viable, pero todavía estoy buscando una respuesta a la consulta original sobre shells restringidos.