# Gebruikersbeheer

Mappen & Bestanden

  • /
    • etc/
      • group
      • passwd
      • shadow
      • sudoers

Opmerking

Op Unix-like besturingssystemen worden wachtwoorden uit veiligheidsoverwegingen niet getoond, ook niet met asterisken.

Het lijkt dus alsof er niets gebeurt wanneer je een wachtwoord intikt.

Opgelet

Een backspace wordt op zich ook als een ingevoerd teken beschouwd.

De ⟵ Backspace wist dus geen tekens, zodat je volledig opnieuw moet proberen als je een fout in het wachtwoord typt.

# Groepen

Gebruikers behoren minstens tot 1 groep. Nieuwe gebruikers behoren standaard al tot een groep met dezelfde naam als hun gebruikersnaam.

In het bestand /etc/group staan alle groepen per regel en hun leden. De leden van een groep worden gescheiden door een komma (,).

$ cat /etc/group
GID Betekenis
0 Groep van de rootgroep.
1 tot en met 99 Voorgedefinieerde groepen.
100 tot en met 999 Gereserveerd voor systeem- en beheerdersgroepen.
1000 en volgende Gereserveerd voor gebruikersgroepen.

1000 is de groep die tijdens de installatie van het besturingssysteem aangemaakt werd. Bij het maken van nieuwe groepen wordt er telkens het volgend vrije nummer gebruikt.

# Toevoegen

Met de opdracht addgroup (Eng. add group; Ned. groep toevoegen) voeg je een nieuwe groep toe aan het systeem. De groep krijgt automatisch een GID.

  • addgroup «groepsnaam»
    Voegt een nieuwe groep met de naam «groepsnaam» toe aan het systeem. De gr

Voorbeeld:

$ sudo add group mijngroep
Adding group `mijngroep' (GID 1001) ...
Done.
$ cat /etc/group | grep mijngroep
mijngroep:x:1001:
$ _

# Verwijderen

Met de opdracht delgroup (Eng. delete group; Ned. groep verwijderen) verwijder je een bestaande groep van het systeem.

  • delgroup «groepsnaam»
    Verwijdert de bestaande groep met de naam «groepsnaam».

Voorbeeld:

$ sudo delgroup mijngroep
Removing group `mijngroep' ...
Done.
$ cat /etc/group | grep mijngroep
$ sudo delgroup mijngroep
The group `mijngroep' does not exist.
$ _

# Gebruikers

UID Betekenis
0 De rootgebruiker.
1 tot en met 99 Voorgedefinieerde gebruikers.
100 tot en met 999 Gereserveerd voor systeemgebruikers en beheerders.
1000 en volgende Gereserveerd voor gebruikers.

1000 is de gebruiker die tijdens de installatie van het besturingssysteem aangemaakt werd. Bij het maken van nieuwe gebruikers wordt er telkens het volgend vrije nummer gebruikt.

# Tonen

# Huidige gebruiker

De naam van de huidige gebruiker staat in de variabele $USER.

$ echo $USER
pi
$ _

Met de opdracht id (Eng. identifier; Ned. identificeermiddel) kan je in meer detail zien wie de huidige gebruiker is.

  • id
  • id «gebruikersnaam»
  • id -«optie(s)» «gebruikersnaam»
    • u (Eng. user; Ned. gebruiker)
      id --user «gebruikersnaam»
      Toont enkel de UID van de huidige gebruiker.
    • g (Eng. group; Ned. groep)
      id --group «gebruikersnaam»
      Toont enkel de GUI van de groep waartoe de gebruiker behoort.
    • n (Eng. name; Ned. naam)
    • id --name «gebruikersnaam» Toont de naam in plaats van de ID.

Voorbeelden:

$ id --help
$ id
$ id --user --name
$ id -un
$ id --group --name
$ id -gn
$ id root
$ id pi

# Aangemelde gebruikers

Met de opdracht who (Eng. who am I?; Ned. wie ben ik?) kan je zie wie de aangemelde gebruikers zijn.

Voorbeelden:

$ who --help
$ who

# Toevoegen

Met de opdracht adduser (Eng. add user; Ned. gebruiker toevoegen) voeg je een nieuwe gebruiker (en zo nodig ook een nieuwe groep) toe aan het systeem. De gebruiker krijgt automatisch een UID en een thuismap.

  • adduser «naam»
    Voegt een nieuwe gebruiker en groep toe aan het systeem.
  • adduser «gebruikersnaam» «groepsnaam»
    Voegt een bestaande gebruiker «gebruikersnaam» toe aan een bestaande groep «groepsnaam».

Voorbeeld 1:

$ adduser --help

Voorbeeld 2:

$ sudo adduser mijngebruiker
Adding user `mijngebruiker' (1001) ...
Adding new group `mijngebruiker' (1001) ...
Adding user `mijngebruiker' (1001) with group `mijngebruiker' ...
Creating home directory `/home/mijngebruiker' ...
Copying files form `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for mijngebruiker
Enter the new value, or press ENTER for the default
        Full Name []: Mijn Gebruiker
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the informatie correct? [Y/n] y
$ _

