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:
-
rssh
– används med OpenSSH , tillåter endast vissa filkopieringsprogram, nämligen scp , sftp , rsync , cvs och rdist -
smrsh
, som begränsar kommandona somsendmail
kan anropa