Hoe 'Username Not in the Sudoers File' Incident op Linux Op te Lossen

Gepubliceerd 19 mei 2024

Krijg je de foutmelding "gebruikersnaam staat niet in het sudoers-bestand" wanneer je probeert een commando uit te voeren met sudo-rechten? In dit artikel bekijken we twee manieren om dit probleem op te lossen en de gebruiker sudo-toegang te verlenen.

Snelle Oplossing: Gebruiker Toevoegen aan het Sudoers-bestand

Om de foutmelding "gebruikersnaam staat niet in het sudoers-bestand" te verhelpen en de gebruiker sudo-rechten te verlenen, kun je de gebruikersnaam toevoegen aan het sudoers-bestand. Hier is een handleiding:

  1. Open een terminal en log in als een gebruiker met sudo-rechten of als de root-gebruiker.

  2. Voer dit commando uit om het sudoers-bestand te bewerken:

    sudo visudo

    Dit commando opent het sudoers-bestand in een teksteditor en vergrendelt het bestand, waardoor meerdere bewerkingen worden voorkomen.

  3. Ga naar het einde van het bestand en voeg deze regel toe:

    gebruikersnaam ALL=(ALL) ALL

    Vervang "gebruikersnaam" door de gebruikersnaam waaraan je sudo-rechten wilt verlenen.

  4. Sla de wijzigingen op en sluit de teksteditor af. In de standaard teksteditor (nano), druk op Ctrl+X, vervolgens Y, en Enter om op te slaan en af te sluiten.

Alternatieve Methode: Gebruiker Toevoegen aan Sudo-groep

In plaats van het sudoers-bestand direct aan te passen, kun je de gebruiker toevoegen aan de sudo-groep. Deze methode is eenvoudiger en heeft minder risico op syntaxfouten. Om de gebruiker toe te voegen aan de sudo-groep, gebruik je dit commando:

sudo usermod -aG sudo gebruikersnaam

Vervang "gebruikersnaam" door de gebruikersnaam die je wilt toevoegen aan de sudo-groep.

---example Om de gebruiker "jane" toe te voegen aan de sudo-groep, voer je uit:

sudo usermod -aG sudo jane

Na het uitvoeren van dit commando zal "jane" in de sudo-groep zitten en kan ze sudo gebruiken om commando's uit te voeren met superuser-rechten.

Sudo-toegang van Gebruiker Controleren

Om te controleren of een gebruiker sudo-toegang heeft, kun je het id commando gebruiken om hun groepslidmaatschappen te bekijken:

id gebruikersnaam 

Als de gebruiker in de sudo-groep zit of is toegevoegd aan het sudoers-bestand, zou je "sudo" vermeld moeten zien in hun groepen.

Belangrijke Overwegingen

  • Wees voorzichtig bij het verlenen van sudo-toegang aan gebruikers, omdat dit hen in staat stelt taken uit te voeren die systeembestanden en instellingen kunnen wijzigen.
  • Verleen alleen sudo-toegang aan gebruikers die het nodig hebben voor hun taken en die vertrouwd zijn.
  • Controleer en update regelmatig de lijst van gebruikers met sudo-toegang om je systeem veilig te houden.

De Reden Achter de Foutmelding Begrijpen

Het sudoers-bestand is een configuratiebestand in Linux-systemen dat gebruikersrechten voor het uitvoeren van commando's met sudo (superuser do) regelt. Dit bestand specificeert welke gebruikers of groepen sudo mogen gebruiken en root-rechten mogen krijgen.

Wanneer een gebruiker probeert een commando uit te voeren met sudo, controleert het systeem het sudoers-bestand om te verifiëren of de gebruiker de benodigde rechten heeft. Als de gebruiker niet in het bestand staat vermeld of niet over de juiste rechten beschikt, verschijnt de foutmelding "gebruikersnaam staat niet in het sudoers-bestand".

Het sudoers-bestand bevindt zich meestal op /etc/sudoers en mag alleen worden aangepast met het visudo commando, dat controleert op syntaxfouten en bestandscorruptie voorkomt.

Veelvoorkomende Oorzaken van de Foutmelding

  1. Gebruiker niet toegevoegd aan het sudoers-bestand: Als de gebruiker onlangs is aangemaakt of sudo-rechten niet werden verleend tijdens de gebruikersinstallatie, zal hun gebruikersnaam niet in het sudoers-bestand staan.

  2. Gebruiker verwijderd uit het sudoers-bestand: Als de sudo-rechten van de gebruiker werden ingetrokken of hun vermelding per ongeluk werd verwijderd uit het sudoers-bestand, zullen ze niet langer sudo-toegang hebben.

  3. Gebruiker niet in de sudo-groep: Sommige Linux-distributies, zoals Ubuntu, gebruiken een sudo-groep in plaats van gebruikers direct toe te voegen aan het sudoers-bestand. Als de gebruiker geen lid is van de sudo-groep, kunnen ze sudo niet gebruiken.

  4. Syntaxfouten in het sudoers-bestand: Als er syntaxfouten of vergissingen zijn in het sudoers-bestand, kan dit voorkomen dat sudo correct werkt voor alle gebruikers.

