Gebruikers en Groepen
Een gebruiker in een besturingssysteem zoals Linux is een identiteit die toegang heeft tot het systeem. Elke gebruiker heeft zijn eigen account, bestanden, instellingen en rechten. Zo kunnen gebruikers elkaars bestanden niet zomaar bekijken of aanpassen.
Linux is van nature een multi-user OS, wat betekent dat meerdere gebruikers tegelijk op hetzelfde systeem kunnen werken — fysiek of via een netwerk.
Types gebruikers
Normale gebruikers: Voor dagelijks gebruik. Beperkte rechten.
Root (beheerder): Superuser met alle rechten. Mag alles op het systeem.
System users: Een speciale gebruiker die niet bedoeld is voor echte mensen, maar voor programma’s of diensten die op je computer draaien.
Gebruikersbeheer
Elke gebruiker in Linux heeft een unieke gebruikersnaam en een bijhorende UID (user ID). Wanneer je een nieuwe gebruiker aanmaakt, worden zijn of haar gegevens verdeeld over een paar bestanden in /etc
.
/etc/passwd
– bevat info over gebruikers (naam, UID, shell, etc.)
/etc/passwd
– bevat info over gebruikers (naam, UID, shell, etc.)Voor elke gebruiker wordt een regel bij aangemaakt met volgende info:
jan:x:1001:1001::/home/jan:/bin/bash
Deze lijn bevat 7 velden, gescheiden door een dubbele punt (:
).
1. gebruikersnaam
p151886
De loginnaam van de gebruiker
2. wachtwoord
x
Staat hier niet meer; het echte (versleutelde) wachtwoord zit in /etc/shadow
3. UID
3001
User ID: uniek nummer dat het systeem gebruikt om de gebruiker te identificeren
4. GID
3001
Group ID: primaire groep van de gebruiker
5. beschrijving
leeg (::
)
Extra info over de gebruiker, zoals volledige naam (kan leeg zijn)
6. homedir
/home/p151886
De thuismap van de gebruiker
7. shell
/bin/bash
De standaard shell die gebruikt wordt wanneer de gebruiker inlogt
/etc/shadow
– bevat versleutelde wachtwoorden
/etc/shadow
– bevat versleutelde wachtwoordenHet wachtwoord (versleuteld!) van een gebruiker wordt niet in /etc/passwd
bewaard, maar in /etc/shadow
.
jan:$6$zud...hashedwachtwoord...:19439:0:99999:7:::
/etc/group
– bevat info over groepen
/etc/group
– bevat info over groepenWanneer we een gebruiker aanmaken wordt deze toevoegd aan een groep. Alle groepen in ons besturingssysteem worden getoond in /etc/group
, waarin elke regel één groep bevat:
groepsnaam:x:GID:leden
Belangrijke commando's
Gebruiker aanmaken (adduser
, useradd
)
adduser
, useradd
)Maakt een nieuwe gebruiker aan.
adduser
is gebruiksvriendelijker en stelt ook een wachtwoord en home folder in.
sudo adduser jan
Voor scripts gebruik je eerder useradd
, maar dan wordt niet alles standaard voor je ingesteld en moet je zelf extra opties opgeven om bijvoorbeeld een home folder aan te maken.
sudo useradd -m -s /bin/bash jan
De -m
optie maakt een home directory aan, en -s
stelt de standaard shell in.
Gebruiker verwijderen (userdel
)
userdel
)Verwijdert een gebruiker van het systeem.
sudo userdel jan
Wil je ook de home directory en bestanden verwijderen, gebruik dan de -r
optie:
sudo userdel -r jan
Wachtwoord instellen of wijzigen (passwd
)
passwd
)Stelt een wachtwoord in voor een gebruiker.
sudo passwd jan
De gebruiker wordt dan gevraagd om tweemaal een nieuw wachtwoord in te geven.
Gebruiker aanpassen (usermod
)
usermod
)Wijzigt eigenschappen van een bestaande gebruiker. Bijvoorbeeld: extra groep toevoegen.
sudo usermod -aG sudo jan
De -aG
optie voegt de gebruiker toe aan een groep, zonder bestaande groepen te overschrijven.
Huidige gebruiker tonen (whoami
)
whoami
)Toont onder welke gebruikersnaam je momenteel bent ingelogd.
whoami
Handig om snel te checken of je root bent of niet.
Informatie over een gebruiker (id
)
id
)Toont UID, GID en groepen van een gebruiker.
id jan
Geeft bijvoorbeeld:
uid=1001(jan) gid=1001(jan) groepen=1001(jan),27(sudo)
Groepsbeheer
Groepen worden gebruikt om gebruikers rechten te geven over bestanden of toegang tot bepaalde functies. Elke gebruiker heeft een primaire groep en kan lid zijn van secundaire groepen.
De primaire groep is de standaardgroep waartoe een gebruiker behoort.
Elk bestand dat je als gebruiker aanmaakt, wordt automatisch aan deze groep toegekend.
Deze groep wordt vermeld in
/etc/passwd
(vierde veld - GID).Vaak heeft elke gebruiker een eigen groep met dezelfde naam als de gebruikersnaam.
Een secundaire groep is een extra groep waartoe een gebruiker behoort, naast de primaire groep.
Hierdoor kan de gebruiker ook rechten krijgen op bestanden of opdrachten die aan die groep gekoppeld zijn.
Worden vermeld in
/etc/group
, als lid van een groep.
Praktisch voorbeeld
Stel:
sara
heeft als primaire groepsara
sara
is ook lid van de groepprojectgroep
Wat gebeurt er?
Als sara een bestand maakt, is de groep-eigenaar standaard
sara
.Als de map
/srv/project
eigendom is van groepprojectgroep
, dan kansara
daar ook aan werken omdat ze secundair lid is van die groep.
Belangrijke commando's
Groep aanmaken (groupadd
)
groupadd
)Maakt een nieuwe groep aan.
sudo groupadd ontwikkelaars
Groep verwijderen (groupdel
)
groupdel
)Verwijdert een groep.
sudo groupdel ontwikkelaars
Groep aanpassen (groupmod
)
groupmod
)Wijzigt een groepsnaam of GID.
sudo groupmod -n devs ontwikkelaars
Hier wordt de groep ontwikkelaars
hernoemd naar devs
.
Groepen van gebruiker tonen (groups
)
groups
)Toont de groepen waarvan een gebruiker lid is.
groups jan
Geeft bijvoorbeeld:
jan : jan sudo docker
Commando’s uitvoeren als een andere gebruiker
Wanneer je in Linux aan het werken bent zal je ongetwijfeld wel eens een commando moeten uitvoeren als een andere gebruiker.
Wissel van gebruiker (su
)
su
)Gebruik su
als je volledig wilt overschakelen naar een andere gebruiker, inclusief omgeving (zoals de shell en home folder).
su
Of wissel naar een specifieke gebruiker:
su jan
Hiervoor heb je het wachtwoord van die gebruiker nodig.
Commando uitvoeren als administrator (sudo
)
sudo
)Gebruik sudo
als je tijdelijk een commando wilt uitvoeren met rootrechten of namens een andere gebruiker.
sudo apt update
Je voert dit commando uit alsof je de root
-gebruiker bent, maar je blijft ingelogd als jezelf en geeft je eigen wachtwoord op.
⚠️ Alleen gebruikers die in de sudo groep zitten mogen sudo gebruiken.
Commando uitvoeren als een andere gebruiker (sudo -u
)
sudo -u
)Voer een commando uit als een andere gebruiker.
sudo -u jan ls /home/jan
Je voert ls /home/jan
uit alsof je gebruiker jan
bent.
Last updated