Ga naar hoofdinhoud

Linux – Gebruikers, groepen & rechten

In dit labo beheer je gebruikers en groepen op een Linux-systeem en stel je bestandsrechten in.

Leerstof
Werken in de oefenterminal

Elke oefening speelt zich af in een terminal op deze pagina, die werkt als een echte Linux-terminal: pijltjestoetsen voor je vorige commando's, tab om namen aan te vullen, clear om het scherm leeg te maken.

Je werkt stap voor stap. Boven de terminal staat telkens één opgave. Zodra die klopt, verschijnt de volgende.

Fout typen mag. Een commando dat niet bij de stap hoort wordt niet uitgevoerd, maar je krijgt wel uitleg over wat er misgaat: waarom een systeemcommando sudo nodig heeft, waarom usermod -G gevaarlijker is dan -aG, of waarom een map het uitvoerrecht nodig heeft.

Je bent hier beheerder. In deze terminal zit je gebruiker in de groep sudo, dus je mag echt gebruikers en groepen aanmaken. Er kan niets stukgaan: het systeem bestaat enkel in je browser.

Een vergissing rechtzetten kan altijd. Heb je een naam vertypt of iets op de verkeerde plaats gezet, dan mag je dat met rm, rmdir of mv opruimen of hernoemen, ook als dat commando niet bij de huidige stap hoort. Alleen wat de oefening zelf klaarzette blijft staan, zodat je jezelf niet kunt vastzetten. Typ je een naam verkeerd, dan wordt het bestand trouwens niet eens aangemaakt: je krijgt eerst te horen welke naam de opgave vraagt.

Loop je vast, vraag dan een hint of spring via de knop naar de theorie. Met Opnieuw beginnen zet je een oefening terug naar de starttoestand. Je voortgang blijft bewaard in je browser, dus je mag de pagina sluiten en later verdergaan.


Oefening 1 – Wie ben jij?​

Voor je gebruikers gaat beheren, kijk je eerst wie je zelf bent. Je zoekt je eigen regel op in /etc/passwd en ontdekt waarom je überhaupt sudo mag gebruiken.

Oefening 1 – Wie ben jij?Stap 1 van 4

Voor je gebruikers gaat beheren, kijk je eerst wie je zelf bent en in welke groepen je zit. Elke gebruiker heeft een naam, een nummer (UID) en een of meer groepen.

Toon je huidige gebruikersnaam.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Oefening 2 – Gebruikers aanmaken​

Je maakt een gebruiker aan, geeft die een wachtwoord en werkt even in zijn naam. Let op het verschil tussen useradd en adduser, en op wat dat streepje in su - precies doet.

Oefening 2 – Gebruikers aanmakenStap 1 van 7

Je maakt een nieuwe gebruiker aan, geeft die een wachtwoord en werkt even in zijn naam. Alles wat het systeem wijzigt vraagt beheerdersrechten.

Maak een nieuwe gebruiker arthur aan, inclusief zijn home directory.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Oefening 3 – De Geheime Gilde​

Je wordt systeembeheerder van de Geheime Gilde. Met groepen regel je rechten voor een hele ploeg tegelijk in plaats van per persoon. De valkuil zit in één letter: vergeet de a in -aG en je wist alle andere groepen van die gebruiker.

Oefening 3 – De Geheime GildeStap 1 van 10

Je wordt systeembeheerder van de Geheime Gilde. Groepen laten je rechten regelen voor een hele ploeg tegelijk, in plaats van per gebruiker.

Maak een groep ridders aan.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Oefening 4 – Bestandsrechten lezen​

Elk bestand heeft rechten voor drie partijen: de eigenaar, de groep en alle overige gebruikers. Voor je iets aanpast, moet je een rechtenstring als -rw-r--r-- kunnen lezen. Kijk vooral naar het verschil tussen een bestand en een map.

Oefening 4 – Bestandsrechten lezenStap 1 van 4

Elk bestand heeft rechten voor drie partijen: de eigenaar, de groep en alle overige gebruikers. Voor je rechten aanpast, moet je ze kunnen lezen.

Maak een bestand geheim.txt met de tekst "Vertrouwelijk" erin.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Oefening 5 – Rechten aanpassen​

Rechten instellen kan symbolisch (u+x, go-rwx) of octaal (600, 755). Je oefent allebei op hetzelfde bestand, zodat je ziet dat ze naar dezelfde rechtenstring leiden.

Oefening 5 – Rechten aanpassenStap 1 van 9

Rechten aanpassen kan op twee manieren: symbolisch (u+x, go-rwx) en octaal (600, 755). Je oefent allebei op het bestand geheim.txt, dat al klaarstaat.

