Overzicht van sudo
In Linux-systemen heeft de root-gebruiker alle rechten. Echter, alle taken als root uitvoeren kan risico's met zich meebrengen die schadelijk kunnen zijn voor het systeem. `sudo` is een belangrijk beveiligingsmechanisme dat gewone gebruikers tijdelijk de benodigde beheerdersrechten geeft, zodat systeembeheer kan plaatsvinden met minimale beveiligingsrisico's.
Hoe sudo werkt
`sudo` vraagt om het wachtwoord (het wachtwoord van de gebruiker, niet het root-wachtwoord) wanneer een gebruiker het `sudo`-commando uitvoert, en als dit wachtwoord correct is, voert het het commando uit met de rechten van de root of een andere gebruiker volgens de regels die in het `sudoers`-bestand zijn gedefinieerd. Eenmaal geverifieerd, kan `sudo` gedurende een bepaalde tijd (standaard 5 minuten) worden gebruikt zonder opnieuw het wachtwoord in te voeren.
Belangrijkste functies van sudo
- **Verbeterde beveiliging**: Voorkomt onnodig inloggen op het root-account en vermindert beveiligingsrisico's.
- **Verantwoordelijkheid traceren**: Alle commando's die via `sudo` worden uitgevoerd, worden gelogd, zodat kan worden getraceerd wie wanneer welke beheerderscommando's heeft uitgevoerd.
- **Geselecteerde rechtenbeheer**: Met het `sudoers`-bestand kan nauwkeurig worden beheerd welke specifieke gebruikers of groepen bepaalde commando's met root-rechten kunnen uitvoeren.
- **Vermindering van wachtwoordverzoeken**: Eenmaal geverifieerd, kan `sudo` gedurende een bepaalde tijd zonder wachtwoord worden gebruikt, wat handig is.
🔑 sudoers-bestand
/etc/sudoers
`sudo`-rechten worden gedefinieerd in het `/etc/sudoers`-bestand. Dit bestand is zeer gevoelig, dus **moet je het altijd bewerken met het `visudo`-commando.** `visudo` controleert automatisch op syntaxisfouten, zodat de functionaliteit van `sudo` niet wordt verstoord door onjuiste instellingen.
Belangrijkste sudo-commando-opties
`sudo`-commando kan naast het verhogen van rechten ook verschillende opties hebben om de uitvoeringswijze te beheren.
1. Basisgebruik
2. Gebruikers- en shellgerelateerde opties
3. Authenticatie en lijstgerelateerde opties
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`sudo` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Instellingen van het sudoers-bestand (gebruik visudo)
`sudo`-rechten worden beheerd via het `/etc/sudoers`-bestand. In plaats van dit bestand rechtstreeks te bewerken, moet je het `visudo`-commando gebruiken om het veilig te bewerken. `visudo` controleert op syntaxisfouten om te voorkomen dat de functionaliteit van `sudo` wordt verstoord.
Bewerken van het sudoers-bestand
sudo visudo
Bewerk het sudoers-bestand veilig met root-rechten. De standaardeditor kan `vi` zijn.
Algemene indeling van het sudoers-bestand
De items in het `sudoers`-bestand zijn gedefinieerd in het formaat `User Host=(RunAs) NOPASSWD: Command`. De meest gebruikelijke instelling is om gebruikers die tot een bepaalde groep behoren alle commando's met `sudo`-rechten te geven.
Voorbeeldinstellingen
Hier zijn voorbeelden van instellingen die je vaak kunt tegenkomen in het `sudoers`-bestand.
- `%sudo ALL=(ALL:ALL) ALL`: Sta alle gebruikers die tot de `sudo`-groep behoren toe om, vanaf elke host (ALL), met de rechten van elke gebruiker (ALL) en groep (ALL), alle commando's (ALL) uit te voeren. (Wachtwoord vereist)
- `username ALL=(ALL) NOPASSWD: /usr/bin/apt update`: Sta de gebruiker `username` toe om het commando `apt update` zonder wachtwoord in te voeren, alleen met root-rechten.
Voorbeelden van gebruik
Leer hoe je met het `sudo`-commando systeemtaken kunt uitvoeren met beheerdersrechten aan de hand van verschillende gebruiksvoorbeelden.
Systeempakketupdate
sudo apt update
Het commando voor het bijwerken van de pakketlijst van het systeem vereist beheerdersrechten, dus gebruiken we `sudo`.
Bestand kopiëren naar een specifieke map
sudo cp my_config.conf /etc/
Kopieert het bestand `my_config.conf` naar de `/etc/`-map, waar normaal gesproken geen schrijfrechten zijn.
Commando uitvoeren als een andere gebruiker
sudo -u www-data ls /var/www/html
Voert het commando `ls /var/www/html` uit met de rechten van de gebruiker `www-data` (meestal de webserverprocessen) om de bestandsrechten van deze gebruiker te testen.
Overschakelen naar root-shell
sudo -i
Voer het wachtwoord van de huidige gebruiker in om een shell te krijgen die volledig is overgeschakeld naar de omgeving van de root-gebruiker. Nadat je klaar bent met werken, kun je `exit` invoeren om terug te keren naar de oorspronkelijke gebruiker.
Controleer sudo-rechten van de huidige gebruiker
sudo -l
Controleer welke commando's de momenteel ingelogde gebruiker kan uitvoeren via `sudo`, en of er een wachtwoord nodig is.