User account management

Linux biedt meerdere programma's waarmee je gebruikersaccounts en groepen direct in de terminal kunt aanmaken, verwijderen en beheren. Een overzicht van de belangrijkste Linux-commando's voor het user account management hebben we hieronder samengesteld. Bovendien vind je in deze categorie Linux-terminal-commando's waarmee je programma's kunt openen met de rechten van andere gebruikers inclusief de super-user-root.

Gebruikersaccount aanmaken

De eenvoudigste manier om een gebruikersaccount aan te maken, is met het opdrachtregelprogramma adduser. Hiervoor zijn rootrechten vereist en dient de volgende syntax te worden gebruikt:

adduser [OPTIES] [GEBRUIKERSNAAM]

Als adduser zonder opties wordt gebruikt, worden naast het nieuwe gebruikersaccount automatisch een gebruikers-ID, de homemap en een gelijknamige gebruikersgroep aangemaakt.

Voorbeeld:
adduser test

Vervolgens verschijnt er een interactieve dialoog waarin je het wachtwoord en de uitgebreide gebruikersgegevens (echte naam, kantoornummer, telefoonnummers enz.) kunt configureren.

Dit automatisme kan met extra opties worden aangepast of beperkt.

Gebruikersaccount verwijderen

Het opdrachtregelprogramma deluser verwijdert alle invoer voor een geselecteerd gebruikersaccount uit de systeemaccountbestanden.

Om deluser te openen, zijn rootrechten vereist en dient het volgende schema te worden gevolgd:

deluser [OPTIES] [GEBRUIKERSNAAM]

Voorbeeld:
deluser peter23

Het gebruikersaccount peter23 wordt verwijderd.

Als je ook nog alle bestanden in de homemap van de gebruiker wilt verwijderen, voer je het commando in met de optie —remove-home. Als alle bestanden van de gebruiker uit het systeem moeten worden verwijderd, gebruik je de optie —remove-all-files.

deluser –remove-all-files peter23

Als alle bestanden van de gebruiker voor verwijdering worden opgeslagen, gebruik je deluser in combinatie met de optie —backup-to en voer je de gewenste map in.

deluser –backup-to /pad/naar/map peter23

deluser is een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma userdel.

Gebruikersaccount wijzigen

Met het opdrachtregelcommando usermod kun je reeds aangemaakte gebruikersaccounts bewerken.

Gebruik usermod met rootrechten volgens het volgende schema:

usermod [OPTIES] [GEBRUIKERSNAAM]

Welke modificaties moeten worden uitgevoerd, bepaal je met behulp van opties.

Gebruikersnaam wijzigen (-l NIEUWE_NAAM):
usermod -l peter24 peter23

De gebruiker peter23 heet nu peter24.

Nieuwe homemap aanmaken (-d MAP) en oude bestanden verplaatsen (-m):
usermod -d /pad/naar/map/peter24 -m peter24

Alle bestanden uit de oude homemap worden verplaatst naar de nieuwe homemap.

Gebruiker blokkeren (-L):
usermod -L peter24

Het wachtwoord van de gebruiker peter24 wordt geblokkeerd.

Gebruikers in groep opnemen (-a) en alle andere groepstoewijzingen behouden (-G):
usermod -aG users peter24

Peter wordt toegevoegd aan de groep users.

Veranderen van gebruikersgroep

newgrp (kort voor new group) is een commando waarmee aangemelde gebruikers hun huidige groeps-ID kunnen veranderen, zonder dat ze zich opnieuw hoeven aan en af te melden.

De algemene syntax van het commando luidt:

newgrp [-] [GROEP]

Als newgrp wordt gebruikt met de optionele parameter [-] zorgt de verandering van groep ervoor dat de gebruikersomgeving opnieuw wordt opgestart, alsof de gebruiker zich opnieuw heeft aangemeld.

Gebruikers die newgrp gebruiken zonder groepsaanduiding gaan naar de onder /etc/passwd vermelde standaardgroep.