Na het ingeven van het wachtwoord en de bevestiging, worden er nog een aantal (optionele) persoonlijke gegevens van de nieuwe gebruiker gevraagd.

In het tekstbestand /etc/passwd wordt vervolgens een nieuwe gebruiker toegevoegd.

$ sudo cat /etc/passwd

Het formaat van de toevoeging – met dubbelepunt (:) als scheidingsteken – is:

  1. Gebruikersnaam.
  2. Wachtwoord.
    De x geeft aan dat het wachtwoord in het bestand /etc/shadow gehasht is.
  3. UID van de gebruiker.
  4. GID van de primaire groep.
    Als er een nieuwe groep gemaakt wordt voor de gebruiker dan heeft de groep hetzelfde nummer als de UID. De groepen worden opgeslagen in het bestand /etc/group.
  5. Gebruikersinformatie. De informatie wordt gescheiden met een komma (,).
  6. Pad van de thuismap.
    Deze map werd automatisch aangemaakt bij het toevoegen van de gebruiker.
  7. Pad van de shell voor de gebruiker.
    Standaard is dit /bin/bash.

Voorbeeld 3:

$ sudo adduser mijngebruiker sudo
Adding user `mijngebruiker' to group `sudo'
Done.

# Verwijderen

Met de opdracht deluser (Eng. delete user; Ned. gebruiker verwijderen) verwijder je een bestaande gebruiker van het systeem of uit een groep.

Opmerking

De thuismap wordt niet automatisch meeverwijderd.

  • deluser «gebruikersnaam»
    Verwijdert de bestaande gebruiker met de naam «gebruikersnaam».
  • deluser «gebruikersnaam» «groepsnaam»
    Verwijdert een bestaande gebruiker «gebruikersnaam» uit een bestaande groep «groepsnaam».

# Wisselen

Met de opdracht su (Eng. substitute user; Ned. verwissel gebruiker) kan je van gebruiker wisselen.

  • su
    Zonder «user-id» verwissel je met de superuser, die heeft als naam root.

    opmerking

    Op Raspbian en Ubuntu lukt dit niet omdat root geen wachtwoord heeft, uit veiligheidsoverweging.

  • su «user-id»
    Verwissel de gebruiker met «user-id».

Tip

Met de opdracht exit verlaat je de huidige gebruiker.

Voorbeelden:

$ su --help
$ su
$ su pi
$ exit
$ _

Tip

Gebruiker Wachtwoord
pi raspberry

# Opdracht als gebruiker

Met de opdracht sudo (Eng. superuser do; Ned. superuser doe) kan je een opdracht uitvoeren met de identiteit van een andere gebruiker.

  • sudo «opdracht»
    Voer opdracht uit als superuser.
  • sudo --user «user-id» «opdracht»
    sudo -u «user-id» «opdracht»
    Voer opdracht uit als een andere gebruiker.
  • sudo --login
    sudo -i
    Vergelijkbaar met su

