Ograniczona skorupa
Powłoka ograniczona to powłoka systemu Unix , która ogranicza niektóre dostępne możliwości do interaktywnej sesji użytkownika lub skryptu powłoki działającego w jej obrębie. Ma na celu zapewnienie dodatkowej warstwy bezpieczeństwa, ale jest niewystarczająca, aby umożliwić uruchamianie całkowicie niezaufanego oprogramowania. Operacja w trybie ograniczonym występuje w oryginalnej powłoce Bourne'a i jej późniejszym odpowiedniku Bash oraz w powłoce KornShell . W niektórych przypadkach ograniczona powłoka jest używana w połączeniu z chrootem więzienia, w dalszej próbie ograniczenia dostępu do systemu jako całości.
Wezwanie
Tryb ograniczony powłoki Bourne'a sh i jego odpowiedniki POSIX są używane, gdy interpreter jest wywoływany w jeden z następujących sposobów:
- sh -r zauważ, że jest to w konflikcie z opcją „read” w niektórych wariantach sh
- rsh zauważ, że może to kolidować z poleceniem zdalnej powłoki , które w niektórych systemach jest również nazywane rsh
Ograniczony tryb Bash jest używany, gdy Bash jest wywoływany na jeden z następujących sposobów:
- rbasz
- bash -r
- bash – ograniczone
Podobnie tryb ograniczony KornShell jest tworzony przez wywołanie go w następujący sposób:
- rksz
- ksh -r
Konfigurowanie rbasha
W przypadku niektórych systemów (np. CentOS ) wywołanie przez rbash nie jest domyślnie włączone, a użytkownik otrzymuje błąd polecenia nie znaleziono , jeśli jest wywoływany bezpośrednio, lub błąd logowania, jeśli plik /etc/passwd wskazuje /bin/rbash jako powłoka użytkownika.
Wystarczy utworzyć link o nazwie rbash wskazujący bezpośrednio na bash . Chociaż wywołuje to Bash bezpośrednio, bez -r lub --restricted , Bash rozpoznaje, że zostało wywołane przez rbash i pojawia się jako ograniczona powłoka.
Można to osiągnąć za pomocą następujących prostych poleceń (wykonywanych jako root, zalogowany jako użytkownik root lub używając sudo ):
root@host:~# cd /bin root@host:/bin# ln bash rbash
Ograniczone operacje
Następujące operacje nie są dozwolone w powłoce z ograniczeniami:
- zmiana katalogu
- określanie bezwzględnych nazw ścieżek lub nazw zawierających ukośnik
- ustawienie zmiennej PATH lub SHELL
- przekierowanie wyjścia
Bash dodaje dalsze ograniczenia, w tym:
- ograniczenia definicji funkcji
- ograniczenia dotyczące używania nazw plików z ukośnikiem we wbudowanych elementach Bash
Ograniczenia w ograniczonej powłoce KornShell są prawie takie same jak w ograniczonej powłoce Bourne'a.
Słabe strony ograniczonej powłoki
Ograniczona powłoka nie jest bezpieczna. Użytkownik może wydostać się z ograniczonego środowiska, uruchamiając program, który zawiera funkcję powłoki. Poniżej znajduje się przykład użycia funkcji powłoki w vi do wyjścia z ograniczonej powłoki:
użytkownik@host:~$ vi
: set shell = /bin/ sh : shell
Lub po prostu uruchamiając nową nieograniczoną powłokę, jeśli znajduje się ona w PATH , jak pokazano tutaj:
użytkownik@host:~$ rbash użytkownik@host:~$ cd / rbash: cd: ograniczony użytkownik@host:~$ bash użytkownik@host:~$ cd / użytkownik@host:/$
Lista programów
Poza ograniczonymi trybami zwykłych powłok, wyspecjalizowane ograniczone programy powłoki obejmują:
-
rssh
– używany z OpenSSH , zezwalający tylko na niektóre programy do kopiowania plików, a mianowicie scp , sftp , rsync , cvs i rdist -
smrsh
, który ogranicza liczbę poleceń, które może wywołaćsendmail