Shell s omezeným přístupem (anglickyrestricted shell) je vinformatice typunixového shellu, který omezuje možnosti v něm prováděných interaktivních aktivit uživatele nebo možnostíshellových skriptů. Jeho cílem je poskytovat další úroveň zabezpečení, avšak neumí zabránit spuštění nedůvěryhodného softwaru. Vlastní operace omezeného režimu jsou prováděny plnohodnotným shellem (Bourne shell,[1] jeho pozdější protějšekBash[2] neboKorn shell).[3] V některých případech je shell v omezeném režimu používán v kombinaci s režimem falešného kořene (chroot), což je další pokus omezit přístup ke zbytku systému.
Omezený režim v Bourne shellsh
, s napodobením prácePOSIXu, lze vyvolat z interpretu jedním z následujících způsobů:
sh -r
poznámka: v některých variantáchsh
může mít tento přepínač význam „read“rsh
poznámka: v některých systémech znamená příkazrsh
vzdálené voláníremote shellOmezený režim Bashe je aktivován, jestliže je volán jedním z následujících způsobů:
rbash
bash -r
bash --restricted
Podobně je použit i v Kornu shelluksh
:
rksh
ksh -r
Pro některé systémy (např.CentOS) není vyvolání přes rbash ve výchozím nastavení umožněno a uživatel obdrží chybu „příkaz nebyl nalezen“ (volal-li příkaz přímo) nebo selže přihlášení, má-li v souboru/etc/passwd
nastaven spouštěcí shell/bin/rbash
. V takovém případě je potřeba ručně vytvořit symbolický odkaz pojmenovanýrbash
odkazující nabash
. Ačkoliv takto vyvolanýbash
je bez přepínače-r
nebo--restricted
, shell pozná, že byl vyvolán pomocí názvurbash
a sám se přepne na shell s omezeným přístupem. Toho může být dosaženo pomocí následujících příkazů (vykonaných uživatelem root nebo s použitímsudo):
$cd/bin $ln-sbashrbash
V shellu s omezeným přístupem nejsou povoleny následující operace:
Bash doplňuje další omezení, včetně:[2]
bash
Restrikce v Korn shellu s omezeným přístupem jsou téměř stejné jako v omezeném Bourn shellu.[4]
Režim s omezeným přístupem není zcela bezpečný. Uživatel může prolomit omezené prostředí spuštěním programu obsahujícím funkci shellu.Následuje příklad spuštění shellu v editoruvi, který může být použit na únik z režimu s omezeným přístupem:
~$ vi :set shell=/bin/sh :shell
Nebo jednoduše spuštěním nového neomezeného shellu, nachází-li se v PATH, jak je ukázáno zde:
~$ rbash ~$ cd / rbash: cd: restricted ~$ bash ~$ cd / /$
Kromě omezených režimů obvyklých shellů existují také specializované omezené shell programy:
rsh
[5] – používán společně sOpenSSH, povoluje pouze určité programy na kopírování, jmenovitěscp,sftp,rsync,cvs ardistsmrsh
– mohou být vyvolány pouze některé příkazysendmailV tomto článku byl použitpřeklad textu z článkuRestricted shell na anglické Wikipedii.