- 1 1. Aan de slag: Wat is sudo?
- 2 2. Basisgebruik van het sudo-commando
- 3 3. Het sudoers-bestand en Toegangscontrole
- 4 4. Geavanceerd Gebruik van sudo
- 5 5. Beveiliging en Best Practices
- 6 6. Veelvoorkomende fouten en probleemoplossing
- 7 7. FAQ: Veelgestelde vragen over sudo
- 7.1 Q1. Wat is het verschil tussen sudo en su?
- 7.2 Q2. Moet ik het root‑wachtwoord invoeren bij gebruik van?
- 7.3 Q3. Waar worden sudo‑logboeken vastgelegd?
- 7.4 Q4. Ik heb per ongeluk het sudoers-bestand bewerkt. Wat moet ik doen?
- 7.5 Q5. Is er een manier om root-rechten te krijgen zonder sudo te gebruiken?
- 7.6 Q6. Is het oké om GUI-apps te starten met sudo?
- 8 8. Conclusie
1. Aan de slag: Wat is sudo?
De basisbetekenis en rol van sudo
In Linux en Unix-achtige systemen is “sudo” een cruciaal commando.
“sudo” is een afkorting voor “superuser do” en is een tool om tijdelijk beheerdersprivileges (root-privileges) te lenen om commando’s uit te voeren. Gewone gebruikers hebben normaal gesproken geen bevoegdheid om bewerkingen uit te voeren die het gehele systeem beïnvloeden (zoals het installeren van pakketten of het wijzigen van systeeminstellingen). Echter, door het gebruik van het sudo-commando kunnen deze bevoorrechte bewerkingen op beperkte basis worden uitgevoerd.
Bijvoorbeeld, je kunt het apt-commando met root-privileges uitvoeren door het volgende commando uit te voeren:
sudo apt update
Daarom speelt sudo een rol in het balanceren van systeembescherming en gemak als een “mechanisme om beheerdersprivileges veilig te gebruiken.”
Verschillen met het su-commando
Er is een commando su dat een vergelijkbaar doel heeft als sudo, maar er zijn duidelijke verschillen tussen de twee.
sustaat voor “substitute user” en is een commando om over te schakelen naar een andere gebruiker (voornamelijk root). Wanneer jesugebruikt, worden bewerkingen uitgevoerd op een manier die volledig “wordt” de opgegeven gebruiker.- Aan de andere kant voert
sudocommando’s uit met tijdelijk geleende beheerdersprivileges terwijl je de huidige gebruiker blijft.
Met andere woorden, su is een methode om per sessie over te schakelen, terwijl sudo een methode is om privileges per commando te verhogen. Dit verschil is significant in termen van beveiliging; sudo maakt het eenvoudiger om de geschiedenis van bewerkingen te beheren, en in recente distributies is sudo de standaardmethode geworden.
Typische Linux-distributies waar sudo wordt gebruikt
sudo wordt standaard gebruikt in veel Linux-distributies, en het gebruik ervan wordt particularmente aangenomen in de volgende distributies:
- Ubuntu-gebaseerd (Ubuntu, Linux Mint, enz.) → In eerste instantie log je niet direct in op het root-account, maar beheer je het met sudo.
- Debian-gebaseerd → sudo kan later worden ingeschakeld, maar het wordt vaak aanbevolen als beveiligingsbeleid.
- Fedora, CentOS en Red Hat-gebaseerd → Hoewel het gebruik van het root-account mogelijk is, is het gebruik van sudo ook gebruikelijk.
Vooral in Ubuntu is het root-account standaard uitgeschakeld, en alle beheersbewerkingen zijn ontworpen om via sudo te worden uitgevoerd. Daarom is het begrijpen van sudo essentieel voor Ubuntu-gebruikers.
Waarom wordt er gezocht op “sudo sudo”?
Het zoekwoord “sudo sudo” lijkt op het eerste gezicht overbodig, maar er zijn eigenlijk gevallen waarin het met de volgende intenties wordt gezocht:
- Beginners die de betekenis en het gebruik van
sudowillen weten, voeren het herhaaldelijk in voor nadruk. - Gebruikers die problemen zijn tegengekomen bij het gebruik van
sudo(bijv.sudo: sudo: command not found) zoeken naar oplossingen. - Gebruikers die voorbeelden van dubbele
sudo-gebruik in scripts of pijplijnen hebben gezien en zich afvroegen wat het betekent.
Met het begrijpen van deze zoekintenties zullen de volgende hoofdstukken in detail de juiste gebruiks- en configuratiemethoden van sudo uitleggen, evenals probleemoplossing.
2. Basisgebruik van het sudo-commando
Basis-syntax van sudo
Het basisformaat van sudo is zeer eenvoudig.
sudo [options] command
Bijvoorbeeld, om de pakketinformatie van het systeem bij te werken, gebruik je het volgende:
sudo apt update
Dit commando betekent “voer ‘apt update’ uit met root-privileges.”
Wachtwoordauthenticatiemechanisme en cache
De eerste keer dat je sudo gebruikt, of nadat een bepaalde periode is verstreken, zal het systeem je vragen om je gebruikerswachtwoord in te voeren. Dit is een mechanisme om de beveiliging te verbeteren en accidentele bewerkingen of ongeautoriseerd gebruik door derden te voorkomen.
Na het invoeren van het wachtwoord wordt het voor een bepaalde periode gecachet (5 minuten standaard in Ubuntu), en kun je de wachtwoordinvoer weglaten bij het opnieuw gebruiken van sudo. Deze tijd kan worden gewijzigd in het sudoers-bestand.
Veelgebruikte opties
sudo heeft veel opties om bewerkingen handiger en flexibeler te maken. Hieronder staan enkele van de meest gebruikte.
-u (Uitvoeren als een Andere Gebruiker)
Standaard gebruikt het root-privileges, maar door de optie -u te gebruiken, kun je commando’s uitvoeren als elke gebruiker.
sudo -u www-data whoami
Het uitvoeringsresultaat zal www-data zijn, wat bevestigt dat “het commando is uitgevoerd als www-data, niet als mezelf.”
-s (Een Shell Starten)
Het volgende commando stelt je in staat om tijdelijk een shell te openen met root-privileges.
sudo -s
Echter, bewerkingen in de root-staat moeten voorzichtig worden uitgevoerd.
-i (Inloggen als een Volledige Root-gebruiker)
Deze optie hercreëert een completere root-omgeving. Aangezien omgevingsvariabelen ook worden omgeschakeld naar die van root, wordt het een root-sessie in dezelfde staat als direct na inloggen.
sudo -i
-l (Controleer Uitvoerbare Commando’s)
Je kunt ook de commando’s controleren die je kunt uitvoeren met sudo.
sudo -l
Dit is nuttig voor het controleren van beveiligingsbeperkingen en het testen van privilege-instellingen.
Punten voor Beginners om op te Letten
- Je moet een spatie plaatsen na
sudo. Voorbeeld:sudoaptis onjuist. - Als je meerdere commando’s wilt uitvoeren, moet je het gehele commando tussen aanhalingstekens plaatsen (
"of') of ze scheiden met semicolons. - Wees voorzichtig bij het uitvoeren van GUI-applicaties met
sudo, omdat het configuratiebestanden kan beschadigen (bijv.sudo gedit).
3. Het sudoers-bestand en Toegangscontrole
Wat is het sudoers-bestand?
Het configuratiebestand dat het gedrag van het sudo-commando controleert, is /etc/sudoers in het systeem. Dit bestand definieert wie welke commando’s met sudo kan uitvoeren.
Bijvoorbeeld, gedetailleerde toegangscontrole is mogelijk, zoals het toestaan van een bepaalde gebruiker om alleen specifieke commando’s met sudo uit te voeren.
Deze flexibiliteit maakt het mogelijk om het beveiligingsprincipe te realiseren van het verlenen van gebruikers alleen de minimale noodzakelijke privileges (principe van minimale bevoegdheid).
Veilig Bewerken met het visudo-commando
Het /etc/sudoers-bestand moet niet direct worden bewerkt met een teksteditor.
Dit is omdat een syntaxfout sudo onbruikbaar kan maken, waardoor herstel moeilijk wordt. Daarom is het aanbevolen om het visudo-commando te gebruiken voor bewerken.
sudo visudo
visudo voert syntaxiscontrole uit bij het opslaan, waardoor veilig bewerken mogelijk is.
Basis Syntax en Configuratievoorbeelden
De basis syntax van het sudoers-bestand is als volgt:
username hostname = (runas_user) command(s)
Voorbeeld:
alice ALL=(ALL:ALL) ALL
Deze instelling staat de gebruiker “alice” toe om alle commando’s op alle hosts uit te voeren als elke gebruiker.
Om meer beperkingen toe te voegen:
bob ALL=(ALL) /usr/bin/systemctl restart nginx
Deze instelling beperkt de gebruiker “bob” tot alleen het uitvoeren van het “nginx herstart commando” met sudo.
Beheersen per Groep: De sudo-groep
In veel distributies zoals Ubuntu worden gebruikers die behoren tot de sudo-groep het privilege verleend om sudo te gebruiken.
%sudo ALL=(ALL:ALL) ALL
Door %sudo op deze manier te schrijven, wordt beheer per groep mogelijk.
Om een gebruiker toe te voegen aan de sudo-groep, gebruik het volgende commando:
sudo usermod -aG sudo username
Hoe te Gebruiken en Voorzorgsmaatregelen voor de NOPASSWD-optie
Als je het vervelend vindt om elke keer je wachtwoord in te voeren bij het uitvoeren van sudo, kun je de NOPASSWD-optie gebruiken om wachtwoordinvoer over te slaan.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
Met deze instelling zal de gebruiker “alice” nginx kunnen herstarten zonder wachtwoord.
Echter, dit verhoogt beveiligingsrisico’s, dus het is belangrijk om het alleen te gebruiken voor een beperkt aantal commando’s.
In het bijzonder wordt het combineren met ALL niet aanbevolen.
4. Geavanceerd Gebruik van sudo
Commando’s Uitvoeren als een Specifieke Gebruiker
Normaal gesproken voert sudo commando’s uit met root-privileges, maar door opties te gebruiken, kun je ook commando’s uitvoeren als elke gebruiker.
Bijvoorbeeld, als je een commando wilt uitvoeren als de “www-data”-gebruiker die wordt gebruikt door de webserver, gebruik het volgende:
sudo -u www-data whoami
Het uitvoeringsresultaat zal www-data zijn, wat bevestigt dat “de opdracht is uitgevoerd als www-data, niet als mezelf.”
Deze gebruiksmethode is nuttig wanneer je verschillende omgevingen of privileges voor elke gebruiker wilt controleren.
Combinatie met Redirects en Pipes
Een veelvoorkomend verwarringspunt voor beginners is de combinatie van sudo met redirects (>) en pipes (|).
Bijvoorbeeld, het volgende commando lijkt op het eerste gezicht correct, maar het zal niet werken zoals verwacht:sudo echo "test" > /etc/test.conf
In dit geval wordt echo zelf uitgevoerd met sudo, maar de redirect met > wordt uitgevoerd met reguliere gebruikerprivileges. Daarom zal het schrijven mislukken.
De juiste manier is om het tee-commando te gebruiken:
echo "test" | sudo tee /etc/test.conf
Door dit te doen, wordt het redirect-gedeelte ook uitgevoerd met sudo-privileges, en kun je de fout vermijden.
Het gebruik van sudo in Scripts
Wanneer je commando’s die beheerdersprivileges vereisen opneemt in een shellscript, voeg dan expliciet sudo toe voor het commando.
Echter, als je een script maakt met de aanname dat het door een reguliere gebruiker wordt uitgevoerd, is het veiliger om sudo alleen toe te voegen aan de noodzakelijke delen en het uitvoeren van het gehele script met sudo te vermijden.
Voorbeeld (install.sh):
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
Er is ook een patroon om aan het begin van het script te controleren of het root is:
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
Door dergelijke controles op te nemen, wordt veilige scriptuitvoering mogelijk.
Veelgebruikte Handige Commando’s
sudo !!→ Heruitvoeren van het vorige commando met sudo. Bijvoorbeeld:apt update sudo !!
Dit heeft hetzelfde effect als sudo apt update.
sudo -k→ Wis handmatig de sudo-wachtwoordcache. Dit is nuttig om veiligheidsredenen, zoals voordat je tijdelijk je terminal verlaat.sudo -v→ Verlengt de sudo-privileges voor de huidige sessie. Dit is handig voor lange taken.
5. Beveiliging en Best Practices
Houd je aan het Principe van Minste Privilege
Het primaire doel van het gebruik van sudo is om systeemoperaties mogelijk te maken met de minimale noodzakelijke privileges.
Met andere woorden, het ideale gebruik is niet om “altijd de almachtige root-gebruiker te zijn,” maar om “de macht van root alleen te lenen wanneer noodzakelijk en binnen het noodzakelijke bereik.”
Door dit principe te volgen, zijn de volgende instellingen, bijvoorbeeld, wenselijk:
- Sta gebruikers toe om alleen specifieke commando’s met sudo uit te voeren (bijv.,
systemctl restart nginx). - Minimaliseer het gebruik van NOPASSWD.
- Beheer gebruikers met beheerdersprivileges in groepen (bijv.,
sudo).
Logging en Auditing
sudo registreert uitgevoerde commando’s in logs. Dit stelt je in staat om later te controleren wie welk commando wanneer heeft gebruikt.
De belangrijkste logbestemmingen zijn als volgt (kunnen variëren afhankelijk van de distributie):
/var/log/auth.log(Ubuntu, Debian-gebaseerd)journalctl(distributies met systemd)
Bijvoorbeeld, om de sudo-gebruiksgeschiedenis in Ubuntu te controleren:
grep 'sudo' /var/log/auth.log
Of:
journalctl _COMM=sudo
Dit maakt het mogelijk om te traceren wie wat heeft gedaan zelfs in het geval van ongeautoriseerde of accidentele operaties. Dit is een essentieel perspectief in serverbeheer.

Echte sudo Kwetsbaarheid (CVE-2021-3156)
Hoewel sudo een zeer betrouwbaar hulpmiddel is, zijn significante kwetsbaarheden in het verleden gemeld.
Een bijzonder beroemd voorbeeld is CVE-2021-3156 (algemeen bekend als Baron Samedit), uitgebracht in 2021.
Dit was een ernstige kwetsbaarheid waarbij, onder bepaalde voorwaarden, een kwaadwillende invoer een reguliere gebruiker kon toestaan root-privileges te verkrijgen.
Dit probleem is al opgelost, maar zoals dit geval laat zien:
- Houd belangrijke pakketten inclusief sudo altijd op de nieuwste versie .
- Controleer regelmatig officiële websites en kwetsbaarheidsdatabases.
Zo’n maatregelen zijn noodzakelijk.
Inleiding tot sudo Alternatief: doas
Onder sommige minimale Linux‑omgevingen en bij beveiligingsbewuste gebruikers wordt ook een commando genaamd doas gebruikt als alternatief voor sudo.
doas is een beknopt privilege‑escalatietool afkomstig van OpenBSD, gekenmerkt door zijn eenvoudigere configuratie en hogere veiligheid vergeleken met sudo.
Voorbeeld:
doas apt update
Het configuratie‑bestand staat in /etc/doas.conf. De syntaxis is ook eenvoudig:
permit nopass :wheel
Zoals te zien is, kun je gemakkelijk instellingen schrijven, bijvoorbeeld om gebruikers in de wheel‑groep doas te laten gebruiken zonder wachtwoord.
Omdat doas echter niet standaard wordt meegeleverd in sommige Linux‑omgevingen, kost het wat moeite om het te installeren en te configureren.
Afhankelijk van het doel en de bedoeling is het verstandig te kiezen of sudo of doas beter past.
6. Veelvoorkomende fouten en probleemoplossing
Fout “User is not in the sudoers file”
username is not in the sudoers file. This incident will be reported.
Deze fout wordt weergegeven wanneer de huidige gebruiker geen toestemming heeft om sudo te gebruiken. Dit gebeurt meestal wanneer een nieuwe gebruiker die nog niet aan de sudo‑groep is toegevoegd, een commando uitvoert.
Oplossing:
- Log in met een andere gebruiker die root‑rechten heeft.
- Voeg de doelgebruiker toe aan de
sudo‑groep.sudo usermod -aG sudo username
Log daarna uit en log opnieuw in in de sessie; sudo zal beschikbaar zijn.
Fout “Permission denied” bij gebruik van redirects of pipes
Permission denied
Deze fout treedt op omdat, zelfs als je een commando met sudo wilt uitvoeren, de redirect‑bestemming of pipe‑verwerking buiten sudo om gebeurt.
Onjuist voorbeeld:
sudo echo "test" > /etc/test.conf
In dit geval wordt echo uitgevoerd met sudo, maar het schrijven naar het bestand gebeurt met de rechten van de gewone gebruiker, wat leidt tot een fout.
Correct gebruik:
echo "test" | sudo tee /etc/test.conf
Of, om meerdere regels in één keer te schrijven, is het beter sudo tee of sudo bash -c te gebruiken.
sudo bash -c 'echo "line1" > /etc/test.conf'
Onbruikbaarheid door fouten in het bewerken van het sudoers‑bestand
Als je het sudoers‑bestand rechtstreeks bewerkt en een syntaxisfout maakt, kan sudo zelf onbruikbaar worden. Dit is een zeer gevaarlijke situatie.
Oplossing:
- Log in met het root‑account (let op: dit is standaard uitgeschakeld in Ubuntu).
- Herstel met het volgende commando:
pkexec visudo
Als pkexec niet kan worden gebruikt, moet je opstarten in de herstelmodus of iets dergelijks om het bestand /etc/sudoers te wijzigen.
Om syntaxisfouten te voorkomen, gebruik altijd het volgende bij het bewerken:
sudo visudo
“sudo: command not found”
sudo: command not found
Deze fout treedt op wanneer sudo niet op het systeem is geïnstalleerd of niet kan worden gevonden door een probleem met de PATH‑omgevingsvariabele.
Oplossing:
- Log in met root‑rechten en herinstalleer sudo als volgt:
apt update apt install sudo
- Of voer direct het pad naar
/usr/bin/sudouit:/usr/bin/sudo ls
7. FAQ: Veelgestelde vragen over sudo
Q1. Wat is het verschil tussen sudo en su?
A:
sudo is een commando om “tijdelijk alleen specifieke commando’s met beheerdersrechten uit te voeren”, terwijl su een commando is om “over te schakelen naar een andere gebruiker (voornamelijk root)”.
sudo: Verhoogt de rechten alleen voor bepaalde handelingen terwijl je de huidige gebruiker behoudt.su: Schakelt volledig over naar een andere gebruiker.
Vanuit het oogpunt van veiligheid en operationele geschiedenis wordt het gebruik van sudo de afgelopen jaren aanbevolen.
Q2. Moet ik het root‑wachtwoord invoeren bij gebruik van?
A:
Nee, je voert meestal je eigen inlogwachtwoord in, niet het root‑wachtwoord.
Dit verkleint het risico op lekken van het root‑wachtwoord en maakt het makkelijker om de gebruikersgeschiedenis bij te houden.
Q3. Waar worden sudo‑logboeken vastgelegd?
A:
In veel Linux‑distributies worden de operationele logboeken van sudo vastgelegd in een van de volgende:
- Ubuntu/Debian-gebaseerd:
/var/log/auth.log - RHEL/CentOS-gebaseerd:
/var/log/secure - Alle systemd-omgevingen:
journalctl _COMM=sudo
Dit maakt het mogelijk om te traceren wie wat heeft gedaan zelfs in het geval van ongeautoriseerde of accidentele operaties.
Q4. Ik heb per ongeluk het sudoers-bestand bewerkt. Wat moet ik doen?
A:
Eerst, zorg er altijd voor dat je sudo visudo gebruikt voordat je bewerkt.
Als je sudo niet meer kunt gebruiken vanwege een syntaxfout, probeer het te repareren met een van de volgende methoden:
- Log in met het root-account en repareer het met
visudo. - Als het Ubuntu is, start als root op vanuit “Recovery Mode” en repareer het.
pkexec visudo(in omgevingen waarpolkitis ingeschakeld).
Aangezien syntaxfouten de werking van het gehele systeem beïnvloeden, test het dan opnieuw na het repareren.
Q5. Is er een manier om root-rechten te krijgen zonder sudo te gebruiken?
A:
Ja, maar het is niet aanbevolen vanwege verhoogde beveiligingsrisico’s.
Bijvoorbeeld:
- Schakel over naar root met de
su-opdracht (vereist het root-wachtwoord). - Log direct in met het root-account (standaard uitgeschakeld in Ubuntu).
Veel Linux-distributies hebben een beleid om direct gebruik van het root-account te vermijden, en het gebruik van sudo is veiliger.
Q6. Is het oké om GUI-apps te starten met sudo?
A:
Over het algemeen is het beter om het te vermijden. Bijvoorbeeld, het uitvoeren van iets als sudo gedit kan GUI-configuratiebestanden overschrijven met root-rechten, wat inconsistenties in rechten of corruptie van configuraties kan veroorzaken.
Bij het gebruik van GUI-applicaties wordt aanbevolen om gksudo of pkexec te gebruiken zoals volgt (echter, deze tools kunnen verouderd zijn of niet geïnstalleerd afhankelijk van de omgeving):
pkexec gedit
8. Conclusie
Begrijp de Rol van sudo Correct
In dit artikel hebben we breed uitgelegd over “sudo,” een zeer belangrijk commando in Linux en Unix-achtige systemen, met inbegrip van de basisrol, gebruik, configuratiemethoden, toepassingen, beveiligingsmaatregelen, veelvoorkomende fouten en FAQ’s.
sudo is niet zomaar iets om “voor een commando te zetten,” maar een belangrijk toegangscontrolemechanisme dat noodzakelijk werk mogelijk maakt terwijl de systeembetrouwbaarheid behouden blijft.
Correct Gebruik Voorkomt Problemen
Aandacht schenken aan de volgende punten is de sleutel tot veilig gebruik van sudo:
- Werk met de minimale noodzakelijke rechten (principe van minimale bevoegdheid).
- Beheer instellingen veilig met
visudo. - Gebruik logs om de operationele geschiedenis te controleren en beheren.
- Wees voorzichtig met gedrag bij combineren met pipes en redirects.
- Vermijd over het algemeen het gebruik voor GUI-applicaties.
Het niet begrijpen van deze punten kan leiden tot problemen zoals “bestanden zijn corrupt,” “instellingen kunnen niet worden hersteld,” of “sudo is niet meer bruikbaar.”
Kies een Stijl Die Past bij Je Systeembeheer
Linux is een zeer flexibel systeem. Naast het gebruik van sudo kun je ook alternatieve tools zoals doas gebruiken indien nodig.
Afhankelijk van je operationele beleid en beveiligingsbeleid, kies een stijl die bij je past en configureer en bedien het correct, wat leidt tot beter systeembeheer.
Tot Slot
Het begrijpen van sudo is de eerste stap in het begrijpen van Linux.
Verwerf de juiste kennis en gebruik niet alleen als een handig commando, maar als een “sleutel” om het gehele systeem te beschermen.
We hopen dat de volgende keer dat je Linux gebruikt, elk van je commando’s met meer vertrouwen wordt uitgevoerd.



