De superuser

root

In de file /etc/passwd staat ook een entry voor de inlognaam root.

root:x:0:0:Superuser:/root:/bin/bash

Het betreft hier de entry voor de superuser ook wel root genoemd. Zoals te zien is heeft root een UID gelijk aan 0, en de macht van deze gebruiker is zeer groot. Het is onverstandig standaard als root het systeem te gebruiken. Wordt alleen root als dat nodig is. Het commando om tijdelijk root te worden is:

su

Dit comando staat niet voor superuser, maar voor set user-id. Je kunt met dit commando ook de user-id van een andere gebruiker aannemen. Zo kun je je met:

su leovm

jezelf tijdelijk voordoen als leovm. Als gewone gebruiker moet je in dat geval wel het password van leovm kennen. Als root kun je dat zonder password doen. Het commando zonder toevoeging kan je tijdelijk root maken, mits je het root-password kent. Als het goed is, is dat een zwaar bewaakt geheim.

sudo

Om de zwart-wit stelling tussen root en gewone gebruikers wat op te vullen met tussensituaties is het commando sudo bedacht. Met sudo voer je een commando met root-rechten uit. In de file /etc/sudoers is aangegeven aan welke peroenen dat is toegestaan en zijn ook eventueel de beperkingen aangegeven. Zo kun je iemand alleen voor een bepaald commando sudo laten gebruiken. Sudo vraagt, als dat zo geconfigureerd is in de sudoers file, om een password. Dit is dat het password van de gebruiker zelf en niet het root password. Als voorbeeld geven hier een mount commando voor een usb-stick:

sudo mount -t vfat /dev/sda1 /mnt/usb

Normaal kan mount alleen door de superuser uitgevoerd worden.

SUID-bestanden

De passwordfile is alleen schrijfbaar voor iemand met rootrechten. Hetzelfde geldt voor shadow. Toch kun je als gebruiker je password veranderen met een commando (dit commanod heet ook passwd en is te vinden in /usr/bin). Bekijken we het resultaat van ls -l /usr/bin/passwd dan zien we:

-rwsr-xr-x 1 root root 27132 2006-07-11 14:51 /usr/bin/passwd

Oplettende lezertjes zien hier bij de permissiebits iets vreemds staan. In plaats van rwx staat er rws. Deze s zegt dat van deze executeerbare file het set-user-id (SUID) bit aan staat. Gevolg is dat tijdens de uitvoer van dit programma de rechten van de eigenaar van het programma worden gebruikt (in plaats van de rechten van degene die het uitvoert). Met andere woorden, aangezien het hier om een bestand met de eigenaar root gaat, zal bij het uitvoeren de UID van root toegepast worden. Voor het systeem lijkt het alsof root een commando uitvoert. Gevolg is dat /etc/shadow te benaderen is. Als het commando afgelopen is, dan vallen we weer terug in onze eigen beperkte rechten. Om het SUID-bitje aan te zetten kunnen we het basale commando:

chmod 4755 filenaam

Bepaalde GUI tools hebben voor het SUID-bit een checkbutton waarmee het aan te zetten is. Een waarschuwing is wel op zijn plaats. SUID-programma zijn slechts in beperkte mate nodig. Maak er niet meer dan strikt nodig is. Systeembeheerders doen er goed aan te kijken welke SUID programma er zijn en ervoor te zorgen dat er niet zomaar bijkomen. Dit laatste kan een aanwijzing zijn dat er ingebroken is op het systeem.


Aangemaakt 19 september 2006
Laatst bijgewerkt januari 2016