![Een Linux-laptop in Ubuntu-stijl.](https://www.howtogeek.com/wp-content/uploads/2021/06/linux-laptop.png?width=1198&trim=1,1&bg-color=000&pad=1,1)
De rootgebruiker is de machtigste entiteit in het Linux-universum met onbeperkte bevoegdheden, zowel ten goede als ten kwade. Een gebruiker aanmaken? Begrepen. Een bestandssysteem vernietigen? Oeps, heb dat ook.
Het oorsprongsverhaal
De rootgebruiker is de Linux-supergebruiker. Ze kunnen letterlijk alles. Niets is beperkt of verboden voor root
. Of ze een superheld of een superschurk zijn, hangt af van de menselijke gebruiker die de rol van systeembeheerder op zich neemt. Fouten gemaakt door de rootgebruiker kunnen catastrofaal zijn, dus het root-account mag uitsluitend voor administratieve doeleinden worden gebruikt.
Het concept van de rootgebruiker is overgenomen van Unix, die een rootgebruiker als administratieve supergebruiker had. Maar waar de naam “root” vandaan komt, is niet met zekerheid bekend. Sommige mensen denken dat het afkomstig is van het Multics-besturingssysteem, dat dateert van vóór Unix.
Ken Thompson en Dennis Ritchie, twee van de belangrijkste architecten en auteurs van Unix, hadden beiden eerder aan de Multics gewerkt. Multics had een bestandssysteem dat begon op een punt dat de hoofdmap of “/” wordt genoemd, en alle andere mappen en submappen vertakken zich naar beneden en naar buiten vanaf de root als een omgekeerde boom. Het is dezelfde soort boomstructuur die door Unix wordt gebruikt. Dus misschien heeft Unix de root-gebruiker van Multics ook overgenomen?
Bij het doorzoeken van de technische documentatie van Multics ontdekt u een groot aantal verwijzingen naar logische root-volumes, fysieke root-volumes, root-kaarten en de root-directory. Maar er is geen sprake van een root-gebruikersaccount of een gebruiker met de naam ‘root’.
Een andere theorie is dat in de begindagen van Unix de thuismap van de superuser de root “/” van het bestandssysteem was. De supergebruiker had een naam nodig. De term ‘rootgebruiker’ was gebruikt in plaats van een officiële naam, maar de term bleef hangen en werd de officiële naam.
Dat lijkt waarschijnlijker, maar niemand lijkt met zekerheid te kunnen zeggen hoe de rootgebruiker aan zijn naam is gekomen.
Het sudo-commando
Op elk besturingssysteem is het de beste gewoonte om de superuser alleen voor administratieve doeleinden te reserveren en de rest van de tijd een gewone gebruikersaccount te gebruiken. In feite laten de meeste moderne Linux-distributies je niet inloggen als rootgebruiker.
Dit is natuurlijk Linux, dus je kunt het zo configureren dat de rootgebruiker kan inloggen. Maar hoe minder tijd je doorbrengt met ingelogd als root
, des te beter. Behalve dat je jezelf beschermt tegen rampen als gevolg van typefouten, als je niet kunt inloggen als root
, niemand anders kan. Iedereen die ongeautoriseerde toegang tot uw systeem krijgt, kan niet inloggen als root
, waardoor de schade die ze kunnen aanrichten wordt beperkt.
Maar als u inlogt als root
is uitgeschakeld, hoe beheer je je Linux-computer? Nou, dat is wat de sudo
opdracht is voor. Het vereist niet dat de root-gebruiker inlogt. Het geeft tijdelijk root
’s bevoegdheden op u. Het is alsof je de hamer van Thor oppakt Mjölnir en tijdelijk Thor’s bevoegdheden worden verleend. Maar je kunt de hamer alleen oppakken als je het waard bent. Evenzo is het niet zomaar iedereen die de kan gebruiken sudo
opdracht. De sudo
opdracht geeft alleen root
’s bevoegdheden op je als je waardig bent bevonden en toegevoegd aan de lijst met sudoers.
Er is nog een ander commando dat lijkt op sudo
genaamd su
. Met sudo
, authenticeert u met uw eigen wachtwoord. Met su
, authenticeert u met het wachtwoord van de rootgebruiker. Dit is op twee manieren significant. Ten eerste betekent dit dat je een wachtwoord moet toewijzen aan de rootgebruiker om te gebruiken su
. Standaard heeft de rootgebruiker geen wachtwoord, en dit helpt bij de beveiliging. Als root
heeft geen wachtwoord, u kunt niet inloggen als root
.
Ten tweede, als je een root-wachtwoord instelt, zal iedereen die de su
commando moet het wachtwoord weten. En het delen van wachtwoorden is een veiligheidsno-no, en voor het root-wachtwoord nog meer. Alle mensen die het root-wachtwoord kennen, kunnen het aan iemand anders vertellen. Als je het root-wachtwoord moet wijzigen, moet je het nieuwe wachtwoord doorgeven aan alle mensen die het moeten weten.
Het is veel veiliger om de lijst met sudoers te gebruiken om te beperken wie kan gebruiken sudo
, en laat elke bevoorrechte persoon zijn individuele wachtwoord gebruiken om zich te authenticeren.
sudo gebruiken
Het bestand “/etc/shadow” bevat de gebruikersnaam van elk account op je Linux-computer, samen met andere stukjes informatie, inclusief het versleutelde wachtwoord van elk account, wanneer het wachtwoord voor het laatst is gewijzigd en wanneer het wachtwoord verloopt. Omdat het gevoelige informatie bevat, kan het alleen worden gelezen door: root
.
Als we proberen om de wc
opdracht om de regels, woorden en tekens in het schaduwbestand te lezen, wordt ons toestemming geweigerd.
wc /etc/shadow
Als we in de sudoers-lijst staan en we gebruiken hetzelfde commando met sudo
aan het begin van de regel worden we om ons wachtwoord gevraagd en wordt de opdracht voor ons uitgevoerd. Als u de enige gebruiker op uw Linux-computer bent, wordt u automatisch toegevoegd aan de lijst met sudoers wanneer het systeem is geïnstalleerd.
sudo wc /etc/shadow
Omdat we de opdracht als root uitvoeren, is de wc
opdracht wordt uitgevoerd. Niemand ontkent wortel.
De sudo
commando betekende vroeger ‘superuser do’. Het is verbeterd zodat u een opdracht als elke gebruiker kunt uitvoeren, dus het is hernoemd tot “vervang gebruiker do”. Het commando wordt feitelijk uitgevoerd alsof de andere gebruiker het heeft uitgevoerd. Als u geen gebruikersnaam opgeeft, sudo
standaard gebruikt root
. Als u een andere gebruiker wilt gebruiken, gebruikt u de -u
(gebruiker) optie.
We kunnen zien dat de commando’s worden uitgevoerd als een andere gebruiker met behulp van de whoami
opdracht.
whoami
sudo whoami
sudo -u mary whoami
VERWANT: Hoe het huidige gebruikersaccount in Linux te bepalen
Uitvoeren als root zonder su . te gebruiken
Het addertje onder het gras sudo
is dat je “sudo” moet gebruiken aan het begin van elk commando. Als je maar een of twee commando’s typt, is dat niet erg. Als u een langere reeks opdrachten moet uitvoeren, kan dit vermoeiend worden. Het is misschien vermoeiend, maar het fungeert wel als een handige vangst voor: root
’s krachten, en je moet elke keer bewust de veiligheid uitschakelen.
Er is een manier om effectief “in te loggen” als root
dat gebruikt niet su
en vereist niet dat de rootgebruiker een wachtwoord heeft.
Waarschuwing: Wees voorzichtig wanneer u deze methode gebruikt. Elke opdracht die u geeft, wordt met plezier uitgevoerd, er worden geen vragen gesteld, zelfs als deze destructief zijn.
Gebruik makend van sudo
om een Bash-shell uit te voeren, wordt een nieuwe shell geopend met root
als de gebruiker.
sudo bash
Merk op dat de opdrachtprompt verandert. Het laatste teken van de prompt is nu een hekje “#” in plaats van een dollarteken “$”.
Hoe de hoofdtekst van de opdrachtprompt wordt weergegeven, verschilt van distributie tot distributie. In Ubuntu krijgen we te horen dat de gebruiker is root
en toonde de naam van de computer en de huidige werkdirectory. De kleur van de prompt wordt ook gewijzigd.
Omdat we root
, kunnen we opdrachten uitvoeren waarvoor normaal gesproken het gebruik van sudo
.
wc /etc/shadow
Om de shell van de rootgebruiker te verlaten, drukt u op “Ctrl+D” of typt u “exit” en drukt u op “Enter”.
exit
Minder Superman, meer Clark Kent
Als je in de sudoers-lijst staat, heb je superkrachten over je Linux-systeem. Onthoud dat Superman meer tijd doorbrengt als zijn zachtaardige alter-ego dan in zijn rode cape.
Gebruik zoveel mogelijk uw gewone gebruikersaccount. Alleen veranderen in root
wanneer het echt nodig is.