Ho letto alcune cose per indicare che le shell ristrette possono essere scomposte se non implementate correttamente (anche wikipedia , ad esempio).
Sto cercando delle indicazioni su cosa causa problemi di sicurezza nelle shell ristrette e su come risolvere questi problemi.
Suppongo che il problema principale siano i binari che permetti all'utente di usare; se qualcuno di questi programmi facilita l'esecuzione di ulteriori programmi / script con privilegi più elevati.
Significa che una shell rbash predefinita è relativamente sicura?
Ci sono programmi specifici che sono (più o meno) decisamente sicuri / non sicuri (finora ho visto esempi specifici di vim e scp usati per scoppiare)?
E ci sono altre cose a cui pensare?
Inoltre, ci sono alternative migliori all'utilizzo di una shell limitata quando si desidera limitare i comandi che possono essere eseguiti da un utente?
Aggiornamento 1
In seguito a quanto menzionato da bstpierre con ssh command =, qualcuno ha provato a usare command = per forzare l'utente a eseguire uno script che ha ricevuto input dall'utente usando SSH_ORIGINAL_COMMAND e poi ha eseguito comandi / programmi aggiuntivi limitati basati su quell'input? Immagino che questo avrebbe un caso d'uso piuttosto limitato, ma mi sembra praticabile fintanto che la sceneggiatura è stata cauta sull'input che ha accettato.
Aggiornamento 2
Il suggerimento che ho fatto nell'aggiornamento 1 risulta essere esattamente ciò che fa la gitolite; usando command = e SSH_ORIGINAL_COMMAND, con qualche uncino magico per differenziare i rami. Informazioni dai loro documenti .
So che questo metodo è un'alternativa valida, ma sono ancora in attesa di una risposta alla query originale sulle shell con restrizioni.