Begränsat skal

Det begränsade skalet är ett Unix-skal som begränsar en del av de möjligheter som är tillgängliga för en interaktiv användarsession, eller till ett skalskript som körs i det. Den är avsedd att ge ett extra lager av säkerhet, men är otillräckligt för att tillåta exekvering av helt opålitlig programvara. En operation med begränsat läge finns i det ursprungliga Bourne-skalet och dess senare motsvarighet Bash , och i KornShell . I vissa fall används ett begränsat skal i samband med ett chroot- fängelse, i ett ytterligare försök att begränsa åtkomsten till systemet som helhet.

Åkallan

Det begränsade läget för Bourne-skalet sh , och dess POSIX-workalikes, används när tolken anropas på något av följande sätt:

  •     sh -r notera att detta är i konflikt med alternativet "läs" i vissa sh- varianter
  •     rsh Observera att detta kan komma i konflikt med fjärrskalkommandot , som även kallas rsh på vissa system

Det begränsade läget för Bash används när Bash anropas på något av följande sätt:

  • rbash
  • bash -r
  • bash --restricted

På liknande sätt produceras KornShells begränsade läge genom att anropa det så här:

  • rksh
  • ksh -r

Ställer in rbash

För vissa system (t.ex. CentOS ) är anropet via rbash inte aktiverat som standard, och användaren får ett kommando not found- fel om det anropas direkt, eller ett inloggningsfel om filen /etc/passwd indikerar /bin/rbash som användarens skal.

Det räcker med att skapa en länk som heter rbash som pekar direkt till bash . Även om detta anropar Bash direkt, utan -r eller --restricted , inser Bash att det anropades genom rbash och det kommer upp som ett begränsat skal.

Detta kan åstadkommas med följande enkla kommandon (exekveras som root, antingen inloggad som användarrot eller med sudo ):

 root@host:~#  cd  /bin  root@host:/bin#  ln bash rbash 

Begränsad verksamhet

Följande operationer är inte tillåtna i ett begränsat skal:

  • byter katalog
  • anger absoluta sökvägsnamn eller namn som innehåller ett snedstreck
  • ställa in PATH- eller SHELL-variabeln
  • omdirigering av utdata

Bash lägger till ytterligare begränsningar, inklusive:

  • begränsningar av funktionsdefinitioner
  • begränsningar för användningen av filnamn med snedstreck i inbyggda Bash-program

Restriktioner i det begränsade KornShell är ungefär desamma som i det begränsade Bourne-skalet.

Svagheter med ett begränsat skal

Det begränsade skalet är inte säkert. En användare kan bryta sig ur den begränsade miljön genom att köra ett program som har en skalfunktion. Följande är ett exempel på skalfunktionen i vi som används för att fly från det begränsade skalet:

 användare@värd:~$  vi 
 
 :  set  skal  =  /bin/  sh  :  skal 

Eller genom att helt enkelt starta ett nytt obegränsat skal, om det är i PATH , som visas här:


 användare@värd:~$  rbash  användare@värd:~$  cd  /  rbash: cd: begränsad  användare@värd:~$  bash  användare@värd:~$  cd  /  användare@värd:/$ 

Lista över program

Utöver de begränsade lägena för vanliga skal, inkluderar specialiserade begränsade skalprogram:

Se även