Shell s omezeným přístupem
Shell s omezeným přístupem (anglicky restricted shell) je v informatice typ unixové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šek Bash[2] nebo Korn 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.
Vyvolání
editovatOmezený režim v Bourne shell sh
, s napodobením práce POSIXu, 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 shell
Omezený 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 shellu ksh
:
rksh
ksh -r
Nastavení rbash
editovatPro 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í na bash
. Ačkoliv takto vyvolaný bash
je bez přepínače -r
nebo --restricted
, shell pozná, že byl vyvolán pomocí názvu rbash
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ím sudo):
$ cd /bin
$ ln -s bash rbash
V shellu s omezeným přístupem nejsou povoleny následující operace:
- změna adresáře
- použití absolutních názvů cest obsahujících lomítko
- změna proměnných PATH a SHELL
- přesměrování výstupu
Bash doplňuje další omezení, včetně:[2]
- omezení definic funkcí
- omezení použití jména souborů obsahujíc lomítko v názvu souboru
bash
Restrikce v Korn shellu s omezeným přístupem jsou téměř stejné jako v omezeném Bourn shellu.[4]
Nedostatky režimu s omezeným přístupem
editovatRež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 editoru vi, 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 /
/$
Přehled programů
editovatKromě omezených režimů obvyklých shellů existují také specializované omezené shell programy:
Související články
editovatReference
editovatV tomto článku byl použit překlad textu z článku Restricted shell na anglické Wikipedii.
- ↑ POSIX sh specification. pwet.fr [online]. [cit. 2014-12-21]. Dostupné v archivu pořízeném dne 2014-12-21.
- ↑ a b GNU Bash manual
- ↑ ksh manual, Solaris (SunOS 5.10) manual page, Oracle Inc.
- ↑ ksh(1) manual page, IBM AIX documentation set
- ↑ rssh