Toon eerst de huidige rechten van geheim.txt.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Oefening 6 – Eigendom aanpassen​

Rechten zeggen wát er mag, eigendom zegt vóór wie. Je maakt een gedeelde map voor de ridders en zorgt dat enkel zij erbij kunnen. Dit is het recept voor elke gedeelde projectmap.

Oefening 6 – Eigendom aanpassenStap 1 van 6

Rechten zeggen wát er mag, eigendom zegt vóór wie. Je maakt een gedeelde map voor de ridders en regelt wie eraan kan.

Maak een map gilde_data aan.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.

Uitdaging – Avengers Tower, op een echte machine​

Tot hier oefende je in de terminal op deze pagina. Voor deze uitdaging stap je over naar een echte Linux-machine: je persoonlijke container op de schoolserver.

Verbind eerst met je container

Op de schoolserver draait een Linux-container die alleen van jou is. Hoe je je gegevens opvraagt, hoe je verbinding maakt en wat je doet als dat niet lukt, staat stap voor stap uitgelegd in de cursus op Digitap. Doorloop die handleiding eerst en kom hier terug zodra je je eigen prompt ziet.

De opdracht​

Nick Fury stelt je aan als systeembeheerder van de Avengers Tower. Vier helden, drie teams, een map per team waar enkel dat team bij kan, en een briefing die iedereen mag lezen. Eén held zit in twee teams, en daar zit de valkuil.

Er staan geen commando's meer bij. Alles wat je nodig hebt, heb je in de zes oefeningen hierboven gezien.

  1. Maak de vier helden aan als gebruikers, elk met een thuismap: tony, peter, stephen en natasha.
  2. Maak de drie teams aan als groepen: tech, magic en combat.
  3. Deel de helden in: tony en peter in tech, stephen in magic, natasha en peter in combat. Let op: peter zit in twee teams, dus voeg toe in plaats van te vervangen.
  4. Maak de mappen /avengers/tech, /avengers/magic en /avengers/combat aan.
  5. Geef elke teammap de bijhorende groep als groepseigenaar.
  6. Zet de rechten van de drie teammappen op 770.
  7. Maak het bestand /avengers/mission_briefing.txt aan en zet de rechten op 644: iedereen mag lezen, enkel de eigenaar mag schrijven.
  8. Controleer je opzet met één lange lijst van /avengers, en met id peter.

Bewijs dat het werkt​

Dit is het stuk dat je in de oefenterminal niet kon doen: je gaat nu zelf in de huid van een held zitten en test of je rechten kloppen.

  1. Word stephen: sudo su - stephen.
  2. Probeer in zijn teammap te gaan: cd /avengers/magic. Dat hoort te lukken.
  3. Probeer nu in de map van een ander team te gaan: cd /avengers/tech. Dat hoort niet te lukken.
  4. Lees de briefing: cat /avengers/mission_briefing.txt. Ook dat hoort te lukken, want 644 laat iedereen lezen.
  5. Ga terug naar je eigen gebruiker met exit, en herhaal de test met peter. Hij zit in twee teams, dus bij hem horen magic de enige verboden map te zijn.

Klopt alles? Dan heb je een werkende opzet gebouwd zoals een beheerder dat doet: gebruikers, groepen, gedeelde mappen en rechten die elkaar aanvullen.

Dit is geen simulator

Er is hier geen knop Opnieuw beginnen. Een commando doet wat je typt, ook rm -rf. Denk twee keer na voor je iets verwijdert, en gebruik ls om te controleren waar je staat voor je een pad meegeeft.

Wil je opnieuw beginnen, dan ruim je zelf op:

sudo rm -r /avengers
sudo userdel -r tony # idem voor peter, stephen en natasha
sudo groupdel tech # idem voor magic en combat
Geraak je niet verbonden?

Los dat zeker op voor het volgende contactmoment, want vanaf hier werken we vaker in de container. Kan je vandaag echt niet verbinden, maak de uitdaging dan in de oefenterminal hieronder, en doe ze daarna nog eens over in je container zodra de verbinding werkt.

Uitdaging – Avengers TowerStap 1 van 8

Nick Fury stelt je aan als systeembeheerder van de Avengers Tower. Richt het systeem in: vier helden, drie teams en een map per team waar enkel dat team bij kan. Vanaf hier krijg je nauwelijks nog hints.

Maak de vier helden aan als gebruikers, elk met home directory: tony, peter, stephen en natasha.

student@ap-linux:~$
Pijltjes omhoog en omlaag halen vorige commando’s terug, tab vult namen aan. Rondkijken met ls, pwd of cat mag altijd.