Met GNU Rush kun je op een Linux-systeem de mogelijkheden van de shell doelgericht inperken en bepalen wie welke commando’s mag uitvoeren.
Het doel van de Restricted User Shell (Rush) is primair om de toegang tot bronnen van een server te regelen, bijvoorbeeld tot een Git-repository of tot externe bronnen die door een client via scp of rsync worden aangeroepen. Daarvoor controleert Rush voordat er een commando wordt uitgevoerd of een van de gedefinieerde regels daarop van toepassing is.
Bij het formuleren van die regels kun je als beheerder reguliere expressies gebruiken om complexe commando’s te onderscheppen. Rush kan de commando’s dan vervolgens aanpassen om er zeker van te zijn dat bij het aanroepen van scp bijvoorbeeld ook daadwerkelijk /bin/scp start.
Rush kan ook programma’s van te voren starten en op die manier bijvoorbeeld een chroot-omgeving opbouwen. Dat is met name interessant voor programma’s zoals scp, waarmee anders systeembestanden gekopieerd zouden kunnen worden. Rush kan bovendien de toegang tot systeembronnen begrenzen en bijvoorbeeld het gebruik van de opslagruimte beperken. De meegeleverde tool rushwho toont alle gebruikers die Rush op dat moment gebruiken.
De andere tool rushlast toont alle commando’s die tot dan toe uitgevoerd zijn. Rush kan commando’s uitvoeren die als parameter worden opgegeven. Ook kan het als login-shell fungeren of een nieuwe shell-instance in een interactieve modus starten.