rbash sta per la shell bash con restrizioni. In UNIX, come quando si opera quando viene creato un utente, viene assegnata una shell predefinita (/bin/bash). Quindi un utente può spostarsi nelle directory di chiunque, quindi per evitare questa situazione possiamo assegnare la shell con restrizioni a un utente, la shell con restrizioni è proprio come un ambiente simile a una prigione o un ambiente chroot.
Perché rbash?
Se bash viene avviato con il nome rbash, o l'opzione -r viene fornita al momento dell'invocazione, la shell diventa limitata. Una shell con restrizioni viene utilizzata per impostare un ambiente più controllato rispetto alla shell standard. Si comporta in modo identico a bash con l'eccezione che quanto segue non è consentito o non viene eseguito:
- cambiare directory con cd
- impostare o disimpostare i valori di SHELL, PATH, ENV o BASH_ENV
- specificando i nomi dei comandi contenenti /
- specificando un nome file contenente una / come argomento per il comando integrato
- Specificare un nome file contenente una barra come argomento dell'opzione -p del comando hash incorporato
- importazione delle definizioni delle funzioni dall'ambiente shell all'avvio
- analisi del valore di SHELLOPTS dall'ambiente shell all'avvio
- Reindirizzamento dell'output utilizzando gli operatori di reindirizzamento>,>|, <>,>&, &> e>>
- usando il comando integrato exec per sostituire la shell con un altro comando
- aggiungere o eliminare comandi integrati con le opzioni -f e -d al comando integrato abilita
- usando il comando enable builtin per abilitare i builtin della shell disabilitati
- specificando l'opzione -p nel comando incorporato del comando.
- disattivazione della modalità con restrizioni con set +r o set +o con restrizioni.
Come impostare una shell con restrizioni
Imposta l'ambiente che desideri per un particolare utente e puoi inserirlo nel file di avvio:$HOME/.bash_profile, come mostrato di seguito:
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH bash -r
Ora accedi con l'utente e prova a cambiare le directory.
$ cd /etc/ bash: cd: restricted $ cd /tmp/ bash: cd: restricted
Per l'impostazione di una shell con restrizioni per tutti gli utenti, crea un collegamento simbolico da /bin/bash a /bin/rbash:
# cd /bin # ln -s bash rbash