# Sudo (Česky)

Sudo (su "do") dovoluje systémovému administrátorovi předat určitým uživatelům (nebo jejich skupinám) oprávnění spouštět některé (případně všechny) příkazy jako root nebo jiný uživatel, přičemž poskytuje o těchto příkazech a jejich parametrech kontrolní záznamy. [1]

## Princip

Sudo je bezpečná alternativa k tradičnímu příkazu su. Uživatelé často používají su (substitute user — nahradit uživatele) pro získání práv roota. Obecně je přihlašování pod rootem — superuživatelem — na delší dobu považováno za nerozumné. Uživatel root si užívá kompletní a absolutní kontroly nad celým systémem, což je riskantní. Malé přepsání snadno dovede uvést systém do nepoužitelného stavu a aplikace běžící pod tímto uživatelem mohou tento neomezený přístup šířit.

Spíše než to nabízí sudo dočasné navýšení práv pro jednotlivé příkazy (ať už jako root nebo jiný uživatel); navracejíc se po jejich dokončení do neprivilegovaného stavu, čímž chrání systém před nechtěnými důsledky. Navíc sudo zaznamenává všechny příkazy a neúspěšné pokusy o přístup pro kontrolu těchto událostí.

## Instalace

Pro instalaci suda zadejte:

    # pacman -S sudo

Ve výchozím nastavení uživatelům není dovoleno sudo spustit. Pro instrukce viz #Konfigurace.

## Použití

S nainstalovaným a nakonfigurovaným sudem mohou uživatelé pro spuštění příkazů s oprávněními superuživatele (nebo jinými) před tyto příkazy psát `sudo`. Například:

    $ sudo pacman -Syu

Viz manuálová stránka suda (anglicky) pro více informací.

## Konfigurace

Konfigurační soubor pro sudo je `/etc/sudoers`. Tento soubor nemá být upravován přímo! Místo toho musí uživatelé zadat jako root příkaz `visudo`, jenž v programu specifikovaném proměnnou prostředí $EDITOR otevře dočasnou kopii konfiguračního souboru.

    # visudo

Výchozí editor je vi. Pokud si s vi nerozumíte, zadejte nejdříve tento příkaz:

    # export EDITOR=nano

Nebo jej změňte natrvalo přídáním následujícího do souboru `/etc/sudoers`, kde "vim" je vámi upřednostňovaný textový editor:

    # Specifikace Defaults
    # Ve výchozím nastavení pročistit proměnné prostředí
    Defaults      env_reset
    # Nastavit výchozí editor na vim, nedovolit programu visudo použít EDITOR/VISUAL.
    Defaults      editor=/usr/bin/vim, !env_editor

Poznámka: I když použijete jiný editor, stále musíte spouštět `visudo` jako root.

Když je soubor uložen, `visudo` jej před přepsáním existujícího souboru `/etc/sudoers` prověří na syntaktické chyby. Tento bezpečnostní prvek je zaveden kvůli tomu, že pokud konfigurační soubor obsahuje chyby, sudo bude uvedeno v nepoužitelnost.

Abyste určitému uživateli povolili získání oprávnění roota, když na začátek příkazu napíše "sudo", přidejte následující řádek:

    UŽIVATELSKÉ_JMÉNO   ALL=(ALL) ALL

Povolení přístupu k sudu pouze z lokálního počítače:

    UŽIVATELSKÉ_JMÉNO   HOSTNAME=(ALL) ALL

kde UŽIVATELSKÉ_JMÉNO je uživatelské jméno dotyčného uživatele.

Povolení členům skupiny kolo použít sudo bez výzvy k zadání hesla:

    %kolo      ALL=(ALL) NOPASSWD: ALL

Obšírnější příklad `sudoers` můžete nalézt zde. Pro detailní informace si prohlédněte manuál k sudoers (anglicky).

### Časový limit pro heslo

Uživatelé si mohou přát změnit výchozí časový limit před vypršením hesla. Toho docílíte přidáním následující řádky do `/etc/sudoers` (`visudo`). Například:

    Defaults:UŽIVATELSKÉ_JMÉNO timestamp_timeout=20

Zde heslo pro uživatele UŽIVATELSKÉ_JMÉNO vyprší, pokud sudo nepoužije déle než 20 minut.

Tip: Pokud chcete, aby se sudo ptalo na heslo vždy, nastavte časový limit na nulu.

## Tipy a triky

### Urážky

Uživatelé mohou sudo nakonfigurovat tak, aby namísto výchozí zprávy "špatné heslo" zobrazovalo chytré urážky. Najděte řádek Defaults v souboru `/etc/sudoers` a přidejte za čárku ke stávajícím volbám "insults". Výsledek může vypadat nějak takto:

    # Specifikace Defaults
    Defaults insults

Pro otestování zadejte `sudo -K` pro ukončení současného sezení a nechce se suda dotázat na heslo.

### Heslo roota

Uživatelé mohou sudo nakonfigurovat tak, aby místo jejich vlastního uživatelského hesla chtělo heslo uživatele root. Toho lze docílit přidáním volby "rootpw" na řádek Defaults v souboru `/etc/sudoers`:

    Defaults timestamp_timeout=0,rootpw

Category:

- Security (Česky)