
Na akomkoľvek systéme GNU/Linux, užívateľ root Je to tá postava, ktorú všetci rešpektujú (a mali by ste sa jej trochu báť). Je to ekvivalent „administrátora“ v iných systémoch, s tým rozdielom, že tu sú oprávnenia také široké, že zle napísaný príkaz môže systém zničiť v priebehu niekoľkých sekúnd. Aby ste úplne pochopili, čo je root, aké sú root privilégiá a ako ich spravovať To robí rozdiel medzi stabilným systémom a systémom, ktorý sa zrúti pri najmenšej provokácii.
Okrem toho má každá distribúcia špecifický spôsob, ako tieto privilégiá nakladať. Ubuntu, Debian, Void, openSUSE a ďalšie distribúcie S root účtom sa nesprávajú úplne rovnako, so skupinami ako kolo alebo so súborom sudoersAk spravujete servery (VPS, cloudové alebo dedikované) alebo chcete jednoducho spravovať svoj systém Linux, budete chcieť pochopiť, ako funguje používateľ root a príkaz `root`. sudo, použitie su a správu administrátorských povolení.
Čo presne je root používateľ v Linuxe?
V systéme Linux a iných systémoch podobných UNIXu používateľ root je účet s UID 0Špeciálny identifikátor, ktorý poskytuje úplnú kontrolu nad systémom. Tento účet je zvyčajne spojený aj s GID 0 (hlavná skupina) root), čo vám umožňuje čítať, upravovať alebo mazať ľubovoľný súbor, spravovať procesy, meniť povolenia a dotýkať sa ľubovoľnej časti súborového systému bez obmedzení.
Keď hovoríme o „byť koreňom“, máme na mysli prihlásiť sa alebo získať shell ktorý beží s UID 0. Nejde len o „viac oprávnení“: používa účet, ktorý má absolútna moc nad systémomVšetko, čo robíte pod touto identitou, sa vykonáva bez bariér.
To je iná vec. mať root právaTo znamená, že váš bežný používateľ (napríklad s UID 1000) môže pomocou nástrojov ako sudoTo vám umožňuje vykonávať určité príkazy „ako keby ste boli root“, bez toho, aby sa vaša identita relácie trvalo zmenila. V praxi môžete vykonávať rovnaké administrátorské úlohy, ale v kontrolovanejších časových rámcoch a s lepšou sledovateľnosťou.
Rozdiel medzi root oprávneniami a root oprávneniami
Je dôležité jasne odlíšiť pojmy, pretože Prihlásenie ako root nie je to isté ako spustenie niečoho s root oprávneniami.Tu prichádzajú do úvahy mechanizmy eskalácie privilégií účtu s UID 0 (sudo, su, skupiny ako wheel atď.).
Kedy Ste používateľ root (UID 0, GID 0) a vykonáte idUvidíte niečo takéto:
uid=0(root) gid=0(root) groups=0(root)
Toto znamená, že aktuálna relácia patrí používateľovi root a že všetko, čo spustíte, bude mať tieto oprávnenia. Nie je potrebné nič písať. sudo pred ničím: akýkoľvek príkaz má voľnú rukuPreto je také nebezpečné zostať príliš dlho v koreňovej škrupine.
Avšak, keď použijete sudoNormálne budete stále vaším „bežným“ používateľom (napríklad UID 1000), ale príkaz sa dočasne spustí ako UID 0. Ak tak urobíte:
sudo apt update
Vaša relácia zostáva reláciou vášho používateľa, ale iba tento konkrétny príkaz Spúšťa sa s oprávneniami správcu. To isté platí, ak spustíte:
sudo systemctl restart apache2
V oboch prípadoch identita zobrazená v protokoloch overovania označuje, ktorý používateľ použil sudo, čo prispieva sledovateľnosť a individuálna zodpovednosť.
Prípad spoločností Wheel, Sudoers a manažérskych skupín
V niektorých distribúciách (ako napríklad Void Linux alebo mnohé deriváty BSD) existuje skupina kolo, ktorý sa používa na ovládať, kto môže používať sudoV iných systémoch (ako napríklad v Ubuntu a Debiane v ich typickej konfigurácii) sa skupina používa sudo udeliť túto možnosť. Každá distribúcia to organizuje vlastným spôsobom, ale myšlienka je rovnaká: iba používatelia, ktorí patria do určitých skupín, môžu eskalovať privilégiá.
Ak vám Void Linux povie, aby ste pridali používateľa do koloNormálne by bolo spustiť niečo ako:
sudo usermod -aG wheel tu_usuario
Potom, keď to robíte idSkupina kolies by mala byť uvedená medzi podskupinami. Ak sa nezobrazuje, je možné, že Zmena sa prejaví až po odhláseníalebo že systém spravuje prístup trochu odlišným spôsobom (napríklad spoliehaním sa na PAM alebo špecifickú konfiguráciu sudo o su to nevyžaduje zahrnutie kolesa vo všetkých prípadoch).
V systémoch ako Ubuntu alebo Debian je kľúčová skupina zvyčajne sudoAk chcete pridať používateľa:
sudo adduser nombre_de_usuario sudo
Najlepšia úroveň kontroly sa dosiahne úpravou súboru / Etc / sudoers (alebo súbory v /etc/sudoers.d/) vždy používam visudoaby si mohol/mohla definovať, ktoré presné príkazy môže každý používateľ alebo skupina vykonať. s root oprávneniami, namiesto toho, aby ste im dali úplnú voľnosť.
Root v Ubuntu: bezpečnostná politika a používanie sudo
Ubuntu sa riadi pomerne jasnou filozofiou: Root účet existuje, ale nepoužíva sa na priame prihlásenie.Po inštalácii systému má root UID 0, rovnako ako v každom systéme UNIX, ale nemá priradené použiteľné heslo na prihlásenie. Namiesto toho intenzívne používanie sudo.
To znamená, že štandardne Do TTY ani do grafického rozhrania sa nemôžete prihlásiť ako root s heslom.pretože pre daného používateľa nie je nakonfigurované žiadne heslo. Toto rozhodnutie znižuje plochu útoku proti pokusom o hrubú silu a zabraňuje ľuďom, aby zbytočne trávili celý deň prácou ako root.
„Normálny“ postup v Ubuntu je: prihlásite sa so svojím používateľom, tento používateľ patrí do skupiny sudoA keď potrebujete vykonať nejakú administratívu, spustíte príkaz sudo a ty píšeš vaše vlastné heslonie root účet. Týmto spôsobom systém zaznamenáva, kto čo urobil, kedy a s akým príkazom.
Ak kedykoľvek chcete mať ako root úplný shell (napríklad na vykonávanie série úloh za sebou), môžete použiť:
sudo -i
sudo su -
Obaja vám dajú jeden interaktívna koreňová škrupinaToto zvyčajne načíta prihlasovacie prostredie používateľa. Ak chcete tento režim ukončiť, jednoducho spustite príkaz exit alebo stlačte Ctrl + D.
Je root používateľ vždy k dispozícii?
Distribúcia nie je dôležitá: Root účet vždy existuje interne pretože je to ten s UID 0. V závislosti od distribúcie sa mení, či má daný účet platné heslo, či je povolené priame prihlásenie a za akých podmienok ho možno použiť.
V prípade openSUSE (napríklad Tumbleweed) môžete počas inštalácie technicky nechať heslo root prázdne alebo nakonfigurovať systém tak, aby mal bežný používateľ administrátorské oprávnenia pomocou sudoTo môže spôsobiť Nie som si istý, či je root „aktívny“ Alebo nie. Ale samotný root účet je vždy k dispozícii; je to len tak... nemôžeš sa s ním autentifikovať pretože nebolo nastavené heslo alebo pretože ho systém blokuje pomocou PAM alebo prihlasovacích politík.
keď používate su Ak chcete prepnúť na root a zadať svoje používateľské heslo namiesto root hesla, zvyčajne budete nefungujepokiaľ to distribúcia nemá nakonfigurované su akceptovať heslo používateľa sudoer namiesto hesla root (menej bežné). Najčastejšie su Bude sa pýtať na heslo cieľového používateľa, teda heslo root, ak vykonáte jednoduchý su.
Okrem toho, ak si všimnete, že pri tom su Aby ste sa stali root používateľom, váš shell pokračuje v čítaní funkcií alebo aliasov od vášho bežného používateľa; môžete používať variant ako su bez pomlčky (su pred su -), čo z neho robí Prihlasovacie prostredie root sa úplne nenačítaPreto môžete naďalej používať svoj .bashrc alebo vašu konfiguráciu zsh, čo generuje chyby vo funkciách, ktoré pre root účet neexistujú.
Vzdialený prístup ako root cez SSH
Na mnohých serveroch, keď si prenajmete VPS alebo dedikovaný server, poskytovateľ vám poskytne Priamy prístup cez SSH ako rootpomocou hesla alebo, ešte lepšie, pomocou SSH kľúča. Z linuxového systému je pripojenie jednoduché ako:
ssh root@IP-del-servidor
Vo Windowse je bežné používať klienta, ako napríklad PuTTYStačí zadať IP adresu servera do poľa. Názov hostiteľa, kliknite na Otvorený a keď sa zobrazí okno terminálu, Prihláste sa ako root s poskytnutým heslom alebo pomocou nakonfigurovaného kľúča.
Môžete sa tiež pripojiť k akémukoľvek inému používateľovi na serveri a akonáhle ste vo vnútri, eskalovať na root pomocou sudo alebo su ak daný používateľ patrí do príslušných skupín alebo má zodpovedajúcu konfiguráciu v /etc/sudoersV takom prípade pracujete s obmedzenými oprávneniami, kým nebudete musieť vykonať konkrétnu administratívnu úlohu.
Riziká neopatrného používania rootu
Root privilégiá sú neuveriteľne užitočné, ale aj dvojsečná zbraň. Akákoľvek preklep alebo nesprávne pochopený príkaz To môže viesť k úplnej strate údajov, nestabilite systému alebo bezpečnostným dieram, ktoré ohrozia váš počítač.
Jedným z najzreteľnejších nebezpečenstiev je náhodné vymazanie alebo úprava systémových súborovAko root nemáte príkaz „Ste si istý?“ ani kôš. Príkaz ako:
sudo rm -rf /
alebo variant s pravopisnou chybou (s nesprávnou cestou, medzerou navyše, nesprávne umiestneným zástupným znakom...) Odstrániť polovicu súborového systému bez vyžiadania potvrdeniaA zotavenie, ak je vôbec možné, je zvyčajne komplikované a veľmi čiastočné.
Je tu aj otázka exekúcie skripty stiahnuté z internetu s oprávneniami rootAk je skript škodlivý alebo zle naprogramovaný, môže bez vášho vedomia vymazať citlivé súbory, zmeniť kritické nastavenia, nainštalovať malvér, deaktivovať obranu alebo pridať zadné vrátka. A ak ste ho spustili pomocou sudoDal si mu neobmedzené oprávnenia.
V prostrediach s viacerými servermi (produkcia, testovanie, vývoj) zvyšuje práca s oprávneniami root na viacerých termináloch súčasne riziko vykonať príkaz na nesprávnom počítačiJednoduchý reštart alebo vymazanie vykonané v produkčnom prostredí omylom môže službu odpojiť a spôsobiť vážny problém.
Aby toho nebolo málo, keď si zvyknete pracovať stále ako root, ľahko sa príliš uvoľníte a nekontrolovať si dvakrát, čo píšešSkrátenie času stráveného so zvýšenými oprávneniami a starostlivé prečítanie príkazov pred stlačením klávesu Enter je kľúčové, aby ste sa vyhli problémom.
Root a bezpečnosť: útoky, protokoly a audit
Z bezpečnostného hľadiska je root jediný bod zlyhaniaAk útočník získa root oprávnenia (buď krádežou prihlasovacích údajov, zneužitím zraniteľnosti alebo podvodom, ktorý vás prinúti spustiť niečo škodlivé), získa úplnú kontrolu nad počítačom.
Na serveroch vystavených internetu otvára priamy prístup root cez SSH iba s použitím hesla dvere k... neustále útoky hrubou silouAutomatizované roboty sa pokúšajú prihlásiť ako root Neustále testovanie kombinácií hesiel. Ak je heslo slabé alebo sa používa opakovane v iných službách, máte koniec.
Okrem toho, ak vždy pracujete ako root, akákoľvek zraniteľná aplikácia spustená pod touto identitou (prehliadač, nesprávne nakonfigurovaný webový server atď.) môže slúžiť ako vstupný bod. Hneď ako je táto aplikácia napadnutá, útočník zdedí všetky povolenia.
Ďalším dôležitým problémom je nedostatok sledovateľnostiPri použití príkazu sudo sa zaznamenávajú administratívne akcie /var/log/auth.log alebo v denníku (journalctl): ktorý používateľ spustil ktorý príkaz a kedy. Ak sa však všetci prihlásia priamo ako root, v protokoloch sa zobrazí iba „toto urobil root“, bez toho, aby bolo možné určiť, kto za tým v skutočnosti stál.
V prostrediach, kde sa vyžadujú bezpečnostné štandardy (ISO 27001, PCI DSS a podobné), je kľúčová sledovateľnosť a individuálna zodpovednosť. Neustála práca ako root bez použitia sudo sťažuje audity.To komplikuje riešenie problémov a často je v rozpore s osvedčenými postupmi požadovanými mnohými rámcami pre dodržiavanie predpisov. Okrem toho používanie bezpečného hardvéru, ako napríklad dev-tpm0 a TPM Môže to posilniť integritu a auditovateľnosť systému.
Spôsoby získania root oprávnení
V praxi väčšina moderných distribúcií používa tri hlavné mechanizmy na prístup k administrátorským oprávneniam: sudo, su a priame prihlásenie (lokálne alebo vzdialené). Každé má svoj vlastný kontext a riziká.
Na vykonanie jedného príkazu s oprávneniami root je najbežnejším spôsobom použitie:
sudo comando argumentos
Napríklad:
sudo apt update
sudo apt install firefox
sudo systemctl restart apache2
sudo nano /etc/ssh/sshd_config
S tým, Používateľov nemeníte natrvaloIba tento príkaz sa spúšťa s UID 0 a zaznamenáva, kto ho spustil. Pre väčšinu denných administratívnych úloh je to najbezpečnejšia možnosť.
Ak potrebujete trvalejšiu root reláciu, pretože budete spúšťať niekoľko príkazov za sebou, môžete použiť:
sudo -i
sudo su -
Tieto príkazy vám poskytnú root shell, ktorý zvyčajne načíta prostredie pre prihlásenie root (premenné, PATH atď.). To je veľmi pohodlné pre určité zdĺhavé úlohy, ale Najlepšie je opustiť tento režim hneď po dokončení. s exitČím menej času strávite ako root, tým menšia je šanca, že urobíte chybu.
Povoliť a spravovať heslo root
V Ubuntu a iných distribúciách, hoci sa to neodporúča, môžete priradiť heslo k root účtu aby sa dal použiť priamo. Typický príkaz je:
sudo passwd root
Systém si najprv vyžiada vaše používateľské heslo (na overenie použitia sudo) a potom sa vás dvakrát opýta na nové heslo, ktoré chcete priradiť rootovi. Od tej chvíle, root bude mať definované heslo A ak to pravidlá overovania umožňujú, môžete sa prihlásiť lokálne alebo použiť su zadaním tohto kľúča. Na zariadeniach ako napríklad Raspberry Pi sa odporúča zmeniť predvolené heslo.
Ak kedykoľvek chcete blokovať prihlásenie root Bez odstránenia účtu môžete:
sudo passwd -l root
Toto zakáže heslo (bez jeho úplného odstránenia), čím sa zabráni priamemu prístupu. Ak chcete toto obnovenie obnoviť:
sudo passwd -u root
V každom prípade, najmä s Ubuntu, je všeobecné odporúčanie Nepoužívajte root s heslom na každodenné použitieJe oveľa rozumnejšie pokračovať v práci s bežným používateľským účtom a v prípade potreby použiť sudo.
Konfigurácia SSH na povolenie alebo zakázanie root prístupu
Z bezpečnostných dôvodov mnohé inštalácie serverov zahŕňajú Prihlásenie root cez SSH je zakázanéAk chcete toto správanie zmeniť (hoci to nie je ideálne), musíte upraviť konfiguračný súbor OpenSSH: /etc/ssh/sshd_config.
Typický postup je:
- Uistite sa, že root má heslo Ak plánujete použiť túto metódu overovania:
sudo passwd root. - Upraviť nastavenia SSH s root oprávneniami:
sudo nano /etc/ssh/sshd_config - Nájdite (alebo pridajte) direktívu
PermitRootLogina nastavte hoyesak chcete povoliť priamy prístup root s heslom. - Reštartujte službu SSH na uplatnenie zmien:
sudo systemctl restart ssh(osshd(v závislosti od distribúcie).
Najrozumnejšie, čo môžete urobiť, ak potrebujete určitú flexibilitu bez toho, aby ste museli dvere príliš otvárať, je použiť PermitRootLogin zakázať heslo takže iba tí, ktorí prijímajú autentifikácia kľúča a nie heslom. Napriek tomu je zvyčajne preferovanou možnosťou prihlásiť sa ako bežný používateľ a potom použiť sudo.
Ak chcete posilniť zabezpečenie, jednoducho zopakujte tieto kroky v opačnom poradí: v sshd_config pony PermitRootLogin no, reštartujte službu a ak chcete, uzamknite root účet pomocou sudo passwd -l rootTo ich núti Všetka vzdialená správa musí byť vykonávaná prostredníctvom konkrétnych používateľov s oprávneniami sudo.Ako doplnkové opatrenie zvážte použitie dm-verity v Linuxe na ochranu integrity systému.
Upravte súbory sudo a udeľte root oprávnenia ostatným používateľom
Sú chvíle, keď potrebujete novovytvoreného používateľa, aby ste mohli spúšťať príkazy ako rootPredstavte si napríklad, že ste vytvorili používateľa testftp s useradd o adduserAle keď sa pokúsite použiť sudo Zobrazí sa vám nasledujúca správa: testftp is not in the sudoers file.
„Rýchly“ spôsob v mnohých distribúciách založených na Debiane/Ubuntu je pridať používateľa do skupiny sudo:
sudo adduser testftp sudo
V iných prostrediach alebo ak chcete presnejšiu kontrolu, môžete súbor upraviť. /etc/sudoers (alebo pridajte konkrétny súbor do /etc/sudoers.d/) vždy používam:
sudo visudo
Vnútri môžete pridať riadok skopírujúci koreňovú šablónu, ale pre daného používateľa:
testftp ALL=(ALL:ALL) ALL
S tým, testftp bude môcť spustiť ľubovoľný príkaz ako root. Používanie sudo, rovnako ako root (ale so sledovateľnosťou). Ak potrebujete prísnejšie obmedzenia, môžete obmedziť povolené príkazy, vyžadovať TTY, vynútiť zadanie hesla atď.
Na citlivejších serveroch je bežnou praxou neudeľovať „plné oprávnenia“ žiadnemu používateľovi v skupine sudo, ale skôr ich definovať v sudoers presne tak čo sa môže a nemôže robiťNapríklad povolenie správy iba konkrétnej služby alebo určitých administratívnych skriptov.
Po úprave a uložení pomocou visudoDotknutý používateľ by už nemal vidieť chybu „nie je v súbore sudoers“ a bude môcť kontrolovaným spôsobom eskalovať privilégiá.
Najlepšie postupy pri používaní root a sudo
Práca s root oprávneniami nie je len o tom, vedieť, ktoré príkazy použiť, ale aj osvojte si rozumné bezpečnostné návykyNiekoľko základných odporúčaní, ktoré sa oplatí osvojiť si:
Najprv skúste Používajte sudo iba pre konkrétne príkazy Vždy, keď je to možné. Čím menej času strávite v root shelli, tým menšia je šanca, že urobíte vážnu chybu. Krátka séria príkazov s príkazom `sudo` je zvyčajne bezpečnejšia ako otvorenie root relácie a zabudnutie sa odhlásiť.
Ak potrebujete použiť sudo -i o sudo su -Urobte to, keď ste si istí, že budete spúšťať skupinu administratívnych úloh jednu po druhej. Hneď ako skončíte, ukončite root. s exitPonechanie root relácie otvorenej na pozadí, najmä na zdieľanom počítači alebo na prístupnej ploche, výrazne zvyšuje riziko.
Nikdy neotvárajte prehliadač, e-mailového klienta ani podozrivé dokumenty z root relácie. Akékoľvek zneužitia ovplyvňujúce tieto aplikácie môžu byť nebezpečné. Zdedí oprávnenia účtu, ktorý ich vykonáva.Vždy, keď interagujete s nedôveryhodným obsahom, robte tak ako bežný používateľ.
Ďalším kľúčovým bodom je Nespúšťajte neznáme skripty pomocou príkazu sudo bez toho, aby ste si ich najprv prečítali. Ak vám niekto povie „vložte toto curl | sh pomocou sudo“ a vy to urobíte bez toho, aby ste sa pozreli, dávate mu kľúče k vášmu systému. Otvorte skript v textovom editore, skontrolujte, čo robí, odkiaľ pochádza, a ak mu nerozumiete alebo mu nedôverujete, nespúšťajte ho.
Vždy, keď je to možné, sťahujte softvér a skripty z oficiálne alebo vysoko renomované zdrojeOverte kontrolné súčty, ak sú k dispozícii, a v prípade pochybností ich najskôr otestujte na virtuálnom počítači alebo kontajneri, ktorý môžete v prípade problémov zrušiť.
Nakoniec využite archív /etc/sudoers použiť princíp najmenších privilégiíKaždému používateľovi poskytuje iba potrebné oprávnenia a nič viac a všetky akcie zaznamenáva pomocou príkazu sudo, takže v prípade problému si môžete pozrieť, čo každá osoba urobila.
Pochopenie toho, čo je používateľ root, ako sa privilégiá root líšia od privilégií účtu UID 0 a používanie nástrojov ako sudo, su, administrátorské skupiny a konfigurácia SSHJe možné spravovať akýkoľvek systém Linux s oveľa väčšou bezpečnosťou a pokojom v duši, vyhnúť sa zbytočným obavám a vždy vedieť, kto čo urobil a s akými oprávneniami.
