Shell s omezeným přístupem

Z Wikipedie, otevřené encyklopedie

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í[editovat | editovat zdroj]

Omezený 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ách sh může mít tento přepínač význam „read“
  • rsh     poznámka: v některých systémech znamená příkaz rsh 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[editovat | editovat zdroj]

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í 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[editovat | editovat zdroj]

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 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ů[editovat | editovat zdroj]

Kromě omezených režimů obvyklých shellů existují také specializované omezené shell programy:

  • rsh[5] – používán společně s OpenSSH, povoluje pouze určité programy na kopírování, jmenovitě scp, sftp, rsync, cvs a rdist
  • smrsh – mohou být vyvolány pouze některé příkazy sendmail

Související články[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Restricted shell na anglické Wikipedii.

  1. POSIX sh specification. pwet.fr [online]. [cit. 2014-12-21]. Dostupné v archivu pořízeném dne 2014-12-21. 
  2. a b GNU Bash manual
  3. ksh manual, Solaris (SunOS 5.10) manual page, Oracle Inc.
  4. ksh(1) manual page, IBM AIX documentation set
  5. rssh