Esto es algo que investigué hace un tiempo y encontré información útil... pero ahora que realmente necesito hacerlo, por supuesto, ya no puedo encontrar la guía que vi.
De todos modos, esta es la situación. Tengo un programa que se ejecuta usando un menú de ncurses a través de SSH. Quiero que los usuarios puedan iniciar sesión en ese programa a través de SSH, pero sólo en ese programa.
¿Qué tengo que hacer para que este escenario sea posible?
- El usuario abre PuTTY
- El usuario inicia sesión en el servidor Linux con su nombre de usuario y contraseña.
- Al iniciar sesión, van directamente a ese programa.
- Incluso en el caso de que un programa se cierre, se bloquee, se cancele, etc., el usuario se desconecta por la fuerza del sistema.
Mi objetivo es impedir que vean una línea de comando y restringirlos solo a ese programa. es posible? ¿Cómo hago/haría para hacerlo?
Respuesta1
Esto también se denomina inicio de sesión cautivo.
Agregue al ~/.profile del usuario una ejecución del programa y una salida.
exec /usr/local/bin/program
exit
Los usuarios inteligentes saben que pueden proporcionar un comando en su cliente ssh que no es el shell esperado. Evite eso con ForceCommand en su configuración sshd:
Comando de fuerza
Fuerza la ejecución del comando especificado por ForceCommand, ignorando cualquier comando proporcionado por el cliente y ~/.ssh/rc si está presente. El comando se invoca utilizando el shell de inicio de sesión del usuario con la opción -c. Esto se aplica a la ejecución de shell, comando o subsistema. Es más útil dentro de un bloque Match.
Match Group programusers
ForceCommand /usr/local/bin/program