Che cos'è / bin / rbash?


14

Stavo imparando a conoscere i programmi di shell comuni .

Quando corro cat /etc/shells, mostra:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Cosa c'è /bin/rbashqui? È usato negli script?


6
Quale parte di man rbashnon è chiara?
Stig Hemmer,

1
@StigHemmer. Non l'ho fatto man rbashmi dà anche informazioni dettagliate. Grazie.
margherita,

3
Leggere la pagina man dovrebbe essere sempre il tuo primo tentativo di comprendere uno strumento. Dovresti anche leggerlo sulla macchina dove appare per assicurarti di leggere la versione corretta.

Risposte:


16

Da Wikipedia

La shell con restrizioni è una shell Unix che limita alcune delle funzionalità disponibili per una sessione utente interattiva o uno script di shell, in esecuzione al suo interno. Ha lo scopo di fornire un ulteriore livello di sicurezza, ma non è sufficiente per consentire l'esecuzione di software completamente non attendibile. Un'operazione in modalità limitata si trova nella shell Bourne originale [1] e nella sua successiva controparte bash, [2] e nella shell Korn. [3] In alcuni casi viene utilizzata una shell con restrizioni in combinazione con una prigione chroot, in un ulteriore tentativo di limitare l'accesso al sistema nel suo insieme.

Vedi la risposta di Soren A per le limitazioni che si applicano alle shell ristrette.

È possibile eseguire bashin modalità limitata

bash -r
bash --restricted

Sul mio sistema:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

Quindi, se corro /bin/rbash, sto correndobash

MA

È sufficiente creare un collegamento chiamato rbash che punta direttamente a bash. Sebbene questo invochi direttamente bash, senza le opzioni -ro --restricted, bash riconosce che è stato invocato tramite rbash e si presenta come una shell limitata.

Come puoi facilmente testare:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted

1
Sembra molte restrizioni. Allora come è utile? Si usa negli script?
margherita,

3
Potrebbe essere impostato come shell predefinita per un utente che desideri intercettare in una directory particolare, ad esempio @passa
Zanna

2
@passa che non è lo scripting e le shell limitate sono singolarmente inutili per lo scripting. Dato che sai, o puoi determinare, quali azioni vengono eseguite in uno script, non ha senso utilizzare una shell limitata per gli script.
Muru,

@muru Okay. Quindi questo potrebbe essere usato per lo scopo che zanna ha detto nel suo commento.
margherita,

1
Ciò è utile per un amministratore di sistema perché può impedire ad altri utenti di eseguire attività pericolose. È un po 'meno utile per l'utente finale.

17

rbash è una versione limitata (capacità ridotta) di bash. Vedi questo articolo: https://en.wikipedia.org/wiki/Restricted_shell

Dall'articolo:

Le seguenti operazioni non sono consentite in una shell con restrizioni:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

bash aggiunge ulteriori restrizioni, tra cui:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

Le restrizioni nella shell Korn con restrizioni sono molto simili a quelle nella shell Bourne con restrizioni.

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.