graph TD A[Gebruiker probeert sudo-commando uit te voeren] --> B{Staat gebruiker in sudoers-bestand?} B -->|Ja| C[Commando uitgevoerd met sudo-rechten] B -->|Nee| D{Zit gebruiker in sudo-groep?} D -->|Ja| C[Commando uitgevoerd met sudo-rechten] D -->|Nee| E[Gebruikersnaam staat niet in het sudoers-bestand foutmelding]

---example:"Een Gebruiker Toevoegen aan het sudoers-bestand"

Om een gebruiker genaamd "john" toe te voegen aan het sudoers-bestand, volg je deze stappen:

  1. Open een terminal en voer sudo visudo uit.
  2. Voeg de volgende regel toe aan het bestand: john ALL=(ALL) ALL.
  3. Sla het bestand op en sluit af.

Nu zal de gebruiker "john" sudo-rechten hebben.

De Foutmelding Verhelpen

Om de foutmelding "gebruikersnaam staat niet in het sudoers-bestand" op te lossen, moet je ofwel de gebruiker direct toevoegen aan het sudoers-bestand ofwel ze toevoegen aan de sudo-groep, afhankelijk van de configuratie van je systeem.

Methode Commando
Gebruiker toevoegen aan sudoers-bestand sudo visudo, voeg vervolgens gebruikersnaam ALL=(ALL) ALL toe
Gebruiker toevoegen aan sudo-groep sudo usermod -aG sudo gebruikersnaam

Gebruik altijd het visudo commando om het sudoers-bestand te bewerken om het risico op syntaxfouten te minimaliseren en ervoor te zorgen dat sudo-rechten correct worden verleend.

Wanneer je de foutmelding "gebruikersnaam staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd" tegenkomt, betekent dit meestal dat de gebruiker waarmee je commando's probeert uit te voeren niet over de benodigde sudo-rechten beschikt. Deze fout treedt op wanneer een systeemgebruiker probeert een commando uit te voeren met het sudo commando zonder vermeld te staan in het sudoers-bestand of lid te zijn van de sudo-groep.

Gebruiker Toevoegen aan sudo-groep

Een andere manier om een gebruiker sudo-rechten te geven is door ze toe te voegen aan de sudo-groep. De sudo-groep is een speciale groep die haar leden in staat stelt het sudo commando te gebruiken en commando's uit te voeren met superuser-rechten.

Om een gebruiker toe te voegen aan de sudo-groep, gebruik je het usermod commando met de -aG opties gevolgd door de groepsnaam en gebruikersnaam:

sudo usermod -aG sudo gebruikersnaam

Vervang gebruikersnaam door de daadwerkelijke gebruikersnaam die je wilt toevoegen aan de sudo-groep.

Bijvoorbeeld, om de gebruiker "jane" toe te voegen aan de sudo-groep, voer je uit:

sudo usermod -aG sudo jane

Na het uitvoeren van dit commando zal de gebruiker "jane" lid zijn van de sudo-groep en kan ze het sudo commando gebruiken om commando's uit te voeren met superuser-rechten.

Het gebruik van de sudo-groep om gebruikersrechten te beheren heeft verschillende voordelen:

Vereenvoudigd beheer

In plaats van het sudoers-bestand voor elke gebruiker te bewerken, kun je gebruikers toevoegen aan of verwijderen uit de sudo-groep om sudo-toegang te geven of af te nemen.

Consistentie

Door de sudo-groep te gebruiken, houd je een consistente methode aan voor het verlenen van sudo-rechten aan meerdere gebruikers.

Verminderd risico op syntaxfouten

Het toevoegen van gebruikers aan de sudo-groep elimineert de noodzaak om het sudoers-bestand direct te wijzigen, waardoor het risico op syntaxfouten die sudo kunnen laten stoppen met correct werken vermindert.

Eenvoudiger controleren

Je kunt snel controleren welke gebruikers sudo-rechten hebben door de leden van de sudo-groep weer te geven met het commando:

grep sudo /etc/group

Dit commando zal een regel tonen zoals:

sudo:x:27:jane,bob,alice

In het voorbeeld hierboven zijn de gebruikers "jane", "bob", en "alice" leden van de sudo-groep en hebben ze sudo-rechten.

Het is belangrijk op te merken dat de sudo-groep mogelijk niet beschikbaar is in alle Linux-distributies. Sommige systemen, zoals CentOS, gebruiken in plaats daarvan een wheel-groep. Controleer altijd de documentatie van je distributie om de juiste groep te vinden voor het verlenen van sudo-rechten.

Bijvoorbeeld, in CentOS kun je een gebruiker toevoegen aan de wheel-groep om sudo-rechten te verlenen:

sudo usermod -aG wheel gebruikersnaam

Het Sudoers-bestand Aanpassen

Hoewel het toevoegen van een gebruiker aan de sudo-groep een eenvoudige manier is om sudo-rechten te verlenen, kunnen er situaties zijn waarin je het sudoers-bestand moet aanpassen. Het bewerken van het sudoers-bestand moet met voorzichtigheid worden gedaan, omdat syntaxfouten ervoor kunnen zorgen dat sudo stopt met werken.

