Beheren van users en groups in linux (deel 1)

Linux is een Operating System (OS) dat geheel multi-user is. Dat wil zeggen dat er meerdere users gelijktijdig van het systeem gebruik kunnen maken. Die users hebben een eigen account met een eigen “home” directory. Daarnaast kunnen users ook aparte rechten hebben.

Om het beheer van deze useraccounts te vergemakkelijken worden deze users ingedeeld in groups. Deze groups kunnen ook weer aparte rechten hebben.

Voorbeeld:
bij een bedrijf werken een drietal programmeurs die zo nu en dan graag gebruik willen maken van specifieke linux tools. Op de linux server hebben deze allemaal een eigen account. Om de rechten voor deze programmeurs allemaal goed te zetten zou je dat per user account kunnen instellen. Handiger is natuurlijk om dat eenmalig voor de group “developers” te doen. Hiervoor moeten de useraccounts van deze programmeurs wel aan die group toegekend zijn. Als er dan wat veranderd in de rechten, hoef je dat ook maar op 1 plek te veranderen i.p.v. voor alle useraccounts van deze programmeurs.

Voor het beheer van de users en groups zijn een aantal tools beschikbaar. In deel 1 van deze blogpost bespreek ik het aanmaken, aanpassen en verwijderen van users.

Voor het beheren van users zijn een drietal functies van belang, deze zullen we een voor een bekijken.

Toevoegen

Met useradd is het mogelijk om users toe te voegen. In dit voorbeeld gaan we uit van de user test_user.

sudo useradd test_user

Home directory
Er is nu een user aangemaakt genaamd test_user. Deze user heeft standaard een home directory in /home met als naam de user zelf. In dit geval dus /home/test_user.

Er zijn een aantal mogelijkheden om hier bij het toevoegen van een gebruiker wijzigingen in door te voeren. Hieronder de belangrijkste parameters op een rij:

parameteromschrijving
-Mmaak geen home directory aan
-d PADgeef een eigen pad op voor de home directory. Vervang PAD hier door bijv. /home/andere_dir/
-b PADstandaard worden de home directories in /home gemaakt. Hiermee kan dat aangepast worden. Vervang PAD hier door bijv. /data/users/

In het volgende voorbeeld maken we een gebruiker zonder home directory aan:

sudo useradd -M test_user

Wachtwoord
Wanneer een user toegevoegd wordt, heeft deze standaard geen wachtwoord. Dit is natuurlijk niet wenselijk, daarom voegen we aan deze user een wachtwoord toe met het volgende commando:

sudo passwd test_user

Nu wordt er tweemaal om een wachtwoord gevraagd, als je deze tweemaal identiek invoert krijg je de volgende melding:

passwd: password updated successfully

Shell toegang
Eerder heb ik al geschreven hoe je een user de shell toegang kan afnemen maar dat is ook gelijk in te stellen bij het aanmaken van de user:

sudo useradd -s /bin/false test_user

Voor meer informatie over useradd, zie manpage useradd

Verwijderen

Uiteraard is het ook mogelijk om users te verwijderen, dat gebeurt met userdel. Stel we willen de hierboven aangemaakte user test_user verwijderen, dan doen we:

sudo userdel test_user

forceren
Het verwijderen van een user geeft een foutmelding op het moment dat de user nog ingelogd is. Om de gebruiker toch direct te verwijderen kan de -f (force) parameter gebruikt worden:

sudo userdel -f test_user

verwijderen home directory
Ook het verwijderen van de home directory kan userdel voor zijn rekening nemen, hiervoor is de -r parameter. Deze verwijderd de bestanden in de home directory en vervolgens de home directory zelf.

sudo userdel -r test_user

Voor meer informatie over userdel, zie manpage userdel

Aanpassen

Het is ook mogelijk om user gegevens na het aanmaken nog aan te passen. Dat gaat met de tool usermod, hiermee kan alles wat je bij het aanmaken van de user kan bepalen ook achteraf nog gewijzigd worden. Hieronder een overzicht van de parameters en de omschrijving daarvan.

parameteromschrijving
-d PADpas de home directory aan naar het nieuwe PAD. De huidige bestanden worden niet verplaatst! Kijk daarvoor naar "-m"
-e YYYY-MM-DDgeef een datum op wanneer het useraccount verloopt
-l NAAMhernoem de user naar de nieuwe NAAM
-m in combinatie met -d kunnen ook de bestanden direct worden verplaatst naar de nieuwe home directory
-spas de shell van de user aan

Een voorbeeld is het wijzigen van de home directory van de user test_user naar /data/user/test_user en hierbij willen we ook gelijk de inhoud meenemen:

sudo usermod -d /data/user/test_user -m test_user

Voor meer informatie over usermod, zie manpage usermod

sudo voor user

Een nieuw aangemaakte user heeft standaard geen recht om gebruik te maken van sudo. Dit is over het algemeen prima, alleen soms wil je de nieuwe user wel dat recht geven. Dit wordt bijgehouden in de file /etc/sudoers.

Om een de user test_user sudo rechten te geven voer je het volgende uit:

sudo echo 'test_user ALL=(ALL) ALL' >> /etc/sudoers

Vervang hierbij test_user door de naam van de gemaakte user.

Overzicht

De users worden in linux in plain text opgeslagen in /etc/passwd. Hierdoor kun je eenvoudig zien welke users op het systeem aanwezig zijn:

cat /etc/passwd

of als je wilt controleren of een specifieke user (in dit geval test_user) bestaat:

cat /etc/passwd|grep test_user

Nu bezit je alle basisinformatie voor het aanmaken, wijzigen en verwijderen van users. De volgende blogpost zal over de bijbehorende groups gaan!

Gerelateerde informatie

Leave a Reply

Your email address will not be published. Required fields are marked *