
Op elk GNU/Linux-systeem, de root-gebruiker Het is die figuur die iedereen respecteert (en waar je eigenlijk een beetje bang voor zou moeten zijn). Het is het equivalent van de "beheerder" in andere systemen, met als verschil dat de rechten hier zo ruim zijn dat een slecht geschreven commando het systeem binnen enkele seconden kan platleggen. Om volledig te begrijpen wat root is, wat root-rechten zijn en hoe je deze kunt beheren, lees je verder. Het maakt het verschil tussen een stabiel systeem en een systeem dat bij de geringste aanleiding instort.
Bovendien heeft elke distributie een eigen manier om met deze privileges om te gaan. Ubuntu, Debian, Void, openSUSE en andere distributies Ze gedragen zich niet precies hetzelfde met het root-account, met groepen zoals wiel of met het bestand sudoersAls je servers beheert (VPS, cloud of dedicated) of gewoon je Linux-systeem gemakkelijk wilt beheren, is het belangrijk dat je begrijpt hoe de root-gebruiker en het `root`-commando werken. sudo, het gebruik van su en het beheer van administratieve machtigingen.
Wat is de root-gebruiker in Linux precies?
In Linux en andere UNIX-achtige systemen gebruikt de gebruiker root is het account met UID 0De speciale identificatiecode die volledige controle over het systeem verleent. Dit account is meestal ook gekoppeld aan de GID 0 (hoofdgroep) root), waarmee je elk bestand kunt lezen, wijzigen of verwijderen, processen kunt beheren, machtigingen kunt wijzigen en elk gedeelte van het bestandssysteem kunt aanraken, zonder beperkingen.
Wanneer we het hebben over "wortel zijn", bedoelen we... log in of verkrijg een shell die draait met UID 0. Het gaat niet simpelweg om "meer rechten hebben": het gebruikt het account dat de rechten heeft. absolute macht over het systeemAlles wat je onder die identiteit doet, wordt zonder belemmeringen uitgevoerd.
Dat is een andere kwestie. hebben rootrechtenDit betekent dat uw reguliere gebruiker (bijvoorbeeld met UID 1000) via tools zoals sudoDit stelt u in staat om bepaalde commando's uit te voeren "alsof u root bent", zonder dat uw sessie-identiteit permanent verandert. In de praktijk kunt u dezelfde beheertaken uitvoeren, maar binnen meer gecontroleerde tijdsbestekken en met betere traceerbaarheid.
Het verschil tussen root zijn en rootrechten hebben.
Het is belangrijk om de concepten duidelijk van elkaar te scheiden, omdat Inloggen als root is niet hetzelfde als iets uitvoeren met rootrechten.Dit is waar zowel het UID 0-account als de mechanismen voor privilege-escalatie (sudo, su, groepen zoals wheel, enz.) in beeld komen.
Wanneer Jij bent de rootgebruiker. (UID 0, GID 0) en je doet een idJe ziet dan zoiets als dit:
uid=0(root) gid=0(root) groups=0(root)
Dit geeft aan dat de huidige sessie toebehoort aan root en dat alles wat u uitvoert, die rechten zal hebben. U hoeft niets in te typen. sudo voor niets: Elk commando heeft carte blanche.Daarom is het zo gevaarlijk om te lang in een root shell te blijven.
Wanneer u echter gebruikmaakt van sudoNormaal gesproken blijf je je "normale" gebruiker (bijvoorbeeld UID 1000), maar de opdracht wordt tijdelijk uitgevoerd als UID 0. Als je het volgende doet:
sudo apt update
Je sessie blijft die van je gebruiker, maar alleen dat specifieke commando Het wordt uitgevoerd met beheerdersrechten. Hetzelfde geldt als u het volgende start:
sudo systemctl restart apache2
In beide gevallen geeft de identiteit die in de authenticatielogboeken wordt weergegeven aan welke gebruiker de authenticatie heeft uitgevoerd. sudo, wat bijdraagt traceerbaarheid en individuele verantwoordelijkheid.
De casus Wheel, Sudoers en managementgroepen
In sommige distributies (zoals Void Linux of veel BSD-afgeleiden) is er een groep wiel, dat gebruikt wordt voor Bepaal wie sudo mag gebruiken.In andere gevallen (zoals bij Ubuntu en Debian in hun gebruikelijke configuratie) wordt de groep gebruikt. sudo om die mogelijkheid te verlenen. Elke distributie organiseert het op zijn eigen manier, maar het idee is hetzelfde: alleen gebruikers die tot bepaalde groepen behoren, kunnen hun privileges verhogen.
Als Void Linux je vraagt je gebruiker toe te voegen aan wielNormaal gesproken zou je zoiets uitvoeren:
sudo usermod -aG wheel tu_usuario
En dan, wanneer je dat doet idJe zou de wielgroep tussen de subgroepen moeten zien staan. Als deze niet verschijnt, kan het zijn dat... De wijziging wordt pas doorgevoerd nadat u bent uitgelogd.of dat het systeem de toegang op een enigszins andere manier beheert (bijvoorbeeld door gebruik te maken van PAM of een specifieke configuratie van sudo o su dat niet in alle gevallen een wiel vereist).
In systemen zoals Ubuntu of Debian is de sleutelgroep meestal sudoOm een gebruiker toe te voegen:
sudo adduser nombre_de_usuario sudo
De meest nauwkeurige controle wordt bereikt door het bestand te bewerken. / Etc / sudoers (of bestanden in /etc/sudoers.d/) altijd gebruikmakend van visudozodat je kunt Definieer welke specifieke commando's elke gebruiker of groep mag uitvoeren. met root-rechten, in plaats van volledige carte blanche te geven.
Root-toegang in Ubuntu: beveiligingsbeleid en gebruik van sudo
Ubuntu volgt een vrij duidelijke filosofie: Het root-account bestaat wel, maar wordt niet gebruikt om direct in te loggen.Bij de installatie van het systeem heeft root UID 0, zoals in elk UNIX-systeem, maar er wordt geen bruikbaar wachtwoord toegewezen om in te loggen. In plaats daarvan wordt intensief gebruik gemaakt van sudo.
Dit betekent dat standaard: Je kunt de TTY of de grafische interface niet als root openen met een wachtwoord.Omdat er geen wachtwoord is ingesteld voor die gebruiker. Deze beslissing verkleint het aanvalsoppervlak bij brute-force-aanvallen en voorkomt dat mensen onnodig de hele dag als root moeten werken.
De "normale" procedure in Ubuntu is: je logt in met je gebruikersaccount, die gebruiker behoort tot de groep. sudoEn als je administratieve taken moet uitvoeren, voer je het commando uit met sudo en jij schrijft je eigen wachtwoordNiet het root-account. Op deze manier registreert het systeem wie wat heeft gedaan, wanneer en met welk commando.
Als je op enig moment een volledige shell als root nodig hebt (bijvoorbeeld om een reeks taken achter elkaar uit te voeren), kun je het volgende gebruiken:
sudo -i
sudo su -
Beide geven je er één. interactieve root shellDit laadt normaal gesproken de inlogomgeving van de gebruiker. Om deze modus te verlaten, hoeft u alleen maar het volgende commando uit te voeren: exit of druk op Ctrl + D.
Is de root-gebruiker altijd beschikbaar?
De verdeling doet er niet toe: Het root-account bestaat intern altijd. Omdat het account de UID 0 heeft. Wat verschilt per distributie is of dat account een geldig wachtwoord heeft, of direct inloggen is toegestaan en onder welke voorwaarden het gebruikt kan worden.
Bij openSUSE (bijvoorbeeld Tumbleweed) kun je tijdens de installatie het root-wachtwoord technisch gezien leeg laten of het systeem zo configureren dat de normale gebruiker beheerdersrechten heeft. sudoDat kan veroorzaken Ik weet niet zeker of root "actief" is. Of misschien ook niet. Maar het root-account zelf is er altijd; het is alleen dat... Je kunt je er niet mee authenticeren. omdat er geen wachtwoord is ingesteld of omdat het systeem dit blokkeert met behulp van PAM of inlogbeleid.
wanneer je gebruikt su Om over te schakelen naar root en je gebruikerswachtwoord in te voeren in plaats van het rootwachtwoord, doe je normaal gesproken het volgende: werkt niettenzij de distributie dit zo heeft geconfigureerd. su Het accepteren van het wachtwoord van de sudoer-gebruiker in plaats van dat van root (minder gebruikelijk). Meestal geldt: su Het zal om het wachtwoord van de doelgebruiker vragen, oftewel het root-wachtwoord als je een eenvoudige controle uitvoert. su.
Bovendien, als je merkt dat tijdens het doen su Om root-toegang te krijgen, blijft je shell functies of aliassen van je normale gebruiker lezen; je gebruikt mogelijk een variant zoals su zonder koppelteken (su geconfronteerd su -), waardoor het De root-aanmeldingsomgeving laadt niet volledig.Daarom kunt u uw blijven gebruiken. .bashrc of uw zsh-configuratie, waardoor er fouten optreden in functies die niet bestaan voor het root-account.
Externe toegang als root via SSH
Bij veel servers krijg je, wanneer je een VPS of een dedicated server huurt, van de provider het volgende: Directe SSH-toegang als rootmet een wachtwoord of, nog beter, met een SSH-sleutel. Vanaf een Linux-systeem is de verbinding heel eenvoudig:
ssh root@IP-del-servidor
In Windows is het gebruikelijk om een client te gebruiken zoals PuTTYJe hoeft alleen het IP-adres van de server in het daarvoor bestemde veld in te voeren. Hostnaam, Klik op Open en, wanneer het terminalvenster verschijnt, Log in als root met het opgegeven wachtwoord. of met de geconfigureerde sleutel.
Je kunt ook verbinding maken met elke andere gebruiker op de server, en eenmaal ingelogd, Verkrijg root-toegang met sudo of su als die gebruiker tot de juiste groepen behoort of de bijbehorende configuratie heeft in /etc/sudoersIn dat geval werkt u met beperkte rechten totdat u een specifieke administratieve taak moet uitvoeren.
Risico's van onzorgvuldig gebruik van Root
Rootrechten zijn ontzettend nuttig, maar tegelijkertijd ook een tweesnijdend zwaard. Eventuele typografische fouten of verkeerd begrepen opdrachten. Dit kan leiden tot volledig gegevensverlies, systeeminstabiliteit of beveiligingslekken waardoor uw computer kwetsbaar wordt.
Een van de duidelijkste gevaren is per ongeluk systeembestanden verwijderen of wijzigenAls rootgebruiker is er geen "Weet je het zeker?" of prullenbak. Een commando zoals:
sudo rm -rf /
of een verkeerd gespelde variant (met het verkeerde pad, een extra spatie, een verkeerd geplaatste jokerteken…) kan Verwijder de helft van het bestandssysteem zonder om bevestiging te vragen.En herstel, als het al mogelijk is, is meestal gecompliceerd en slechts gedeeltelijk.
Ook de kwestie van de uitvoering speelt nog een rol. scripts gedownload van internet met root-rechtenAls een script kwaadaardig of slecht geprogrammeerd is, kan het gevoelige bestanden verwijderen, cruciale instellingen wijzigen, malware installeren, beveiligingssystemen uitschakelen of achterdeuren toevoegen zonder uw medeweten. En als u het hebt uitgevoerd met sudoJe hebt hem onbeperkte bevoegdheden gegeven.
In omgevingen met meerdere servers (productie, testen, ontwikkeling) verhoogt het gelijktijdig werken als root op meerdere terminals het risico op... Een commando uitvoeren op de verkeerde machineEen simpele herstart of verwijdering die per ongeluk in een productieomgeving wordt uitgevoerd, kan een service offline halen en een groot probleem veroorzaken.
Om het nog erger te maken, als je gewend raakt om altijd als root te werken, is het makkelijk om te ontspannen en niet controleren wat je schrijftHet is cruciaal om de tijd die je met verhoogde bevoegdheden doorbrengt te beperken en commando's zorgvuldig te controleren voordat je op Enter drukt, om te voorkomen dat er iets misgaat.
Root en beveiliging: aanvallen, logboeken en audits
Vanuit een beveiligingsperspectief is root een enkelvoudig punt van falenAls een aanvaller rootrechten verkrijgt (door inloggegevens te stelen, een beveiligingslek te misbruiken of je te verleiden tot het uitvoeren van kwaadaardige software), krijgt hij volledige controle over de machine.
Op servers die aan het internet zijn blootgesteld, opent het toestaan van directe root-toegang via SSH met alleen een wachtwoord de deur naar continue brute-force aanvallenGeautomatiseerde bots proberen in te loggen als root Test voortdurend wachtwoordcombinaties. Als het wachtwoord zwak is of voor andere diensten wordt gebruikt, ben je de klos.
Bovendien, als je altijd als root werkt, kan elke kwetsbare applicatie die onder die identiteit draait (een browser, een verkeerd geconfigureerde webserver, enz.) als toegangspunt dienen. Zodra die applicatie is gecompromitteerd, erft de aanvaller alle rechten.
Een ander belangrijk probleem is de gebrek aan traceerbaarheidBij gebruik van sudo worden beheerdersacties vastgelegd. /var/log/auth.log of in het tijdschrift (journalctl): welke gebruiker welk commando heeft uitgevoerd en wanneer. Als daarentegen iedereen rechtstreeks als root inlogt, tonen de logboeken alleen "root heeft dit gedaan", zonder te kunnen vaststellen wie er daadwerkelijk achter zat.
In omgevingen waar beveiligingsnormen vereist zijn (ISO 27001, PCI DSS en dergelijke), zijn traceerbaarheid en individuele verantwoordelijkheid essentieel. Door altijd als root te werken zonder sudo te gebruiken, worden audits lastiger.Dit bemoeilijkt het oplossen van problemen en gaat vaak in tegen de beste praktijken die vereist zijn door veel compliance-raamwerken. Bovendien is het gebruik van beveiligde hardware zoals dev-tpm0 en TPM Het kan de integriteit en controleerbaarheid van het systeem versterken.
Manieren om rootrechten te verkrijgen
In de praktijk gebruiken de meeste moderne distributies drie hoofdmechanismen om toegang te krijgen tot beheerdersrechten: sudo, su en directe aanmelding (lokaal of op afstand). Elk heeft zijn eigen context en risico's.
Om een enkel commando met rootrechten uit te voeren, is de meest gebruikelijke manier om het volgende te gebruiken:
sudo comando argumentos
Bijvoorbeeld:
sudo apt update
sudo apt install firefox
sudo systemctl restart apache2
sudo nano /etc/ssh/sshd_config
Hiermee, Je wijzigt gebruikers niet permanent.Alleen dat commando wordt uitgevoerd met UID 0 en registreert wie het heeft gestart. Voor de meeste dagelijkse beheertaken is dit de veiligste optie.
Als je een meer permanente root-sessie nodig hebt omdat je meerdere opdrachten achter elkaar wilt uitvoeren, kun je het volgende gebruiken:
sudo -i
sudo su -
Met deze commando's krijg je een root-shell, waarbij doorgaans de root-loginomgeving wordt geladen (variabelen, PATH, enz.). Dit is erg handig voor bepaalde langdurige taken, maar Het is het beste om die modus te verlaten zodra je klaar bent. met exitHoe korter je als root-gebruiker werkt, hoe kleiner de kans op fouten.
Het rootwachtwoord inschakelen en beheren
In Ubuntu en andere distributies is het, hoewel afgeraden, mogelijk om... Wijs een wachtwoord toe aan het root-account. zodat het direct gebruikt kan worden. Het gebruikelijke commando is:
sudo passwd root
Het systeem zal eerst om uw gebruikerswachtwoord vragen (om het gebruik te valideren). sudo) en vervolgens wordt u tweemaal gevraagd om het nieuwe wachtwoord dat u aan root wilt toewijzen. Vanaf dat moment, De root-gebruiker heeft een eigen wachtwoord. En als het authenticatiebeleid dit toestaat, kunt u lokaal inloggen of gebruikmaken van su door die toets in te voeren. Op apparaten zoals de Raspberry Pi is het bijvoorbeeld raadzaam standaardwachtwoord wijzigen.
Als je maar wilt root-login blokkeren Zonder het account te verwijderen kunt u het volgende doen:
sudo passwd -l root
Dit schakelt het wachtwoord uit (zonder het volledig te verwijderen), waardoor directe toegang wordt voorkomen. Om dit ongedaan te maken:
sudo passwd -u root
In elk geval, en zeker bij Ubuntu, is de algemene aanbeveling: Gebruik root met een wachtwoord niet voor dagelijks gebruik.Het is veel verstandiger om met je normale gebruikersaccount te blijven werken en sudo alleen te gebruiken wanneer dat nodig is.
SSH-configuratie om roottoegang toe te staan of te weigeren.
Om veiligheidsredenen bevatten veel serverinstallaties het volgende: Root-aanmelding via SSH is uitgeschakeldOm dit gedrag te wijzigen (hoewel het niet ideaal is), moet u het OpenSSH-configuratiebestand bewerken: /etc/ssh/sshd_config.
De typische procedure is:
- Zorg ervoor dat root een wachtwoord heeft. Als u van plan bent deze authenticatiemethode te gebruiken:
sudo passwd root. - SSH-instellingen bewerken met rootrechten:
sudo nano /etc/ssh/sshd_config - Zoek (of voeg toe) de instructie
PermitRootLoginen zet het inyesals je directe root-toegang met een wachtwoord wilt toestaan. - Start de SSH-service opnieuw. om de wijzigingen toe te passen:
sudo systemctl restart ssh(osshd(afhankelijk van de verdeling).
Als je wat flexibiliteit nodig hebt zonder de deur al te wijd open te zetten, is het het verstandigst om gebruik te maken van... PermitRootLogin prohibit-password zodat alleen degenen die het accepteren sleutelauthenticatie en niet met een wachtwoord. Desondanks is de voorkeur meestal om in te loggen als een normale gebruiker en vervolgens te gebruiken sudo.
Als u de beveiliging wilt versterken, draait u deze stappen gewoon om: in sshd_config jij zet PermitRootLogin noStart de service opnieuw en vergrendel, indien gewenst, het root-account met sudo passwd -l rootDit dwingt hen ertoe om Alle beheertaken op afstand moeten worden uitgevoerd door specifieke gebruikers met sudo-rechten.Overweeg als aanvullende maatregel het gebruik van dm-verity op Linux om de integriteit van het systeem te beschermen.
Bewerk de sudoers-instellingen en verleen root-rechten aan andere gebruikers.
Er zijn momenten waarop je een nieuw aangemaakte gebruiker nodig hebt die in staat is om... voer opdrachten uit als rootStel je bijvoorbeeld voor dat je een gebruiker hebt aangemaakt. testftp met useradd o adduserMaar als je probeert te gebruiken sudo U krijgt het volgende bericht te zien: testftp is not in the sudoers file.
De "snelle" manier in veel op Debian/Ubuntu gebaseerde distributies is om de gebruiker aan de groep toe te voegen. sudo:
sudo adduser testftp sudo
In andere omgevingen, of als u meer controle wilt, kunt u het bestand bewerken. /etc/sudoers (of voeg een specifiek bestand toe in /etc/sudoers.d/) altijd gebruikmakend van:
sudo visudo
Binnenin kun je een regel toevoegen die de hoofdsjabloon kopieert, maar dan voor die specifieke gebruiker:
testftp ALL=(ALL:ALL) ALL
Hiermee, testftp kan elk commando als root uitvoeren. Je gebruikt sudo, net als root (maar met traceerbaarheid). Als je strengere beperkingen nodig hebt, kun je toegestane commando's beperken, TTY vereisen, wachtwoordinvoer afdwingen, enzovoort.
Op gevoeligere servers is het gebruikelijk om gebruikers in de sudo-groep niet "volledige bevoegdheden" te geven, maar in plaats daarvan specifieke regels te definiëren. sudoers precies wat wel en niet gedaan kan wordenBijvoorbeeld door het beheer van slechts een specifieke service of bepaalde beheerscripts toe te staan.
Eenmaal bewerkt en opgeslagen met visudoDe betreffende gebruiker zou de foutmelding "niet in het sudoers-bestand" niet meer moeten zien en zou op een gecontroleerde manier privileges moeten kunnen verhogen.
Aanbevolen werkwijzen bij het gebruik van root en sudo
Werken met rootrechten gaat niet alleen over weten welke commando's je moet gebruiken, maar ook over... Ontwikkel verstandige veiligheidsgewoonten.Enkele basisaanbevelingen die het overwegen waard zijn:
Probeer eerst eens Gebruik sudo alleen voor specifieke commando's. Zo vaak mogelijk. Hoe korter je in een root-shell bent, hoe kleiner de kans op een ernstige fout. Een korte reeks commando's met `sudo` is meestal veiliger dan een root-sessie openen en vergeten uit te loggen.
Als u sudo -i o sudo su -Doe dit wanneer je zeker weet dat je een groep administratieve taken achter elkaar gaat uitvoeren. Zodra je klaar bent, sluit je het root-programma af. met exitHet open laten staan van een root-sessie op de achtergrond, met name op een gedeelde computer of een toegankelijk bureaublad, verhoogt het risico aanzienlijk.
Open nooit een browser, e-mailprogramma of verdachte documenten vanuit een root-sessie. Eventuele beveiligingslekken in deze applicaties kunnen gevaarlijk zijn. Het account erft de machtigingen van het account dat de acties uitvoert.Wanneer je interactie hebt met onbetrouwbare content, doe dit dan als een normale gebruiker.
Een ander belangrijk punt is Voer geen onbekende scripts uit met sudo. Zonder ze eerst te lezen. Als iemand je zegt "plak dit curl | sh met sudo" en je doet dat zonder te kijken, geef je die persoon de sleutels tot je systeem. Open het script in een teksteditor, controleer wat het doet, waar het vandaan komt, en als je het niet begrijpt of niet vertrouwt, voer het dan niet uit.
Download software en scripts waar mogelijk van officiële of zeer betrouwbare bronnenControleer de checksums indien beschikbaar en test bij twijfel eerst in een virtuele machine of container die u kunt verwijderen als er iets misgaat.
Maak tot slot gebruik van het archief. /etc/sudoers om de principe van de minste privilegesHet geeft elke gebruiker alleen de benodigde machtigingen, niet meer, en registreert alle acties met sudo, zodat je in geval van een probleem kunt nagaan wat elke persoon heeft gedaan.
Inzicht in wat de rootgebruiker is, hoe rootrechten verschillen van die van het UID 0-account, en het gebruik van tools zoals sudo, su, beheerdersgroepen en SSH-configuratieHet is mogelijk om elk Linux-systeem veel veiliger en met meer gemoedsrust te beheren, onnodige zorgen te vermijden en altijd te weten wie wat heeft gedaan en met welke rechten.