Om het sudoers-bestand te bewerken, moet je een teksteditor met root-rechten gebruiken. De aanbevolen methode is om het visudo commando te gebruiken, dat het sudoers-bestand opent in de standaard teksteditor en controleert op syntaxfouten bij het opslaan van wijzigingen. Om het sudoers-bestand te openen met visudo, voer je uit:

sudo visudo

Zodra het bestand open is, kun je een gebruiker of groep toevoegen aan het sudoers-bestand met de volgende syntaxis:

gebruikersnaam ALL=(ALL) ALL
%groepsnaam ALL=(ALL) ALL

Vervang gebruikersnaam door de daadwerkelijke gebruikersnaam en groepsnaam door de daadwerkelijke groepsnaam waaraan je sudo-rechten wilt verlenen.

---example:"Sudo-toegang verlenen aan een gebruiker"

Om de gebruiker "john" sudo-toegang te geven, voeg je deze regel toe aan het sudoers-bestand:

john ALL=(ALL) ALL

Dit stelt de gebruiker "john" in staat om elk commando uit te voeren met sudo-rechten vanaf elke host.

Best practices bij het aanpassen van het sudoers-bestand

  • Gebruik altijd visudo om het sudoers-bestand te bewerken
  • Controleer de syntaxis van je wijzigingen nogmaals
  • Beperk sudo-toegang tot alleen noodzakelijke commando's en gebruikers
  • Gebruik groepen om sudo-toegang voor meerdere gebruikers te beheren
  • Bewaar een back-up van je sudoers-bestand voordat je wijzigingen aanbrengt

De Oplossing Verifiëren

Na het toevoegen van de gebruiker aan het sudoers-bestand of de sudo-groep, moet je controleren of de wijzigingen van kracht zijn geworden en de gebruiker nu commando's kan uitvoeren met sudo-rechten.

Sudo-toegang testen

Om te controleren of de gebruiker sudo-commando's kan uitvoeren, schakel je over naar hun account of log je in als de gebruiker, en probeer dan een commando uit te voeren met sudo, zoals:

sudo ls

Dit commando zal proberen de inhoud van de huidige map weer te geven met superuser-rechten. Als de gebruiker sudo-toegang heeft, zal het commando succesvol worden uitgevoerd nadat de gebruiker hun wachtwoord heeft ingevoerd. Als de gebruiker geen sudo-rechten heeft, zal een foutmelding verschijnen die aangeeft dat de gebruiker niet in het sudoers-bestand staat.

Hier is een voorbeeld van het testen van sudo-toegang voor de gebruiker "john":

su john
sudo ls

Als "john" sudo-rechten heeft, zal het ls commando worden uitgevoerd en de mapinhoud weergeven. Zo niet, dan zal een foutmelding zoals deze verschijnen:

john staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd.

Groepslidmaatschappen controleren

Een andere manier om sudo-toegang te verifiëren is door de groepslidmaatschappen van de gebruiker te controleren met het groups commando:

groups john

Als de gebruiker is toegevoegd aan de sudo-groep, zou je "sudo" in de uitvoer moeten zien:

john : john sudo

Deze uitvoer bevestigt dat de gebruiker "john" in de sudo-groep zit en sudo-rechten heeft.

Problemen met sudo-toegang oplossen

Als de gebruiker nog steeds geen sudo kan gebruiken na ze te hebben toegevoegd aan het sudoers-bestand of de sudo-groep, controleer dan het volgende:

  • De syntaxis van het sudoers-bestand is correct, en er zijn geen fouten in de vermelding van de gebruiker
  • De gebruiker is toegevoegd aan de juiste groep (sudo of wheel, afhankelijk van de distributie)
  • De gebruiker is uitgelogd en opnieuw ingelogd, of het systeem is opnieuw opgestart zodat de groepswijzigingen van kracht worden

Veelvoorkomende sudo-foutmeldingen en oplossingen

Foutmelding Oplossing
gebruikersnaam staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd. Voeg de gebruiker toe aan het sudoers-bestand of de sudo-groep.
[sudo] wachtwoord voor gebruikersnaam:
gebruikersnaam staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd.
De gebruiker staat niet in het sudoers-bestand of de sudo-groep. Voeg de gebruiker toe aan de juiste groep of het juiste bestand.
Sorry, gebruiker gebruikersnaam mag '/pad/naar/commando' niet als root uitvoeren op hostnaam. De gebruiker staat in het sudoers-bestand, maar hun vermelding staat hen niet toe het commando uit te voeren. Pas de vermelding van de gebruiker in het sudoers-bestand aan om de benodigde rechten te verlenen.

---example Om de gebruiker "alice" toe te voegen aan de sudo-groep op een Ubuntu-systeem, gebruik je dit commando:

usermod -aG sudo alice

Na het uitvoeren van dit commando, log je uit en log je opnieuw in als "alice," en test je vervolgens de sudo-toegang:

sudo ls

Als het commando succesvol wordt uitgevoerd, heeft "alice" nu sudo-rechten.