- Root je superuživatel Linuxu s úplnou kontrolou nad systémem, nad rámec jakýchkoli obvyklých omezení oprávnění.
- Obvyklá praxe není přihlašovat se jako root, ale používat sudo nebo su k získání zvýšených oprávnění kontrolovaným a dočasným způsobem.
- Neopatrné používání root oprávnění může vymazat systém, nainstalovat malware nebo narušit zabezpečení, proto je nejlepší minimalizovat jeho používání a kontrolovat příkazy.
- Správná konfigurace sudoerů, uzamčení root účtu a dodržování osvědčených postupů umožňuje bezpečnou a sledovatelnou administraci Linuxu.
Pokud přecházíte z Windows (viz uživatelské účty ve Windows ) a přistáváte na Linuxu, může vám slavný uživatel root znít jako nesmysl, ale ve skutečnosti je to klíčový prvek, který odděluje stabilní a bezpečný systém od úplné katastrofy. Root je „absolutní šéf“ systému, ten, kdo může instalovat, mazat, poškozovat a opravovat prakticky cokoli bez nutnosti žádat o svolení.
Pochopení účelu oprávnění root v Linuxu, jeho vztahu k příkazům `sudo` a `su` a souvisejících rizik je nezbytné pro správu vašeho systému, ať už se jedná o domácí notebook nebo produkční server . Tento článek podrobně a srozumitelným jazykem vysvětlí, co je root, jak se používá v různých distribucích (zejména Ubuntu), jeho potenciální nebezpečí a osvědčené postupy, jak zabránit znefunkčnění počítače.
Co je root uživatel v Linuxu a co ho dělá výjimečným?
V každém systému GNU/Linux existuje uživatel s plnými oprávněními, nazývaný root, známý také jako superuživatel . Tento uživatel má UID 0 a nepodléhá obvyklým omezením oprávnění pro soubory a procesy: může číst, upravovat nebo mazat libovolný soubor, instalovat nebo odinstalovat software, měnit nastavení systému, spravovat ostatní uživatele a přistupovat ke kritickým službám.
Ve srovnání s Windows by root byl ekvivalentem správce, ale s ještě většími možnostmi.Protože v Linuxu je model oprávnění propracovanější a oddělení mezi uživateli a službami je mnohem přísnější. Zatímco běžný uživatel má omezené možnosti v cestách jako /etc, /usr, /var o /bootRoot přístup vám umožní přístup kamkoli bez nutnosti žádat o povolení.
Kromě běžných uživatelů a roota definuje Linux „systémové uživatele“ nebo servisní účty (démony) s velmi omezenými oprávněními, které se používají ke spouštění webových serverů, databází nebo jiných démonů. To zajišťuje, že i v případě napadení služby útočník automaticky nezíská plný přístup k systému... pokud se mu nepodaří eskalovat oprávnění na roota.
Standardní uživatel ve výchozím nastavení nemůže instalovat systémové programy, upravovat globální konfigurační soubory ani vytvářet adresáře v citlivých oblastech.Pro provedení kteréhokoli z těchto úkolů budete muset zvýšit oprávnění pomocí nástrojů, jako je sudo o sucož jsou přesně obvyklé mechanismy pro kontrolované „vyvolání“ superuživatele.
V mnoha moderních distribucích, zejména v Ubuntu a jeho derivátech, je přímé přihlášení roota zakázáno.Místo toho se během instalace vytvoří běžný uživatel, který patří do skupiny administrators (například sudo o admin) a příkaz se používá sudo provádět administrativní akce vyžádáním vlastního hesla, nikoli hesla root.
Rozdíl mezi běžnými uživateli, rootem a skupinou sudo
Linux implementuje systém oprávnění založený na uživatelích a skupinách . Obecně řečeno, můžeme rozlišit tři hlavní typy účtů, se kterými se setkáte v každodenním používání, když mluvíme o root účtech:
Pravidelní uživateléToto jsou účty lidí, kteří systém používají. Mají domov Mohou však instalovat programy do vlastního adresáře, spouštět desktopové aplikace, ukládat dokumenty atd. Nemohou provádět úlohy správy systému. jak instalovat globální balíčky, upravovat konfigurace v /etc nebo spravovat jiné uživatele, pokud nepoužívají sudo o su.
Uživatel root je superuživatel s absolutní kontrolou. Nepodléhá žádným omezením oprávnění, s výjimkou těch, která jsou dána samotným jádrem nebo pokročilými bezpečnostními mechanismy . Může si doslova „dělat, co se mu zlíbí“, od smazání kořenového adresáře až po změnu oprávnění libovolného souboru. Právě z tohoto důvodu se jeho používání pro každodenní úkoly nedoporučuje.
Uživatelé s oprávněním správce (sudoery): jsou běžní uživatelé, kteří patří do speciální skupiny (obvykle sudo o admin) A Mají oprávnění spouštět příkazy jako root pomocí sudoNapříklad pro přidání uživatele do skupiny sudo Můžete použít něco takového:sudo usermod -aG sudo nombreusuario
Jakmile je uživatel součástí skupiny sudo, může spouštět privilegované příkazy přidáním prefixu sudoSystém se vás zeptá na heslo (ne heslo roota) a pokud je správné, provede příkaz s oprávněními superuživatele. To poskytuje dobrou rovnováhu mezi bezpečností a pohodlím.
Co je to kořen v praxi a k čemu se používá?
Kromě teorie je uživatel root identitou, kterou systém používá k provádění jakýchkoli zásadních změn . Můžete pokračovat v práci se svým běžným uživatelským účtem a přistupovat k root účtu pouze v případě potřeby. Podívejme se na některá z jeho hlavních použití.
Instalace nebo odinstalace systémového softwaruSprávci balíčků (například) apt, dnf o pacmanPotřebují zapisovat do chráněných cest, takže Vždy běží s root oprávněními.Typickým příkladem by bylo:sudo apt install vlc
Úprava konfiguračních souborů systémuVětšina systémových služeb a programů se konfiguruje pomocí textových souborů v adresářích, jako například /etcPro jejich otevření v editoru a uložení potřebujete zvýšená oprávnění. Například:sudo nano /etc/hosts
Změňte heslo root nebo hesla jiných uživatelůOperace, jako je změna hesla superuživatele nebo hesla jiného účtu, zahrnují přístup k databázi hesel systému. Typický příkaz by byl:sudo passwd root
Spouštět potenciálně nebezpečné příkazy. Nástroje jako rm (vymazat), chmod (změnit oprávnění), chown (změnit vlastníka) nebo mkfs (formátování) může při nesprávném použití napáchat mnoho škody. Systém vyžaduje oprávnění root pro operace, které ovlivňují kritické soubory nebo zařízení. aby se zabránilo běžnému uživateli v nechtěném zničení systému.
Spravovat spouštění, vypínání a restartování strojePříkazy jako reboot, poweroff nebo pokročilé zpracování systemctl o systémových službách Také vyžadují oprávnění superuživatele.. Více informací o systemd a jeho správa služeb Můžete se podívat do specializované dokumentace. Jinak by si kterýkoli uživatel mohl kdykoli restartovat produkční server.
V praxi, pokud se v Linuxu něco nezdaří s chybou „oprávnění odepřeno“, je docela pravděpodobné, že to budete muset spustit s root oprávněními. pomocí sudo nebo dočasné přepnutí na superuživatele s su.
Příkazy sudo a su: kdy je použít
Jakmile pochopíte, že root je „vlastníkem“ systému, je čas pochopit, jak tato oprávnění získat z vašeho běžného uživatelského účtu.Dva klasické nástroje pro to jsou sudo y sukteré nedělají úplně totéž, i když si je mnoho lidí plete.
sudo („superuser do“) se používá k provedení jednoho příkazu s oprávněními jiného uživatele, obvykle root.Nepřepínáte relace, nestáváte se root „pro všechno“; pouze daný konkrétní příkaz se provede se zvýšenými oprávněními. Například:sudo apt install gparted
Pokaždé, když použijete sudo Systém se vás zeptá na heslo (pokud jste ho v poslední době nezadali).Po několika minutách nečinnosti platnost „lístku“ sudo vyprší a budete se muset znovu ověřit, což přidává důležitou vrstvu zabezpečení.
su („přepnutí uživatele“) změní vaši uživatelskou identitu v rámci jedné relacePokud jej použijete bez argumentů, stanete se rootem (požádá vás o heslo roota) a všechny následující příkazy budou provedeny s těmito oprávněními, dokud neukončíte program. exit. Například:suContraseña:whoami # devuelve 'root'
Můžete také použít su nombreusuario přepínat z jednoho uživatele na druhéhoza předpokladu, že znáte heslo k cílovému účtu. Tím se prostředí kompletně změní na prostředí nového uživatele (proměnné, domovatd.) doporučuje se používat su - o su - nombreusuario.
Obecně se považuje za bezpečnější a vhodnější používat sudo pro konkrétní příkazy a uchýlit se k su pouze tehdy, když skutečně potřebujete delší rootovací relaci (například při úlohách obnovy nebo složité údržbě).
Specifika rootování v Ubuntu a odvozených distribucích
Ubuntu a mnoho distribucí založených na Ubuntu se řídí poměrně jasnou bezpečnostní filozofií: uživatel root existuje, ale je zablokován pro přímé přihlášení . To znamená, že po standardní instalaci se nemůžete přihlásit jako root, ať už v terminálu nebo v grafickém prostředí, pomocí hesla, protože nemá žádné přiřazené.
Ubuntu místo toho volí intenzivní využití sudoBěhem instalace je vytvořen uživatel s oprávněními správce, který patří do skupiny sudoOdtud se jakýkoli administrativní úkol provádí pomocí:sudo comando
Pokud potřebujete v Ubuntu „plnohodnotný“ root shell, máte několik bezpečných možností.:sudo -i # Otevření relace přihlášení rootsudo su - # Přepněte na root s přihlašovacím prostředím
Obě metody vás ponechají jako root v daném terminálu, dokud neukončíte příkaz exitUvidíte, že výzva se obvykle mění a končí v # místo $Toto je klasický znak toho, že máte oprávnění superuživatele. Je důležité to mít na paměti, abyste se vyhnuli spuštění nebezpečných příkazů tam, kde by neměly být.
I když se to nedoporučuje, můžete v Ubuntu povolit uživatele root přiřazením hesla. s:sudo passwd root
Po zadání a potvrzení nového hesla se root „odemkne“ a bude možné například používat su bez předchozího příkazu sudo nebo dokonce povolení přímého přihlášení přes TTY nebo SSH (což se na exponovaných serverech velmi nedoporučuje).
Skutečná rizika neopatrného používání rootu
Pracovat jako root, aniž byste přesně věděli, co děláte, je jako couvat s kamionem po dálnici: možná to půjde, ale když se na vteřinu ztratíte, bude to katastrofa . Linux je ve výchozím nastavení navržen tak, aby byl docela bezpečný, ale jakmile zvýšíte oprávnění, mnoho ochranných opatření zmizí.
Prvním velkým rizikem je nechtěné smazání nebo poškození souborového systému.Příkazy jako například:rm -rf /rm -rf /*
nebo i jemnější konstrukce jako například:rm -rf "$directorio"/*
Pokud jsou spuštěny jako root a cesta neodpovídá vašim představám, mohou zničit celý systém během několika sekund.Někdy stačí prázdná proměnná, špatně umístěné lomítko nebo špatně umístěná klávesa Tab, aby se zdánlivě nevinný příkaz proměnil v katastrofu.
Druhým velkým nebezpečím je instalace malwaru s plnými oprávněními . Stahování a spouštění skriptů z internetu jako root bez nahlédnutí do kódu je jako dát klíč od svého domu cizímu člověku. Škodlivý skript může nainstalovat rootkity , keyloggery nebo zadní vrátka, upravovat jádro, špehovat vše, co děláte, a zůstat dlouho skrytý.
Je také relativně snadné ohrozit zabezpečení systému manipulací s oprávněními kritických souborů.Například pokud spustíte něco jako:chmod 000 /etc -R
nebo změníte oprávnění /boot na /etc/passwd aniž bys věděl/a, co děláš, Můžete znemožnit spuštění počítače nebo ověřování uživatele.V mnoha případech je jediným řešením použití LiveCD nebo dokonce přeinstalace.
Z bezpečnostního hlediska je neustálé používání účtu root zdrojem selhání . Pokud útočník získá root přístup (hrubou silou, phishingem, malwarem atd.), má úplnou kontrolu: může šifrovat disky, krást data, připojit se k botnetu nebo použít váš server k útoku na třetí strany. Chcete-li tato rizika zmírnit, měli byste prozkoumat techniky posílení ochrany pomocí SELinuxu a dalších ochranných mechanismů.
Intenzivní používání kořenů navíc ztěžuje sledovatelnost.Když jsou příkazy prováděny pomocí sudoSystém zaznamenává, kdo je spustil a kdy, zatímco pokud se vše dělá pod rootem, není jasné, kdo za každou akcí stojí, což komplikuje audity a diagnostiku problémů.
Zobrazit hvězdičky při zadávání hesla sudo
Ve výchozím nastavení se při zadávání hesla sudo v mnoha distribucích (například Ubuntu) nezobrazují žádné tečky ani hvězdičky . Toto bylo zamýšleno jako bezpečnostní opatření, které mělo zabránit tomu, aby kdokoli odvodil délku vašeho hesla pouhým pohledem na obrazovku, ale v praxi je to docela nepohodlné: píšete a zdá se, že se nic neděje.
Sudo již nějakou dobu umožňuje aktivaci chování zvaného pwfeedbackZobrazí hvězdičku pro každý napsaný znak. Neodhalí vaše heslo, ale potvrdí, že klávesnice reaguje, a pomůže vám odhalit překlepy.
Pro aktivaci je potřeba upravit konfiguraci sudo pomocí nástroje Secure Tool. visudoToto ověří syntaxi před uložením, aby se zabránilo ztrátě oprávnění sudo kvůli hloupé chybě. Postup by byl následující:
1. Otevřete nastavení Sudo:sudo visudo
2. Přidejte řádek:Defaults pwfeedback
3. Uložte a ukončete editor
Od té chvíle se pokaždé, když zadáte heslo sudo, zobrazí hvězdičky.Pokud se kdykoli budete chtít vrátit k původnímu chování, jednoduše daný řádek odstraňte pomocí příkazu `return`. visudo.
Zakázat nebo zablokovat root účet
V prostředích, kde má více lidí přístup ke stejnému počítači, může být heslo root snadno zneužito . Pokud toto heslo zná příliš mnoho lidí, je jen otázkou času, než někdo způsobí (nebo utrpí) velký problém. Velmi rozumným řešením je deaktivovat účet root a používat pouze sudo.
Když uzamknete root účet, zabráníte uživatelům v přímém přihlášení jako tento uživatel. a také zabráníte jeho použití su Chcete-li získat root přístup pomocí hesla. Nicméně Autorizovaní uživatelé budou moci i nadále používat sudo vykonávat privilegované rozkazy.
Chcete-li uzamknout root účet v mnoha distribucích, jednoduše spusťte:sudo passwd -l root
Tento příkaz „zmrazí“ heslo roota, takže jej nelze použít.Pokud jej budete později potřebovat znovu aktivovat, budete si muset nastavit nové heslo, například:sudo passwd root
Obnovte nebo změňte heslo root, pokud jste ho ztratili
Pokud jste zapomněli heslo roota nebo jste si zamkli účet a potřebujete ho obnovit, není to všechno ztraceno . Linux nabízí několik způsobů, jak ho resetovat, obvykle spuštěním systému ve speciálním režimu nebo použitím LiveCD.
Velmi běžnou možností je provést to z GRUBu pomocí režimu obnovení . Mnoho distribucí má položku „Pokročilé možnosti“, kde můžete zvolit „Režim obnovení“. Jejím výběrem se načte omezené prostředí s možnostmi záchrany.
Pokud zvolíte možnost získání root konzole v režimu obnovy , standardní postup je obvykle následující:
1. Připojte souborový systém s oprávněním k zápisu:mount -o rw,remount /
2. Nastavte nové heslo pro roota:passwd root
3. Synchronizujte data a restartujte, aby se změny projevily:syncreboot
Druhým hlavním způsobem je nabootování z LiveCD nebo LiveUSB linuxové distribuce (například Ubuntu v režimu „Vyzkoušet bez instalace“) a práce s nainstalovaným systémem zvenčí.
V typickém scénáři s LiveCD by kroky byly následující :
1. Otevřete terminál a získejte dočasný root shell:sudo su
2. Identifikujte oddíl, který obsahuje váš systém Linux, pomocí něčeho jako:fdisk -l
3. Připojte daný oddíl do pracovního adresáře (příklad pomocí /dev/sda1):mkdir /mnt/recovermount /dev/sda1 /mnt/recover
4. Změňte kořenový adresář systému na adresář připojený pomocí chroot:chroot /mnt/recover
5. Odtud použijte passwd root nastavit nové heslo a po odhlášení a restartu se budete moci znovu normálně přihlásit.
Soubor /etc/sudoers a jak doladit oprávnění root
Jedním z nejsilnějších (a zároveň nejcitlivějších) aspektů správy kořenových adresářů je souborový systém. /etc/sudoers, kde je definováno, kdo může používat sudoZde si můžete podrobně přizpůsobit přístup se zvýšenými oprávněními a určit, kde a které příkazy se mají spustit.
Velmi důležité: nikdy neupravujte /etc/sudoers přímo s jakýmkoli editoremVždy používejte:sudo visudo
protože tento nástroj Před uložením zkontrolujte syntaxiChyba v tomto souboru vám může zabránit v použití příkazu sudo a s visudo Minimalizujete toto riziko.
Typický obsah /etc/sudoers čistý Ubuntu obsahuje řádky podobné tomuto:root ALL=(ALL:ALL) ALL%sudo ALL=(ALL:ALL) ALL
První označuje, že uživatel root může spustit libovolný příkaz na libovolném hostiteli jako libovolný uživatel a skupina.Druhý dělá totéž, ale pro všechny uživatele ve skupině. sudoTímto způsobem má kdokoli v dané skupině úplnou moc prostřednictvím sudo.
Pro pokročilejší konfigurace umožňuje sudoers definovat aliasy pro uživatele, příkazy a spouštěcí skupiny , například:
User_Alias ADMINES = pepe, perico, andres
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
Runas_Alias WEB = www-data, apache
S těmito definicemi byste například mohli dát ADMINES oprávnění k vypnutí nebo restartování systému bez hesla. s pravidlem jako:ADMINES ALL = NOPASSWD: POWER
Štítky jako NOPASSWD Umožňují vám spustit určité příkazy pomocí sudo bez nutnosti zadávat heslo.To je velmi užitečné v automatizovaných skriptech, integracích s jinými systémy nebo osobních počítačích, kde jste jediným uživatelem.
Pro zajímavost existuje možnost tzv. insults že pokud to přidáte k řádkům DefaultsPokaždé, když zadáte špatné heslo, vás Sudo v angličtině „urazí“.Nezlepší to bezpečnost, ale alespoň vám to uprostřed práce vykouzlí úsměv na tváři.
Správa souborů a oprávnění z terminálu pomocí roota
V praxi se velká část používání rootů zaměřuje na správu souborů a oprávnění prostřednictvím terminálu . S oprávněními superuživatele se můžete pohybovat v celém souborovém systému a upravovat cokoli potřebujete, a to vždy s maximální opatrností.
Některé základní příkazy, které se stávají obzvláště citlivými pro root uživatele, jsou:
ls: vypíše soubory a adresáře. Jako root uvidíte i soubory, které ostatní uživatelé nemohou vypsat.
cp y mvPro kopírování a přesouvání souborů nebo adresářů použijte příkaz `sudo`. Například můžete použít `sudo` k přesunutí písma z... Descargas nahoru /usr/share/fonts/ aby byl k dispozici celému systému.
rm: maže soubory a složky. V kombinaci s -r y -f Je extrémně nebezpečné, pokud jej používáte jako root bez řádné kontroly cesty.
chmod y chownTato nastavení mění oprávnění a vlastnictví. Jsou nezbytná pro udělení přístupu k souborům konkrétním uživatelům, ale zneužití může systém znehodnotit nebo znemožnit jeho používání.
Typický příklad použití roota k instalaci systémového písma by byl :
sudo cp ~/Descargas/Underdog.ttf /usr/share/fonts/sudo chmod 644 /usr/share/fonts/Underdog.ttf
Režim 644 Znamená to, že vlastník (root) může číst a zapisovat, zatímco skupina a ostatní uživatelé mohou pouze číst., dostatečně pro fungování písma, ale bez umožnění nechtěných změn.
Nejlepší postupy pro práci s rootem, sudo a su
Práce s oprávněními superuživatele není něco, co by se mělo brát na lehkou váhu . Existuje řada pokynů, které vám, pokud jim porozumíte, ušetří spoustu problémů:
Minimalizujte čas strávený jako root. USA sudo comando Pokud je to možné, vyhněte se otevírání trvalé relace root. Čím méně času strávíte s plnými oprávněními, tím menší je pravděpodobnost, že uděláte chybu.
Za každou cenu se vyhněte spouštění skriptů z pochybných zdrojů pomocí příkazu `sudo` . Pokud si stáhnete skript z internetu a první věc, kterou uvidíte, je „spusťte to pomocí `sudo`“, otevřete ho v textovém editoru a pečlivě si ho přečtěte. Pokud nerozumíte tomu, co dělá, nespouštějte ho.
Pro experimentování používejte testovací prostředí (virtuální počítače, kontejnery) . Pokud se chystáte konfigurovat citlivé na dotyk, testovat agresivní příkazy nebo spouštět nejasné skripty, udělejte to nejprve na systému, který můžete bezpečně prolomit. Návody na bezpečnou virtualizaci naleznete v sekci virtuální počítače a kontejnery.
Podrobná konfigurace sudo, když je více správcůNení to stejné pro uživatele, který potřebuje pouze restartovat službu, jako pro někoho, kdo potřebuje plnou kontrolu. Použijte /etc/sudoers omezit, co každý člověk může dělat.
Monitorování protokolů ověřování (/var/log/auth.log o journalctlTo vám umožní vidět, kdo používá sudo, odkud a s jakými příkazy. Je to jednoduchý způsob, jak odhalit neobvyklé chování nebo zneužití oprávnění.
Neprocházejte internet, neotevírejte přílohy ani nespouštějte desktopové aplikace jako root . Pokud je grafická aplikace napadena, když ji spouštíte jako superuživatel, útočník vyhrává jackpot.
Stručně řečeno, root v Linuxu je neuvěřitelně mocný nástroj, se kterým je třeba zacházet opatrně . Pochopení jeho účelu, kdy použít `sudo` nebo `su`, jak obnovit nebo uzamknout účet a jak konfigurovat `sudo` vám umožní bezpečně a s jistotou spravovat váš systém a plně využívat flexibilitu GNU/Linuxu, aniž byste riskovali svůj život při každém otevření terminálu.
Index
- 1 Co je root uživatel v Linuxu a co ho dělá výjimečným?
- 2 Rozdíl mezi běžnými uživateli, rootem a skupinou sudo
- 3 Co je to kořen v praxi a k čemu se používá?
- 4 Příkazy sudo a su: kdy je použít
- 5 Specifika rootování v Ubuntu a odvozených distribucích
- 6 Skutečná rizika neopatrného používání rootu
- 7 Zobrazit hvězdičky při zadávání hesla sudo
- 8 Zakázat nebo zablokovat root účet
- 9 Obnovte nebo změňte heslo root, pokud jste ho ztratili
- 10 Soubor /etc/sudoers a jak doladit oprávnění root
- 11 Správa souborů a oprávnění z terminálu pomocí roota
- 12 Nejlepší postupy pro práci s rootem, sudo a su

