Crear una cuenta UNIX que solo ejecuta un comando

13

¿Hay alguna forma de crear una cuenta de usuario en Solaris que permita a los usuarios ejecutar un solo comando? Sin shell de inicio de sesión ni nada más. Lo que podía hacer con /usr/bin/falseen /etc/passwdy acaba de conseguir que el usuario ssh <hostname> <command>, pero hay una manera mejor de hacerlo?

Will Dowling
fuente

Respuestas:

15

Podría usar un comando forzado si los usuarios solo pueden conectarse a través de ssh. Esencialmente, cada vez que el usuario se conecta a través de ssh con una determinada clave y un determinado nombre de usuario, lo obligas a ejecutar un comando (o un script o) que determinaste en .ssh / Authorized_keys. Los comandos emitidos por los usuarios serán ignorados.

Por ejemplo:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key
Barthelemy
fuente
Bueno, ambos tenían razón. Lo que hice fue crear un script que proporciona un menú en el indicador y utiliza el comando de verificación forzada en .ssh / Authorized_keys en el servidor frente a la clave para el usuario autorizado. Esto ahora le permite ssh al servidor y en el indicador se le da un buen menú con varios comandos para ejecutar. Nada más se puede ejecutar. ¡Días felices!
Will Dowling
2
Editado; necesita estas opciones para asegurar un comando forzado: "no-port-forwarding, no-X11-forwarding, no-agent-forwarding, no-pty".
Tobu
11

Puede configurar el shell de ese usuario en un script que solo ejecute el comando que desea permitir: cada vez que el usuario inicia sesión, el comando se ejecuta y el usuario se desconecta. Y dado que no hay un "shell completo", no tiene que lidiar con el usuario que intenta cosas funky;)

tante
fuente
0

Me pregunto si podría hacer esto con RBAC y darle al usuario un shell privilegiado (pfsh, pfcsh o pfksh) y crear un perfil para los comandos que los usuarios podrían ejecutar.

Sleepyweasel
fuente