Voorbeeld:

$ sudo --help

Opmerking

Om sudo te kunnen gebruiken moet de uitvoerende gebruiker aan de sudoers-lijst toegevoegd zijn.

De sudoers-lijst staat in het bestand /etc/sudoers. Je voegt een gebruiker toe via de opdracht visudo (vi sudo) die vernoemd is naar de teksteditor vi. De lijst wordt geopend in de standaardteksteditor van het systeem. Meestal is de standaardteksteditor nano.

$ sudo visudo

Opmerking

De standaardinstellingen in Raspbian zijn zo dat de rootgebruiker en elke gebruiker die lid is van de groep sudo de opdracht sudo mogen uitvoeren.

$ id | grep sudo

# Wachtwoorden

De hashcodes (Ned. klutscodes) van de wachtwoorden worden opgeslagen in het bestand /etc/shadow.

$ sudo cat /etc/shadow | grep pi

Een hashcode is een vingerafdruk van een wachtwoord. Om de geldigheid van een wachtwoord te controleren gaat men de hashcode opnieuw berekenen en vergelijken met de opgeslagen hashcode.

Het is in principe onmogelijk is om op basis van de hashcode het wachtwoord te ontcijferen, omdat hashing maar in één richting werkt. Het bevat te weinig informatie om oorspronkelijke input terug te rekenen. In theorie en in de praktijk is het mogelijk om het wachtwoord via brute kracht (Eng. brute force) te achterhalen door de hashcodes voor alle mogelijke tekencombinaties gaan berekenen. Dit vergt heel veel middelen (tijd, rekenkracht en geld) maar is door cloud computing en botnets[1] toch realistisch geworden. Hackers gebruiken hiervoor ook regenboogtabellen.

Regenboogtabel

Een regenboogtabel (Eng. rainbow table) is een databasetabel van heel veel hashcodes die op voorhand berekend werden, samen met de oorspronkelijke tekencombinatie die als input gebruikt werd.

Je kan voorberekende regenboogtabellen downloaden (opens new window).

Een salt gebruiken is een manier om (bestaande) regenboogtabellen gebruiken lastiger te maken.

Salt

Een salt is een unieke tekenreeks die gebruikt wordt om de hashing te zouten (Eng. to salt), zodat de hashcodes uniek zijn voor dat bepaalde salt.

Een salt maakt het voor hackers heel wat moeilijker omdat ze geen bestaande regenboogtabellen kunnen gebruiken, maar een specifieke regenboogtabel moeten opstellen voor dat bepaalde salt. Bovendien moeten ze niet enkel de hashcodes bemachtigen en weten welk hashingalgoritme er gebruikt werd, maar ook weten wat het gebruikte salt is.

# Wijzigen

Met de opdracht passwd (Eng. password; Ned. wachtwoord) wijzig je het wachtwoord van een gebruiker.

Opmerking

Om het wachtwoord van andere gebruikers te veranderen moet je sudo gebruiken.

  • passwd
    Wijzigt het wachtwoord van de huidige gebruiker.
  • sudo passwd
    Wijzigt het wachtwoord van de rootgebruiker.
  • passwd «gebruikersnaam»
    Wijzigt het wachtwoord van een gebruiker met naam «gebruikersnaam».

Voorbeeld:

$ passwd --help

# Verwijderen

  • passwd --delete «gebruikersnaam» (Eng. delete; Ned. verwijderen)
    passwd -d «gebruikersnaam»
    Verwijdert het wachtwoord van een gebruiker met naam «gebruikersnaam».

Voorbeeld:

$ sudo passwd -d mijngebruiker
passwd: password expiry information changed.
$ _

  1. Een botnet is een zwerm gehackte computers die vanop afstand door criminelen gebruikt worden. ↩︎

© 2024 Arteveldehogeschool Laatst bijgewerkt: 14/2/2020, 11:07:52