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ą:

Zobacz też