Creazione di un account UNIX che esegue solo un comando


13

Esiste un modo per creare un account utente in Solaris che consente agli utenti di eseguire un solo comando? Nessuna shell di login o altro. Potrei farlo con /usr/bin/falsedentro /etc/passwde convincere l'utente a farlo ssh <hostname> <command>, ma c'è un modo migliore per farlo?

Risposte:


15

È possibile utilizzare un comando forzato se gli utenti possono connettersi solo tramite ssh. In sostanza, ogni volta che l'utente si connette tramite ssh con una determinata chiave e un determinato nome utente, lo costringi ad eseguire un comando (o uno script o) che hai determinato in .ssh / authorized_keys. I comandi emessi dagli utenti verranno ignorati.

Per esempio:

# 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

Bene, avevi entrambi ragione. Quello che ho fatto è stato creato uno script che fornisce un menu sul prompt e ha utilizzato il comando di controllo forzato in .ssh / authorized_keys sul server davanti alla chiave per l'utente autorizzato. Questo ora gli consente di inviare SSH al server e al prompt viene fornito un bel menu con diversi comandi da eseguire. Nient'altro può essere eseguito. Giorni felici!
Will Dowling,

2
Modificato; hai bisogno di queste opzioni per proteggere un comando forzato: "no-port-forwarding, no-X11-forwarding, no-agent-forwarding, no-pty".
Tobu,

11

È possibile impostare la shell di quell'utente su uno script che esegue il comando che si desidera consentire: ogni volta che l'utente accede, il comando viene eseguito, quindi l'utente viene disconnesso. E poiché non esiste una "shell completa", non devi avere a che fare con l'utente che prova cose funky;)


0

Mi chiedo se sia possibile farlo con RBAC e dare all'utente una shell privilegiata (pfsh, pfcsh o pfksh) e creare un profilo per i comandi che gli utenti potrebbero eseguire.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.