Vraag Waarom is het slecht om als root in te loggen?


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.


179
2017-12-04 17:00


oorsprong


Ik denk dat er geen probleem is om een ​​programma als root uit te voeren. Het is alleen dat, je zou de kern van je OS kunnen beschadigen (zelfs sudoers kunnen dat doen) als je niet veel verstandig bent in Linux. behalve dat ik niet denk dat er een probleem is. Maar dat is slechts mijn mening. - Gaurav Butola
Gerelateerde vraag hier. - loevborg
De moeilijkheid om in de rootmodus te komen, varieert van distro's. Ik ben persoonlijk geïrriteerd door de manier waarop Fedora je niet toestaat om direct uit de doos te 'sudo'. OpenSUSE en Ubunto hebben echter al een vooraf geconfigureerde sudo ... en dus als je de juiste distro kiest, kun je je irritaties minimaliseren omdat je geen toegang tot bestanden kunt krijgen. - djangofan
@GauravButola zelfs als je een expert bent, is het nog steeds een slecht idee als een toepassing in gevaar komt. - strugee
@DaboRoss de OP merkt op dat hij in Windows als beheerder werkt; voor mijn (kleine) ervaring in dat besturingssysteem lijkt het me meer op Ubuntu: het is een bevoorrecht account in de zin dat het kan doen wat je wilt, maar het vraagt voor toestemming voor bijvoorbeeld het installeren van nieuwe software. Waarschijnlijk is het equivalent van het gebruik van "administrator" door de gebruiker in Windows die naar Ubuntu is vertaald, om de hoofdgebruiker met sudo geconfigureerd te laten werken, zodat deze de pass niet vraagt ​​--- direct wordt uitgevoerd omdat root veel gevaarlijker is. - Rmano


antwoorden:


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.


145
2017-12-04 17:08