Een gebruiker dient lid van de groep te zijn waar hij naartoe wil veranderen. Een uitzondering hierop zijn groepen die met een wachtwoord zijn beveiligd. Als een groep beveiligd is met een wachtwoord, dient dit voor het veranderen van groep in de terminal te worden ingevoerd.

Gebruikersgroepen aanmaken

Met het opdrachtregelprogramma groupadd kunnen nieuwe gebruikersgroepen worden aangemaakt.

Gebruik groupadd met rootrechten volgens het volgende schema:

sudo groupadd [OPTIES] GROEP

Iedere nieuwe groep die is aangemaakt krijgt een uniek groeps-ID (GID). Groeps-IDs tussen 0 en 99 zijn gereserveerd voor systeemgroepen. Als je het GID van een nieuwe gebruikersgroep zelf wilt definiëren, gebruik je het opdrachtregelcommando groupadd met de optie –g(GID).

In het volgende voorbeeld wordt de groep users met het GID 1425 aangemaakt.

groupadd -g 1425 users

Als je een systeemgroep wilt aanmaken, gebruik je de optie –r (root).

Gebruikersgroep verwijderen

Het opdrachtregelcommando delgroup (kort voor delete group) verwijdert een bestaande gebruikersgroep.

De algemene syntax van delgroup luidt:

delgroup [OPTIES] GROEP

Om het commando uit te kunnen voeren, zijn rootrechten vereist.

De volgende invoer zorgt ervoor dat de groep users wordt verwijderd:

delgroup users

Net als bij deluser gaat het hier om een Perl-script dat in gebruiksvriendelijke vorm functies biedt van het low-level-programma groupdel.

Gebruikersgroep wijzigen

Via groupmod kunnen de naam en het groeps-ID (GID) van een bestaande gebruikersgroep worden gewijzigd.

Het opdrachtregelcommando wordt met rootrechten volgens het volgende schema gebruikt:

groupmod OPTIES GROEP

Gebruik groupmod met de optie –g om het GID te wijzigen. Een commando met de optie –n overschrijft de groepsnaam.

Voorbeelden:  
groupmod -g 1800 users

Het GID van de groep users wordt op 1800 gezet.

groupmod -n all users

De groep users wordt hernoemd naar all.

Gebruikerswachtwoord wijzigen

Gebruik het opdrachtregelprogramma passwd om het wachtwoord van een gebruiker te wijzigen of blokkeer- en wijzigingsintervallen te definiëren.

Het commando wordt gebruikt met de volgende syntax:

passwd [OPTIES] [GEBRUIKERSNAAM]

Als je het wachtwoord van een andere gebruiker wilt wijzigen, dien je over rootrechten te beschikken.

Gebruik het commando passwd zonder gebruikersnaam om je eigen wachtwoord te wijzigen.

passwd

Als het wachtwoord van de geselecteerde gebruiker moet worden geblokkeerd, gebruik je het commando passwd met de optie –l (lock).

passwd -l GEBRUIKERSNAAM

Andere opties bieden de mogelijkheid om een vervalduur voor wachtwoorden (-x) en waarschuwings- (-w) en blokkeerintervallen (-i) te definiëren:

passwd -x MAX_DAGEN -w WAARSCHUWING_DAGEN -i INACTIEF_DAGEN GEBRUIKERSNAAM

In het volgende voorbeeld wordt gedefinieerd dat de gebruiker peter24 zijn wachtwoord iedere 30 dagen moet veranderen. Hij ontvangt vijf dagen voordat de termijn verstrijkt een waarschuwing. Als het wachtwoord na 30 dagen niet wordt gewijzigd, vervalt het wachtwoord en wordt het gebruikersaccount peter24 na drie dagen geblokkeerd.

passwd -x 30 -w 5 -i 3 peter24

Uitgebreide gebruikersgegevens wijzigen

Met het opdrachtregelcommando chfn (kort voor change finger) kun je de uitgebreide gegevens van een gebruikersaccount zoals de echte naam, het kantoornummer en de privételefoonnummers en zakelijke telefoonnummers wijzigen.

