Ik ben vaak berichten tegengekomen op forums of andere websites waar je ziet dat mensen op zo'n manier grapjes maken over hardlopen / inloggen als root alsof het iets afschuwelijks is en iedereen zou het moeten weten. Er is echter niet veel dat een zoekopdracht over de kwestie onthult.
Het is misschien alom bekend bij Linux-experts, maar ik weet echt niet waarom. Ik herinner me dat ik altijd als root rende toen ik Linux jaren geleden voor het eerst probeerde (Redhat en Mandrake) en ik weet niet meer tegen welke problemen dan ook aan te lopen.
Er zijn eigenlijk enkele distro's met een felrode achtergrond met waarschuwingssignalen als achtergrond voor de rootgebruiker (SuSe?). Ik gebruik nog steeds het "Administrator" -account voor regelmatig gebruik in mijn Windows-installatie en ik heb daar ook nooit problemen ondervonden.
Het verslaat het beveiligingsmodel dat al jaren bestaat. Toepassingen moeten worden uitgevoerd met niet-administratieve beveiliging (of als gewone stervelingen), dus u moet hun rechten verhogen om het onderliggende systeem te wijzigen. Bijvoorbeeld, je zou niet willen dat de recente crash van Rhythmbox je complete vernietigt /usr
map vanwege een bug. Of de kwetsbaarheid die zojuist in ProFTPD is gepost om een aanvaller een ROOT-shell te laten krijgen.
Het is gewoon een goede gewoonte van elk besturingssysteem om uw toepassingen op gebruikersniveau uit te voeren en beheertaken over te laten aan de rootgebruiker, en alleen op basis van een behoefte.
Slechts één woord: veiligheid.
- Je bent ingelogd als root = alle applicaties draaien met root-privileges - elke kwetsbaarheid in Firefox, Flash, OpenOffice enz. Kan je systeem nu kapot maken, omdat mogelijke virussen nu overal toegang hebben. Ja, er zijn maar weinig virussen voor Ubuntu / Linux, maar het is ook vanwege de goede beveiliging en standaard onbevoegde gebruiker.
- Het gaat niet alleen om virussen - kleine bugs in een applicatie kunnen sommige systeembestanden wissen of ...
- Wanneer je bent aangemeld als root, kun je alles doen - het systeem vraagt er niet naar! Wilt u deze schijf formatteren? Ok, slechts één klik en het is klaar, omdat je root bent en je weet wat je doet ...
Draaien als root is slecht omdat:
- Domheid: Niets belet je om iets stoms te doen. Als je probeert om het systeem in ieder geval te wijzigen dat schadelijk zou kunnen zijn, moet je sudo doen wat vrijwel zeker een pauze garandeert terwijl je het wachtwoord invoert zodat je beseft dat je op het punt staat een mogelijke grote / kostbare verandering te maken.
- Veiligheid: Het is al een paar keer genoemd in deze vraag maar eigenlijk is het hetzelfde, moeilijker te hacken als je het inlogaccount van de beheerder niet kent. root betekent dat u al de helft van de werkende set beheerdersreferenties hebt.
- Je hebt het niet echt nodig: Als u verschillende commando's als root moet uitvoeren en u geïrriteerd bent door uw wachtwoord meerdere keren in te voeren wanneer sudo is verlopen, hoeft u alleen maar
sudo -i
en je bent nu root. Wil je wat opdrachten uitvoeren met behulp van pijpen? Gebruik dan sudo sh -c "comand1 | command2"
.
- U kunt het altijd gebruiken in de herstelconsole: Met de herstelconsole kunt u proberen iets te herstellen van iets stoms of een probleem verhelpen dat is veroorzaakt door een app (die u nog steeds moest uitvoeren als sudo :)) Ubuntu heeft in dit geval geen wachtwoord voor het root-account, maar u kunt wel zoek online om dat te veranderen, dit maakt het moeilijker voor iedereen die fysieke toegang tot uw box heeft om schade te kunnen veroorzaken.
De reden waarom je geen informatie kon vinden over waarom het slecht is, is omdat, nou ja, er is veel te veel data op het internet :) en dat veel mensen die Linux al een lange tijd gebruiken denken zoals jij. Deze manier van denken over het root-account is redelijk nieuw (een decennium misschien?) En veel mensen worden nog steeds geïrriteerd door het gebruik van sudo. Vooral als ze op een server werken, wat betekent dat ze naar binnen gingen met de intentie om systeemwijzigingen aan te brengen. Waarschijnlijk veroorzaakt door eerdere slechte ervaringen en beveiligingsstandaarden, weten de meeste systeembeheerders beter, maar ze houden er nog steeds niet van :).
Dit is een goede vraag. Ik denk dat het antwoord enigszins anders is, afhankelijk van of je het hebt over een server of een desktop-installatie.
Op een bureaublad is het ongebruikelijk om de root
account. In feite wordt Ubuntu geleverd met root-toegang uitgeschakeld. Alle wijzigingen waarvoor superuser-privileges vereist zijn, worden voltooid sudo
en zijn grafische cognaten gksudo
en kdesudo
. Gezien het feit dat het eenvoudig is om een root
wachtwoord, waarom doen mensen het niet?
Een reden is dat het je een extra beveiligingslaag geeft. Als u een programma uitvoert als root
en een beveiligingsfout wordt uitgebuit, de aanvaller heeft toegang tot alle gegevens en kan de hardware rechtstreeks besturen. Het kan bijvoorbeeld een trojan of key-logger in uw kernel installeren. In de praktijk kan een aanval echter een groot aantal schade aanrichten, zelfs zonder superuser-privileges. Alle gebruikersgegevens - inclusief documenten en opgeslagen wachtwoorden - zijn immers toegankelijk zonder root-toegang.
Een meer geldig punt, op een systeem met één gebruiker, is dat voorkomen wordt dat de gebruiker per ongeluk het systeem onbruikbaar maakt. Als de gebruiker per ongeluk een opdracht geeft die alle bestanden verwijdert, kunnen ze het systeem nog steeds opstarten, zelfs als de gegevens verloren zijn gegaan.
Bovendien zijn de meeste gebruikersgerichte (X11) -toepassingen van tegenwoordig gebaseerd op de aanname dat ze worden uitgevoerd als een regulier gebruikersaccount en zonder beheerdersrechten. Dus sommige programma's kunnen zich misdragen tijdens het uitvoeren als root
.
Op een multi-user systeem met alleen niet-grafische shell-toegang zijn veel van deze redenen niet van toepassing. Ubuntu is echter nog steeds redelijkerwijs een ontoegankelijk root
account. Om te beginnen is er een echt verschil tussen het verkrijgen van toegang tot een gebruikersaccount (met sudo
rechten) door een gat in de beveiliging en toegang krijgen tot root
, omdat in het eerste geval het onderbreken van andere gebruikers moet worden uitgevoerd sudo
en zal nog steeds om het accountwachtwoord vragen als extra beveiligingsstap. Voor een ander is het handig om veel administratieve taken uit te voeren vanuit een gebruikersaccount en alleen aan te roepen sudo
wanneer de superuser-privileges absoluut vereist zijn. Dus als u een programma vanaf de bron installeert, is het raadzaam om de bron te bouwen configure
en make
- in de directory van de gebruiker en alleen gebruiken sudo make install
in de laatste stap. Nogmaals, dit maakt het moeilijker om zichzelf (en andere gebruikers van het multi-user systeem) in de voet te schieten, en het vermindert de kans dat build-scripts een ravage aanrichten met het systeem. Dus zelfs op een server is het een goed advies om vast te houden aan Ubuntu's op sudo gebaseerde administratie.
Een reden om niet als root te worden uitgevoerd die nog niet (tot nu toe) is geïdentificeerd door andere antwoorden, is traceerbaarheid. Het maakt waarschijnlijk minder uit op machines die voornamelijk machines voor één gebruiker zijn (uw desktop of laptop), maar op servermachines, als iemand is aangemeld als root
, je weet niet wie de schuldige is voor de genomen acties. Daarom hebben de meeste professionele organisaties met meerdere systemen en meerdere beheerders die nodig hebben root
rechten vereisen dat gebruikers inloggen met hun eigen gebruikers-ID (en wachtwoord) en vervolgens gebruiken sudo
of vergelijkbare programma's om mee te werken root
privileges wanneer nodig.
Anders zijn de belangrijkste redenen om niet als root te draaien:
Minimaliseer het risico van schade door ongevallen. Als je rent rm -fr / home/me/my-subdir
als root, dan heb je gewoon alles wat belangrijk is van je machine dramatisch geëlimineerd vanwege die spatie na de (eerste) schuine streep - omdat het spul dat het eerst gaat het spul is dat als eerste is toegevoegd - kleine dingen zoals de kernel, de /bin
en de /etc
directory. Unix raakt van streek als je die verliest.
Minimaliseer het risico op schade door kwaadwillende externe sites. Als u bladert als root
, je bent meer kwetsbaar voor drive-by downloads van kwaadaardig materiaal.
Ik gebruik MacOS X meer dan ik Ubuntu, maar daar is root standaard uitgeschakeld en staat het nog steeds op mijn computer. Ik upgrade regelmatig de kernel en andere soortgelijke operaties - met behulp van sudo
(Achter de schermen). Soortgelijke technieken zijn in het algemeen van toepassing op Linux.
Eigenlijk zou je alleen de almachtige privileges van moeten gebruiken root
voor verkorte werkperioden om het risico op fouten te voorkomen.
TL; DR: Doe dingen alleen als root als dat nodig is. sudo
maakt dit vrij eenvoudig. Als u rootaanmeldingen inschakelt, kunt u nog steeds deze regel volgen, u moet gewoon voorzichtig zijn om dit te doen. Hoewel het inschakelen van rootaanmeldingen niet echt onveilig is als u het goed hebt gedaan, hoeft u rootaanmeldingen niet in te schakelen omdat u dat wel hebt gedaan sudo
.
Root-account is standaard uitgeschakeld, wat betekent dat het bestaat maar niet bruikbaar is (behalve in de herstelmodus). Dit betekent dat een aanvaller op de hoogte is van uw root-account, maar deze niet kon gebruiken, zelfs als hij / zij het root-wachtwoord had. Dus, een aanvaller moet zowel een gebruikersnaam raden die beheerdersrechten heeft, als dat gebruikerswachtwoord (wat veel moeilijker is dan alleen proberen om het root-wachtwoord op te lossen) .In XP als je de herstelconsole hebt geïnstalleerd, iemand die fysieke toegang tot uw box kan erin opstarten (RC) - geen wachtwoord vereist. Hetzelfde als de herstelmodus in Ubuntu.
In Ubuntu, wanneer ze zeggen dat de root is uitgeschakeld - wat eigenlijk bedoeld is, is dat het account vergrendeld is. Een account wordt vergrendeld door het wachtwoord te wijzigen in een waarde die niet overeenkomt met een mogelijke versleutelde waarde. Dit voorkomt effectief dat iemand zich als root kan aanmelden - omdat er geen manier is om het wachtwoord in te voeren. Omdat er nog steeds tijden zijn waarop root-toegang noodzakelijk is - de Ubuntu-kernel is aangepast om root-lokale login alleen mogelijk te maken in de modus voor één gebruiker.
Zie ook dit pagina