Co to jest / bin / rbash?

14

Uczyłem się o programach Common Shell .

Kiedy uruchamiam cat /etc/shells, pokazuje:

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

Co /bin/rbashtu jest Czy jest używany w skryptach?

stokrotka
źródło
6
Która część man rbashjest niejasna?
Stig Hemmer
1
@StigHemmer. Nie zrobiłem tego man rbashdaje mi również szczegółowe informacje. Dzięki.
stokrotka
3
Czytanie strony podręcznika powinno zawsze być pierwszą próbą zrozumienia narzędzia. Powinieneś także przeczytać go na komputerze, na którym się pojawia, aby upewnić się, że czytasz o poprawnej wersji.

Odpowiedzi:

16

Z wikipedii

Ograniczona powłoka jest powłoką uniksową, która ogranicza niektóre możliwości dostępne dla interaktywnej sesji użytkownika lub działającego w niej skryptu powłoki. Ma on zapewnić dodatkową warstwę bezpieczeństwa, ale jest niewystarczający, aby umożliwić wykonanie całkowicie niezaufanego oprogramowania. Operacja w trybie ograniczonym znajduje się w oryginalnej powłoce Bourne'a [1] i jej późniejszym odpowiedniku bashu, [2] oraz w powłoce Korna. [3] W niektórych przypadkach ograniczona powłoka jest używana w połączeniu z więzieniem chroot, w dalszej próbie ograniczenia dostępu do systemu jako całości.

Zobacz odpowiedź Sorena A na ograniczenia, które dotyczą ograniczonych powłok.

Możesz uruchomić bashw trybie ograniczonym

bash -r
bash --restricted

W moim systemie:

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

Więc jeśli biegnę /bin/rbash, biegnębash

ALE

Wystarczy utworzyć link o nazwie rbash wskazujący bezpośrednio na bash. Chociaż wywołuje to bash bezpośrednio, bez opcji -rlub --restricted, bash rozpoznaje, że został wywołany przez rbash i pojawia się jako ograniczona powłoka.

Jak możesz łatwo przetestować:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted
Zanna
źródło
1
Wydaje się, że wiele ograniczeń. Jak to jest pomocne? Czy używa w skryptach?
stokrotka
3
Może być ustawiony jako domyślna powłoka dla użytkownika, którego chcesz uwięzić w określonym katalogu, na przykład @passa
Zanna
2
@passa, który nie jest skryptem, a ograniczone powłoki są wyjątkowo bezużyteczne do pisania skryptów. Ponieważ wiesz, lub możesz określić, jakie działania są wykonywane w skrypcie, nie ma sensu używać ograniczonej powłoki do skryptowania.
muru
@muru Okay. Może to być wykorzystane do celu, który Zanna powiedziała w swoim komentarzu.
stokrotka
1
Jest to pomocne dla administratora systemu, ponieważ może uniemożliwić innym użytkownikom wykonywanie niebezpiecznych zadań. Jest to nieco mniej przydatne dla użytkownika końcowego.
17

rbash jest wersją bash z ograniczoną (zmniejszoną zdolnością). Zobacz ten artykuł: https://en.wikipedia.org/wiki/Restricted_shell

Z artykułu:

Następujące operacje nie są dozwolone w ograniczonej powłoce:

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

bash dodaje kolejne ograniczenia, w tym:

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

Ograniczenia w ograniczonej skorupie Korn są w dużej mierze takie same jak w ograniczonej skorupie Bourne'a.

Soren A.
źródło