De algemene syntax van chfn luidt:

chfn [OPTIE “NIEUWE WAARDE”] [GEBRUIKERSNAAM]

Het commando moet worden uitgevoerd met rootrechten.

Welke gebruikersgegevens worden vervangen door een nieuwe waarde, bepaal je met de opties –f (echte naam), –r (kantoornummer), –w (zakelijk nummer) en –h (privénummer).

In het volgende voorbeeld wordt het oude kantoornummer van peter23 overschreven met de nieuwe waarde 122.

chfn -r “122” peter23

Standaard shell wijzigen

Het opdrachtregelcommando chsh (kort voor change shell) wijzigt de inlogshell van een geselecteerde gebruiker.

Gebruik bij de invoer het volgende schema:

chsh [OPTIES] [GEBRUIKERSNAAM]

Om de inlogshell van een gebruiker te wijzigen, wordt chsh met de optie –s gebruikt. Deze wordt aangevuld met het pad naar de gewenste shell (bijvoorbeeld /usr/bin/fish).

Let op: gebruikers zonder rootrechten mogen alleen hun eigen shell wijzigen. Als je de shell van andere gebruikers wilt wijzigen, moet het commando worden uitgevoerd met rootrechten.

Voorbeeld:
sudo chsh -s /usr/bin/fish peter23

Voor de gebruiker peter23 wordt de shell fish (friendly interactive shell) als standaard ingesteld.

De verandering van shell treedt pas in werking als de gebruiker zich af- en weer aanmeldt.

Programma’s uitvoeren met rechten van andere gebruikers

Het commando sudo (substitute user do) kan vooraf worden gegaan door programma-aanvragen, om deze uit te voeren met de rechten van een andere gebruiker. In de regel moet daarvoor een wachtwoord worden ingevoerd. Het commando sudo vraagt daarbij altijd naar het wachtwoord van de aanvragende gebruiker.

Als het commando zonder gebruikersnaam wordt ingevoerd, wordt de superuser root gebruikt als doelgebruiker.

sudo PROGRAMMA-AANVRAAG

Administrators hebben de mogelijkheid om in het bestand /etc/sudoers te definiëren wie sudo mag gebruiken en welke programma-aanvragen toegestaan zijn. Een gebruiker moet bij de groep sudo horen om het commando sudo te kunnen gebruiken.

Als je een andere doelgebruiker wilt selecteren, gebruik je sudo met de optie –u en de gewenste gebruikersnaam.

sudo -u GEBRUIKERSNAAM PROGRAMMA-AANVRAAG

Een dergelijke verandering van gebruiker is alleen mogelijk als dit conform /etc/sudoers toegestaan is.

Als je langdurig naar de rootshell wilt gaan om commando’s uit te voeren met administratorrechten, gebruik je sudo met de optie –i.

sudo –i

Het commando sudo is nuttig omdat het gebruikers de mogelijkheid geeft om vooraf vastgelegde commando’s uit te voeren als rootgebruiker, zonder dat het rootwachtwoord hoeft te worden gedeeld.

Met rechten van andere gebruikers werken

Ook met het commando su is een tijdelijke verandering van gebruiker mogelijk om programma-aanvragen uit te voeren met de rechten van een doelgebruiker. Anders dan bij sudo worden commando’s daarom niet direct uitgevoerd. In plaats daarvan wordt er een verandering van identiteit tot stand gebracht. Daarnaast vraagt su niet het wachtwoord van de aanvragende gebruiker, maar dat van de doelgebruiker. Om programma’s te kunnen openen als superuser heeft een gebruiker dus het rootwachtwoord van het systeem nodig. Daarnaast kan su in tegenstelling tot sudo niet worden beperkt tot een set programma-aanvragen die door de administrator vooraf zijn gedefinieerd.

De algemene syntax van het commando luidt:

su [OPTIES] [GEBRUIKERSNAAM]

Een commando zonder GEBRUIKERSNAAM selecteert root als doelgebruiker.