... en het beschermt u tegen het transformeren van triviale fouten bij rampen. Ik ben een Unix-gebruiker / adm sinds 1990, maar toch kan ik zeker een spatie invoegen op de exacte verkeerde plaats door een a te doen rm -rf tmp/tests/*... - Rmano
1.) De meeste mensen beschouwen hun thuismap als belangrijker dan root-mappen, want de eerstvolgende kunnen niet opnieuw worden geïnstalleerd. Dus ik begrijp je punt niet. 2.) Wat de beveiliging betreft, hebt u gelijk. Maar vanuit Windows (waar er VEEL meer malware rond is), waar ik sindsdien de beheerdersaccount heb gebruikt (zoals velen doen), vind ik het moeilijk om dit als een reëel gevaar te beschouwen. Ik ben gewoon te lui om te typen sudo en mijn wachtwoord voor elke tweede opdracht in Linux. Worden Linux-gebruikers niet geacht lui te zijn ????? - Blauhirn
disagree -_-: ~: | - Artful Aardvark
@LazyPower Bedankt voor het bewerken van je antwoord, maar nu begrijp ik het niet meer. Voor het wijzigen van mijn privémap Ubuntu ~ hebben programma's geen sudo-rechten nodig. Rhythmbox KAN verwijder mijn hele $ HOME / Music-map! En dat is alles waar ik om geef! Hoe is dit gerelateerd aan rootrechten? - Blauhirn
Dat is een goed bericht @Blauhirn. Ik stuurde zojuist een nabewerking in om aan te geven dat we niet willen dat het het geheel van / usr verwijdert. In termen van het beschermen van uw $ HOME-mappen, kan niets als een goede back-up u helpen. Ik denk niet dat dit specifieke scenario evenzeer te maken heeft met beveiliging als met goede praktijken. Nogmaals bedankt voor de call-out. - lazyPower


Slechts één woord: veiligheid.

  1. 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.
  2. Het gaat niet alleen om virussen - kleine bugs in een applicatie kunnen sommige systeembestanden wissen of ...
  3. 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 ...

73
2017-12-04 17:10



Gegevensbestanden, die allemaal eigendom zijn van mijn gebruikersaccount, zijn veel meer waardevol voor mij dan systeembestanden. Al uw bovenstaande voorbeelden zijn nog steeds problemen wanneer u als een gebruiker bent aangemeld, behalve dat de gemakkelijk te vervangen systeembestanden zijn beveiligd. - kbeta
@kbeta Je gaat ervan uit dat je op een computer draait waar de enige waardevolle dingen je gegevens- en systeembestanden zijn. In werkelijkheid wordt linux vaak gebruikt in een systeem waarbij veel gebruikers tegelijkertijd een systeem gebruiken. In dit geval is de stabiliteit van het systeem (en dus de systeembestanden) veel waardevoller en andere gebruikersbestanden zijn ook belangrijk. - Eric Pauley
@kbeta Eerlijk genoeg, maar een beschadigde systeemconfiguratie kan ook een risico vormen voor uw gegevens ... en natuurlijk zou het hebben van back-ups een goed idee zijn of uw systeem momenteel risico loopt of niet. Huidige back-up werken met een noodherstelplan zou nog beter zijn. - Pryftan


Draaien als root is slecht omdat:

  1. 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.
  2. 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.
  3. 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".
  4. 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 :).


45
2017-12-04 18:43



'een decennium misschien?' Veel langer dan dat, zelfs toen je dit schreef. Zelfs zonder sudo is er su en niet te vergeten b.v. de wielgroep (bijvoorbeeld). Privilege-scheiding is altijd belangrijk en is altijd belangrijk geweest en zal altijd belangrijk zijn. Otoh niet zo veel mensen gebruikten Unix-gebaseerde OS dat vele jaren geleden en velen die dat doen zijn gebruikt om altijd een beheerder. - Pryftan


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 sudowanneer 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.


36
2017-12-04 17:24



he will still be able to boot the system, even if the data will be lost. - Wat heeft dit voor zin? Als mijn gegevens verloren gaan, gaan mijn gegevens verloren en dat is het. Linux-systeemsoftware kan opnieuw worden geïnstalleerd als deze wordt verwijderd. Waarom zou ik me zorgen maken over gegevensverlies in dergelijke taken? Aan de andere kant, gegevensverlies in ~ is slecht. En sudo beschermt me niet tegen dat. - Blauhirn
Een andere goede gewoonte is om van belangrijke gegevens een back-up te maken. Als u de thuismap wist, kunt u nog steeds opstarten en alleen bestanden vanuit de back-up kopiëren. Of, laten we zeggen dat je een kleine laptop hebt om te reizen. Het kan enkele foto's hebben, reisbeschrijvingen, treinplanning - maar niets te cruciaal. Als u de gebruikersbestanden wist, kunt u het systeem nog steeds opstarten en inchecken voor uw vlucht of uitvinden welke bus u moet nemen. - Richlv
@Blauhirn Back-ups. En er is een kans op herstel, zelfs als het er somber uitziet. - Pryftan


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.


31
2017-12-04 23:10



Het gaat er niet om iemand de schuld te geven, het gaat om het kunnen achterhalen waarom iemand heeft iets veranderd. - jippie
@jippie: ik bedoel 'blame' op dezelfde manier als een VCS bijhoudt die deed wat, zodat de juiste persoon wordt toegewezen met de verantwoordelijkheid voor de verandering, voor goed of slecht, en een van de namen voor de opdracht die dat volgen doet is 'de schuld'. Het geeft je een persoon om mee te praten om erachter te komen waarom er iets is gebeurd. Het is niet altijd 'fout' (hoewel deprimerend vaak, de reden voor het moeten weten is omdat iets niet helemaal werkt zoals verwacht en er is een noodzaak om te weten waarom niet). Het gaat dus om verantwoording en volgbaarheid, in plaats van de persoon te benadrukken voor wat hij deed. - Jonathan Leffler
Op Ubuntu bevelen opdrachten als rm -fr / home/me/my-subdir probeer niet om recursief te verwijderen /, omdat / wordt speciaal behandeld om dergelijke fouten te voorkomen. Zie de documentatie van de --preserve-root en --no-preserve-root opties in man rmvoor details. Maar het principe is goed: typefouten met één teken do bestaat dat resultaat rm alles verwijderen. Als u bijvoorbeeld wilt dat alles in de huidige map wordt verwijderd door het uit te voeren rm -r *, maar je hebt per ongeluk een / voor *dat zou slecht zijn. - Eliah Kagan
@EliahKagan Maar toch als je zou doen ... chown -R nobody:nobody ../ from say / etc zou het u beschermen? Als je dat zou doen op / etc zou dit je een wereld van pijn doen. Zo ook .* wanneer recursief een commando wordt uitgevoerd. - Pryftan


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.


20
2018-05-03 17:12



'Als u de enige persoon bent die uw computer gebruikt, is de schade die u alleen als root kunt aanrichten mogelijk niet hoger dan de schade die u kunt aanrichten met uw normale gebruikersrechten. Maar dat is nog steeds geen reden om uw risico uit te breiden. Om nog maar te zwijgen over het feit dat u er de gewoonte van hebt ... ga dan naar een ander systeem en wat gebeurt er? Hetzelfde met het absurde idee om mensen te laten wennen rm -i via shell alias. Je gaat naar een systeem dat dat niet heeft en wat dan? Baby die een gebruiker zit van fouten als deze is nooit een goed idee als je bedenkt dat mensen heel veel gewoontedieren zijn. - Pryftan


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


13
2017-12-04 17:18



Um. Geen aanstoot, maar misschien wil je de titel van de vraag lezen en de details opnieuw lezen. - Mussnoon
Dit is uiterst nuttig - en dat ook doet betrekking hebben op de vraag. Het houdt zich bezig met de beveiligingsimplicaties van het inschakelen van het account, een voorwaarde om als root te kunnen worden uitgevoerd. - Stefano Palazzo♦
@Stefano Palazzo: Hoewel de verstrekte informatie nuttig kan zijn, kan ik oprecht niet zien in welk deel een antwoord ligt op wat ik moest weten. Ik heb het meerdere keren gelezen. - Mussnoon
Voorkomt niet dat mensen kunnen inloggen op root. - Chad