Root en sudo in Linux: rechtenbeheer uitgelegd
Op Linux servers werk je met gebruikersrechten die bepalen wat je wel en niet mag doen. Root is de almachtige superuser, terwijl sudo je tijdelijk verhoogde rechten geeft. Bij Theory7 adviseren we altijd om veilig met deze rechten om te gaan. In deze handleiding leggen we alles uit over root, sudo en best practices.
Wat is root?
Root is de superuser account op Linux met onbeperkte rechten. Dit betekent dat root toegang heeft tot alle bestanden en instellingen op het systeem. Root kan:
- Alle bestanden lezen en wijzigen
- Elke software installeren of verwijderen
- Systeemconfiguratie aanpassen
- Alle services starten en stoppen
- Andere gebruikers beheren
Dit maakt root een krachtige, maar ook gevaarlijke gebruiker. Een fout als root kan je hele systeem vernietigen. Bijvoorbeeld, het per ongeluk verwijderen van cruciale systeem bestanden kan leiden tot een onbruikbaar systeem. Daarom adviseren we om nooit permanent als root te werken. In plaats daarvan kun je gebruik maken van sudo om tijdelijke verhoogde rechten te verkrijgen.
Inloggen als root
Directe root login via SSH
ssh root@server-ip
Dit werkt alleen als root login is toegestaan in sshd_config. Het is echter niet aan te raden om deze methode te gebruiken vanwege beveiligingsrisico's. Het is beter om als normale gebruiker in te loggen en vervolgens sudo te gebruiken.
Wisselen naar root vanuit normale gebruiker
su -
Voer het root wachtwoord in. De - zorgt voor een volledige login shell met de juiste environment variabelen. Dit is handig als je een sessie wilt starten met de root omgeving.
Root shell via sudo
sudo -i
Dit opent een root shell als je sudo rechten hebt. Dit is een veilige manier om als root te werken zonder het root wachtwoord te hoeven invoeren.
Wat is sudo?
Sudo (superuser do) laat geautoriseerde gebruikers commando's uitvoeren als root of andere gebruiker. De voordelen van sudo boven direct root werken zijn talrijk:
- Logging: Alle sudo commando's worden gelogd, wat helpt bij het bijhouden van systeemactiviteit.
- Tijdelijk: Rechten vervallen na korte tijd, wat de kans op misbruik vermindert.
- Granulaire controle: Specifieke commando's toestaan, zodat gebruikers alleen toegang hebben tot wat ze nodig hebben.
- Geen root wachtwoord: Gebruikers hoeven het root wachtwoord niet te kennen, wat de veiligheid verhoogt.
Sudo gebruiken
Basis syntax
sudo commando
Bijvoorbeeld:
sudo apt update
Je wordt gevraagd om je eigen wachtwoord (niet het root wachtwoord). Dit verhoogt de veiligheid omdat alleen geautoriseerde gebruikers toegang hebben tot verhoogde rechten.
Commando als andere gebruiker
sudo -u www-data commando
Dit is handig voor het testen van webserver permissies. Bijvoorbeeld, als je een webapplicatie hebt die draait onder de gebruiker www-data, kun je met deze opdracht controleren of de applicatie correct functioneert met de juiste rechten.
Root shell openen
sudo -i
Of voor een tijdelijke root shell:
sudo -s
Het verschil is dat -i een volledige login shell geeft met de root omgeving, terwijl -s je in de huidige shell houdt.
Sudo gebruiker aanmaken
Stap 1: Gebruiker maken
sudo adduser nieuwegebruiker
Volg de prompts voor wachtwoord en gegevens. Het is belangrijk om een sterk wachtwoord te kiezen om de veiligheid van je systeem te waarborgen.
Stap 2: Toevoegen aan sudo groep
Op Ubuntu/Debian:
sudo usermod -aG sudo nieuwegebruiker
Op CentOS/RHEL:
sudo usermod -aG wheel nieuwegebruiker
Stap 3: Testen
Log in als de nieuwe gebruiker en test:
su - nieuwegebruiker
sudo whoami
De output moet root zijn, wat bevestigt dat de gebruiker succesvol is toegevoegd aan de sudo groep.
Sudoers configuratie
De sudoers file bepaalt wie wat mag. Bewerk nooit direct, gebruik visudo:
sudo visudo
Dit controleert de syntax voordat het bestand wordt opgeslagen, wat voorkomt dat je jezelf vergrendelt door een fout te maken.
Basis sudoers regels
# Gebruiker mag alles
gebruiker ALL=(ALL:ALL) ALL
# Groep mag alles
%sudo ALL=(ALL:ALL) ALL
# Gebruiker mag alles zonder wachtwoord
gebruiker ALL=(ALL) NOPASSWD: ALL
# Gebruiker mag alleen specifieke commando's
gebruiker ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl
Uitleg van de syntax
WIE WAAR=(ALS_WIE) WAT
- WIE: Gebruiker of %groep
- WAAR: Op welke hosts (ALL voor alle)
- ALS_WIE: Als welke gebruiker uitvoeren
- WAT: Welke commando's toegestaan
Best practices
Nooit permanent als root werken
Log in als normale gebruiker en gebruik sudo wanneer nodig. Dit minimaliseert het risico op onbedoelde schade aan je systeem.
Gebruik sudo in plaats van su
Sudo logt alles en vereist geen gedeeld root wachtwoord. Dit verhoogt de veiligheid en maakt het makkelijker om te traceren wie wat heeft gedaan.
Beperk sudo rechten
Geef gebruikers alleen de rechten die ze nodig hebben. Dit kan bijvoorbeeld zo worden ingesteld:
webmaster ALL=(www-data) /usr/bin/composer, /usr/bin/php
Hiermee kan de gebruiker webmaster alleen de opgegeven commando's uitvoeren als de gebruiker www-data.
Stel een sudo timeout in
In sudoers:
Defaults timestamp_timeout=5
Na 5 minuten moet het wachtwoord opnieuw worden ingevoerd. Dit voorkomt dat iemand onbevoegd toegang krijgt tot verhoogde rechten als je je computer even verlaat.
Check wie sudo rechten heeft
getent group sudo
# of op CentOS
getent group wheel
Dit geeft je een overzicht van welke gebruikers sudo rechten hebben, zodat je deze indien nodig kunt beheren.
Troubleshooting
User is not in the sudoers file
De gebruiker heeft geen sudo rechten. Als root of met een bestaande sudo user:
sudo usermod -aG sudo gebruikersnaam
Sudo wachtwoord vergeten
Je sudo wachtwoord is je eigen wachtwoord, niet root. Als je dat vergeten bent, log in als root om het te resetten:
passwd gebruikersnaam
Sudoers syntax error
Als visudo meldt dat er een syntax error is:
sudo visudo -c
Dit toont de locatie van de fout, zodat je deze kunt corrigeren.
Gerelateerde artikelen
- Basis Linux commandos voor hosting
- SSH verbinden vanuit Windows (PuTTY)
- WP-CLI gebruiken via SSH
- VPS eerste stappen na aankoop
Hulp nodig?
We staan voor je klaar! Loop je ergens tegenaan of heb je vragen? Ons supportteam helpt je graag persoonlijk verder. Stuur ons een berichtje via het ticketsysteem - we reageren meestal binnen een paar uur en denken graag met je mee.
0 van 0 vonden dit nuttig