Portál AbcLinuxu, 2. května 2025 10:27
Dva důvody proč nepracovat jako root. A jak vyřešit problém s lidskou leností.
Vždycky mě vytočí lidé, kteří obhajují práci v Linuxu (nebo jiném unixu) pod rootem. Nejčastějším důvodem je, jak jinak, lidská pohodlnost - Kdo tam má pořád dávat to heslo?, zní nejčastější námitka. Dokonce jsem zaslechl názory, že uživatel by se neměl nechat systémem omezovat.
Důvody proč nepracovat jako root jsou dva:
rm -rf / home/user/soubor
. Je to hloupý překlep, za kterou si vysloužíme hlášku Permission denied
. Pokud nepracujeme root. V tomto případě se smaže celý systém, včetně přimountovaných disků (maximálně přežijí ntfs partition, ale jen kvůli tomu, že jsou připojeny jako ro).
V době, kdy je stále více počítačů připojeno k internetu, se nebezpečí jenom zvyšuje. Počítače takových "chytráků", co si nenechají od počítače nic nařizovat, jsou potom velice snadným cílem všech útočníků. Ti je mohou využít na rozesílání spamu, lámání hesel, k nabourávání do dalších počítačů, ... . Pokud pracujete jako běžný uživatel, má to útočník mnohem těžší.
Jenže, co je to všchno vysvětlování platné, když nejčastějším argumentem je již výše zmíněné Kdo tam má pořád dávat to heslo?
Jedna z možností, jak obejít zadávání hesla, je nastavit su, aby se neptalo na heslo pro určité uživatele (typicky ze skupiny wheel). Tím můžete dát administrátorská práva jen určitým uživatelům. Ti pak nemusí zadávat heslo. Z mnoha důvodů to není ideální řešení (pořád má někdo k dispozici všechny práva roota, přestože je nepotřebuje).
To správné řešení se jmenuje sudo. Pomocí tohoto programu můžete určitým uživatelům dát některé pravomoce roota, ale ne všechny (to lze taky, ale není to vhodné). Konfigurace programu sudo je uložena v /etc/sudoers
, ale k nastavení se používá visudo
, který mimo jiné kontroluje syntaxi. Veškeré podstatné informace jsou v manuálových stránkách (man sudoers
), doporučuji především sekci EXAMPLES, kde jsou ukázky konkrétních konfigurací.
Instalace softwaru je v linuxu často dělána pomocí správce balíčků (rpm, apt-get, urpmi, emerge, swaret, installpkg, ...). Ale je to privilegovaná operace, proto instalace může provádět pouze root. Jenže stále zadávat heslo nikoho nebaví. Proto si nastavíme sudo, abychom mohli instalovat balíčky jako normální uživatelé a bez nutnosti zadávat heslo.
#/etc/sudoers # Host alias specification # User alias specification User_Alias SYSADMIN = misak, michal # Cmnd alias specification Cmnd_Alias INSTALL = /usr/bin/emerge # SYSADMINs could use emerge SYSADMIN ALL = NOPASSWD: INSTALL
Příkaz sudo /usr/bin/emerge
již potom funguje i pod normálním uživatelem. Ale to už je kratší a pohodlnější napsat su, heslo a emerge! Což v mém případě znamená 16 znaků a sudo verze 20 znaků. Naštěstí tvůrci shellu s lidskou leností počítali, proto není nic jednoduššího, než použít alias emerge='sudo /usr/bin/emerge'
a umístit jej do startovacího skriptu.
Tiskni
Sdílej:
Při práci na počítači děláme chyby, všichni a bez vyjímky.Omlouvám se, že otravuju kvůli pravopisu, ale chyba v téhle větě je hezká
... zejména pro začátečníky. Já jsem si hrál s nastavením všecho možného, přesouval jsem věci sem a tam, instaloval jsem všecko možné. Další uživatelský účet jsem si pořídil teprve na to, abych si ověřil, jestli jsou správně nastavena práva, takže programy budou fungovat i nesprávci.
Výše uvedený příklad s rm -rf /
je pěkný. Ale co na tom? Programy jako su
a sudo
nebezpečí nesníží, protože občas se každý na svém počítači přihlašuje jako správce. Čím dříve někdo podobnou chybu udělá, tím líp, není nad poučení z vlastních chybiček
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.