You are on page 1of 51

Introductie tot Linux

Bart Blanckaert, Geert De Maere, Johan Camp, Nele Custers

24 oktober 2002
2

c 2002 Geert De Maere


Copyright

Toestemming is gegeven voor het kopiëren, verdelen en/of ve-


randeren van dit document onder de voorwaarden van de GNU
Free Documentation License, Versie 1.1 of enige latere versie die
wordt uitgebracht door de Free Software Foundation; zonder In-
variant Sections, Front-Cover Text noch Back-Cover Text.
Inhoudsopgave

1 Inleiding 7
1.1 Een korte geschiedenis van Linux . . . . . . . . . . . . . . . . 7
1.2 Copyright - GPL . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 De shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Distributies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Basis-concepten van Linux 15


2.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Inloggen en uitloggen . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Je wachtwoord veranderen . . . . . . . . . . . . . . . . . . . . 17
2.4 Bestanden en mappen . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Beheer van bestanden en mappen . . . . . . . . . . . . . . . . 22
2.6 Het systeem afsluiten . . . . . . . . . . . . . . . . . . . . . . . 27

3 De window manager KDE 3 29

4 Gebruikers, groepen en toegangsrechten 33


4.1 Gebruikers in Linux . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Gebruikersbeheer . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Groepen in Linux . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Toegangsrechten . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Processen en procesbeheer 45
5.1 Processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Voorgrond en achtergrond processen . . . . . . . . . . . . . . 46
5.3 Processen in de achtergrond zetten en stoppen . . . . . . . . 46

6 Syntax van de gebruikte commando’s 49

3
4 INHOUDSOPGAVE
Lijst van figuren

1.1 KDE 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Blackbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Gnome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 IceWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1 KDE passwd programma . . . . . . . . . . . . . . . . . . . . 18


2.2 Deel van de mappen-structuur van een Linux systeem . . . . 19
2.3 Konquerer: bestanden en mappen in je home directory . . . . 21
2.4 Konquerer: navigatie en informatie . . . . . . . . . . . . . . . 22

3.1 KDE 3: een window manager van formaat . . . . . . . . . . . 30

4.1 Dialoogvenster voor paswoord systeembeheerder . . . . . . . 37


4.2 Het grafische programma voor gebruikersbeheer . . . . . . . . 38
4.3 Een gebruiker toevoegen . . . . . . . . . . . . . . . . . . . . . 38

5
6 LIJST VAN FIGUREN
Hoofdstuk 1

Inleiding

1.1 Een korte geschiedenis van Linux

UNIX was lange tijd het meest populaire besturingssysteem over de hele
wereld. Het is oorspronkelijk ontwikkeld door AT&T als een multitasking1
systeem voor minicomputers en grote mainframes in 1970.
Er bestaan veel verschillende versies van UNIX, geschikt voor personal com-
puters tot supercomputers zoals de Cray Y-MP. De meeste versies zijn
echter zeer duur: een UNIX System V versie voor een i3862 computer kostte
ongeveer 1600 Euro.
Linus Torvalds studeerde in 1990 aan de Universiteit van Helsinki. Om de
theoretische kennis van besturingssystemen om te zetten in de praktijk on-
twikkelde prof. Tanenbaum de UNIX-variant MINIX. MINIX was echter een
vrij beperkt besturingssysteem en was ontworpen met het doel een duidelijk
gestructureerd systeem voor te leggen aan studenten, niet om echt als uitge-
breid besturingssysteem in het dagelijks leven gebruikt te worden. Daarom
besloot Linus om als hobby zelf een besturingssysteem te schrijven.
Het besturingssysteem moest een vrij beschikbare versie worden van UNIX
(zie ook 1.2). Versie 0.02 werd door Linus op de comp.os.minix nieuwsgroep
gepost, samen met de uitnodiging voor iedereen om aan het besturingssys-
teem mee te werken. Na 3 jaar was dan eindelijk versie 1.0 af. Uit testen
bleek dat Linux op een 486 resultaten behaalde die vergelijkbaar waren met
een gemiddeld werkstation van Sun Microsystems 3 .
1
multitasking laat een gebruiker toe om meer dan 1 taak (bijvoorbeeld een toepass-
ingsprogramma) tegelijkertijd uit te voeren
2
met i386 wordt een IBM-compatibele PC met intel 80386 processor bedoeld
3
deze werkstations waren veel duurder dan een i486 en hadden SunOS als bestur-
ingssysteem, een variant van UNIX System V

7
8 HOOFDSTUK 1. INLEIDING

Ondertussen is de laatste stabiele Linux kernel versie 2.4.19 4 . De kernel kan


gebruikt worden op personal computers, DEC alpha’s, IBM S/390 computers
enzovoort.

1.2 Copyright - GPL


Linux is uitgebracht onder de zogenaamde GNU5 General Public License,
of GPL. Een volledige uitleg over GNU en de GPL zou ons te ver leiden.
Hieronder volgen enkele voorname gevolgen van deze GPL:

• Het auteursrecht behoort tot de schrijver van de software (in tegen-


stelling tot ”public domain” software)
• Software uitgebracht onder de GPL is niet altijd gratis. De auteur
mag geld vragen voor het door hem ontwikkelde programma.
• De GPL staat toe dat iemand de software aanpast en daarna zijn eigen
versie verdeelt maar deze versie moet dan ook uitgebracht worden
onder de GPL. Dit is ongeveer wat er gebeurd met de verschillende
Linux distributies die je kan kopen op CD-ROM of DVD. Mandrake
download de Linux kernel, een aantal andere programma’s voor Linux
en zet ze samen op een DVD. Zij mogen deze DVD dan ook verkopen
maar alle software die erop staat wordt weer uitgebracht onder de GPL
(voor meer informatie over distributies zie 1.6).

1.3 Architectuur
Het Linux systeem bestaat uit 3 belangrijke verzamelingen van code:

• De kernel is verantwoordelijk voor het onderhouden van alle belangri-


jke abstracties van een besturingssysteem (welk merk en type harde
schijf, processor, geheugen, ...), inclusief dingen als het beheer van
virtueel geheugen en processen.
• De systeembibliotheken definiëren een standaard verzameling van func-
ties waarmee programma’s kunnen interageren met de kernel.
• De utilities zijn programma’s die bepaalde taken voor het beheer van
het systeem uitvoeren. Sommigen worden 1 keer uitgevoerd, andere
(bekend onder de naam daemons) worden continue uitgevoerd en be-
handelen inkomende netwerkverbindingen, log in aanvragen enzovoort.
4
zie voor up-to-date informatie http://www.kernel.org
5
voor meer informatie over GNU’s Not Unix zie http://www.gnu.org/, je kan hier ook
terecht voor informatie over de GPL
1.4. DE SHELL 9

Systeembeheer programma’s gebruikerprogramma’s


Gedeelde bibliotheken (shared libraries)
Linux kernel
Laadbare kernel-modules
We doorlopen deze structuur van beneden naar boven:
De Linux kernel heeft de mogelijkheid om bepaalde delen van de kernel
code te laden op aanvraag. Er zijn verschillende redenen waarom dit nuttig
is. Voor iemand die bezig is een device driver te schrijven is het vervelend
wanneer hij de volledige kernel opnieuw moet compileren iedere keer na-
dat hij een regeltje aan zijn device driver6 heeft veranderd. Standaard kan
je vertrekken van een minimale kernel zonder extra device drivers. Deze
worden dan eventueel geladen op het moment dat ze nodig zijn.
De kernel zelf vormt de kern van het besturingssysteem. Het zorgt voor
alle nodige functionaliteit om processen te draaien en het voorziet systeem-
diensten om processen toegang te geven tot de hardware.
De interface die het besturingssysteem aanbiedt aan programma’s wordt
echter niet door de kernel onderhouden. Programma’s gebruiken hiervoor de
systeembibliotheken, die op hun beurt gebruik maken van de functionaliteit
van de kernel. De systeembibliotheken bieden verschillende functies aan.
Op het eenvoudigste niveau laten ze gebruikerprogramma’s toe om gebruik
te maken van de hardware.
Tenslotte zijn er de gebruikerprogramma’s en systeembeheer programma’s
die gebruik maken van de systeembibliotheken om bijvoorbeeld een bestand
te openen.
Even een voorbeeldje om de samenwerking tussen de componenten te ver-
duidelijken. Wanneer een programma een bestand wil openen, gebruikt
het daarvoor een functie uit een systeembibliotheek. De systeembibliotheek
zorgt ervoor dat de aanvraag en de juiste parameters worden doorgegeven
aan de kernel. De kernel zal de aanvraag verwerken en doorspelen aan de
device driver van de harde schijf waarop het bestand zich bevindt. Tenslotte
zorgt deze device driver (een laadbare kernel-module) ervoor dat de kernel de
juiste bits ontvangt. Deze bits worden door de kernel dan weer doorgegeven
naar de systeembibliotheek, die ze in het juiste formaat doorgeeft aan het
programma.

1.4 De shell
Hoe kan je nu met het besturingssysteem UNIX of Linux werken? Je hebt
een hulpprogramma nodig dat opdrachten netjes aan het besturingssysteem
6
een device driver is een programma dat een bepaald apparaat (device) beheert zoals
een printer, CD-ROM lezer of diskette-station
10 HOOFDSTUK 1. INLEIDING

doorgeeft. Dit programma wordt in Linux de shell genoemd (men spreekt


vanwege zijn basisfunctie ook ooit over de ”command interpreter”). De shell
heeft als doel om de gebruikers de mogelijkheid te geven (hulp)programma’s
van Linux op te roepen.
Linux levert een aantal shells, maar de zogenaamde Bourne-again-shell of
Bash (gebaseerd op de Bourne-shell geschreven door Steve Bourne midden
jaren 70) is voor de meeste beginners de interessantste.

1.5 X-Window

X-Window is de grafische gebruikersinterface van Linux. Onder X-Window


bestaan zowel clients als servers. Hier zijn de definities een beetje anders
dan in andere omgevingen. De server onder X-Window (kortweg X-server) is
een programma dat zorgt voor de presentatie van informatie op het scherm.
Afhankelijk van de grafische kaart en de schermcapaciteiten bestaan er heel
wat X-servers onder Linux.
Toepassingen onder X-Window zijn dan de zogenoemde X-clients, die via
de X-server hun uitvoer op het scherm weergegeven krijgen. Normaal draait
er één X-server op een systeem. Deze X-server bedient echter wel tal van
X-clients.
X-server en X-clients staan met elkaar in contact via een uniform X-protocol.
Dit is een protocol dat opgesteld is om grafische gegevens, muisbeweging en
dergelijke als informatie uit te wisselen. Bij dit concept maakt het niet uit
of de X-server en de X-client zich op dezelfde computer bevinden of niet.
Het uitzicht en het gedrag van de afzonderlijke X-clients wordt voor een deel
bepaald door de zogenoemde window manager. Hij bepaalt hoe de grootte
van vensters veranderd wordt of hoe een vensterkader eruit ziet. Hieronder
vind je enkele screenshots van verschillende window managers.

1.6 Distributies

We hebben reeds gezien dat de Linux kernel alleen niet voldoende is als
besturingssysteem. Daarnaast zijn er een heel aantal commando’s. Maar ook
met de kernel en alle commando’s zijn de meeste gebruikers tegenwoordig
niet tevreden. Ze hebben graag een X-Window omgeving en een aantal
toepassingsprogramma’s hiervoor (web-browser, bestandsbeheer, ...).
Er zijn verschillende bedrijven die op deze vraag inspelen. Zij stellen een
zogenoemde distributie samen die bestaat uit een installatieprogramma, de
kernel, commando’s, een aantal windowmanagers, configuratie-programma’s,
toepassingsprogramma’s, spelletjes enzovoort. Deze distributies kan je dan
1.6. DISTRIBUTIES 11

Figuur 1.1: KDE 3

Figuur 1.2: Blackbox


12 HOOFDSTUK 1. INLEIDING

Figuur 1.3: Gnome

Figuur 1.4: IceWM


1.6. DISTRIBUTIES 13

downloaden via het internet of kopen op CD-ROM of DVD. Enkele bekende


distributies zijn Redhat, SuSE, Debian en Mandrake. Wij zullen in de les
gebruike maken van de distributie van Mandrake en de window manager
KDE 3.
14 HOOFDSTUK 1. INLEIDING
Hoofdstuk 2

Basis-concepten van Linux

2.1 Inleiding

Linux is een multitasking en multiuser besturingssysteem, wat betekent dat


verschillende mensen verschillende programma’s kunnen uitvoeren op het-
zelfde moment. Dit is een wezenlijk verschil met MS-DOS (en ook met
Windows 9x). Daarom moet je jezelf ook altijd identificeren wanneer je in-
logt op een Linux systeem. Je moet daarvoor een gebruikersnaam en een
wachtwoord ingeven.
Op traditionele UNIX systemen kent de systeembeheerder je een gebruik-
ersnaam en initieel wachtwoord toe wanneer je een account op het systeem
krijgt. Indien je zelf Linux installeert moet je dit zelf doen.
In volgende hoofdstukken worden een aantal basis-concepten van Linux
bekeken. De meeste dingen kan je zowel via de shell als via een window
manager doen. In dat geval wordt het concept op deze twee verschillende
manieren verduidelijkt.

2.2 Inloggen en uitloggen

In- en uitloggen via de shell/console

Linux heeft verschillende zogenaamde virtuele consoles (de console van een
systeem zijn de monitor en het toetsenbord die erop aangesloten zijn). Via
een virtuele console kan je inloggen, waarna je een shell ter beschikking
krijgt. Je kan de verschillende consoles bereiken door de toetsencombinatie
CTRL+ALT+Fi waarin de i een cijfer is van 1 tot 6 (bij het cijfer 7 schakel je
over naar de window manager).
Onderstaande stappen beschrijven het inloggen op een Linux systeem:

15
16 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

• Schakel over naar de 2de virtuele console (CTRL+ALT+F2)

• Je ziet nu:

Mandrake Linux release 9.0 (dolphin) for i586


Kernel 2.4.19-16mdk on an i686 / tty2
FREGGEL login:

Voer de gebruikersnaam ”student” in en druk op ENTER.

• Vervolgens vraagt Linux je om je wachtwoord te geven:

Mandrake Linux release 9.0 (dolphin) for i586


Kernel 2.4.19-16mdk on an i686 / tty2
FREGGEL login: student
Password:

Voer het wachtwoord in dat je van de docent krijgt.

• De karakters die je ingeeft zijn niet te zien op het scherm. Indien je


een fout maakt in het wachtwoord (of de gebruikersnaam) zie je het
volgende:

Mandrake Linux release 9.0 (dolphin) for i586


Kernel 2.4.19-16mdk on an i686 / tty2
FREGGEL login: student
Password:
Login incorrect

login:

Je zal opnieuw moeten proberen.

Om uit te loggen typ je gewoon exit achter de prompt:

Mandrake Linux release 9.0 (dolphin) for i586


Kernel 2.4.19-16mdk on an i686 / tty2
FREGGEL login: student
Password:
[student@FREGGEL student]# exit
2.3. JE WACHTWOORD VERANDEREN 17

In- en uitloggen via X-Window

Vroeger kon je enkel de X-server opstarten door het commando startx te


typen nadat je via een virtuele console had ingelogd. Tegenwoordig zijn
er ook grafische log-in programma’s. Het uitzicht van een grafisch log-in
programma is afhankelijk van de gebruikte distributie.
Je gebruikt het programma als volgt:

• Schakel over naar het grafische log-in programma via de toetsencom-


binatie CTRL+ALT+F71

• Klik op het silhouet waaronder student staat.

• Vul het wachtwoord dat je van de leerkracht hebt gekregen in.

• Je kan eventueel ook nog kiezen welke windowmanager je wil gebruiken


door er een te selecteren uit de vervolgkeuzelijst. Kies voor KDE.

• Klik tenslotte op ”starten!”.

Om uit te loggen klik je op de knop aan de linker-onderkant van het scherm


(de plaats waar in Windows de start-knop staat). Het menu dat nu te
voorschijn komt noemen we het Mandrake-menu (naar analogie met het
start-menu van Windows). Vervolgens klik je op ”uitloggen” en beantwoord
de vraag opnieuw door op ”ok” te klikken.
Let op: deze procedure is voor iedere window manager verschillend.

2.3 Je wachtwoord veranderen

Je wachtwoord veranderen via de shell

Je verandert je wachtwoord als volgt:

• Log in via een virtuele console.

• Typ passwd achter de prompt en druk op ENTER.

• Voer je huidige wachtwoord in.

• Voer het wachtwoord in dat je vanaf nu wil gebruiken.

• Voer dit laatste wachtwoord nogmaals in (om typefouten te vermij-


den).
1
Indien de X-server nog niet opgestart is dient dit eerst te gebeuren. Dit kan door het
commando ”startx” in te geven in een van de virtuele consoles.
18 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

Figuur 2.1: KDE passwd programma

Je wachtwoord veranderen in de X-Window omgeving

Via de window manager KDE 3 zullen we nu ook ons wachtwoord veran-


deren:

• Log in via het grafische programma of schakel over naar de window


manager.

• Selecteer achtereenvolgens uit het Mandrake-menu ”configuratie”, ”Overige”


en ”Kpasswd”. Het passwd programma wordt zo opgestart (zie figuur
2.1).

• Voer jouw huidige wachtwoord in.

• Voer het wachtwoord in dat je vanaf nu wil gebruiken.

• Voer dit laatste wachtwoord nogmaals in (om typefouten te vermij-


den).

2.4 Bestanden en mappen

Bestanden en mappen structuur in Linux

Bestanden worden geı̈dentificeerd door hun bestandsnaam. Er is geen stan-


daard formaat voor bestandsnamen: een bestandsnaam kan elk karakter
bevatten behalve ”/” en mag maximum 256 karakters lang zijn. Hetzelfde
geldt voor namen van mappen.
De meeste Linux systemen hebben een standaard layout voor bestanden
en mappen, zodat ”system resources” en programma’s gemakkelijk terug
te vinden zijn. Deze layout heeft een boomstructuur (directory tree), die
start bij de map ”/”, ook wel root directory (wortel van de boom) genoemd.
Meteen onder de root directory zitten de belangrijke subdirectories ”bin”
2.4. BESTANDEN EN MAPPEN 19

bin dev etc home root user

jan karin leen piet steven

school muziek school documenten muziek

nederlands duits engels informatica

Figuur 2.2: Deel van de mappen-structuur van een Linux systeem

met programma’s die alle gebruikers kunnen uitvoeren, ”etc” met belangri-
jke configuratie-bestanden en ”home” waarin alle gebruikers een eigen map
hebben (zie figuur 2.2).

Bestanden en mappen structuur in de shell

De mappen en bestandsnamen worden in de shell gescheiden door een slash


(/). We zullen deze structuur even onderzoeken:

• Log in via virtuele console 2

• Na het inloggen kom je automatisch in jouw home-directory. Dit is


de directory /home/gebruikersnaam, in ons geval dus /home/student.
De home directory wordt in de shell-prompt vervangen door een tilde
(~).

• Om de inhoud van een map te bekijken gebruik je in Linux het com-


mando ls.

[student@FREGGEL student]# ls
KDesktop LEESMIJ documenten muziek public_html school tmp
[student@FREGGEL student]#

• Om van map te wisselen heeft Linux het commando cd (change direc-


tory). Ga naar de map school en vervolgens naar de map informatica
(let op de prompt die verandert):
20 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

[student@FREGGEL student]$ cd school/


[student@FREGGEL school]$ cd informatica/
[student@FREGGEL informatica]$

• Welke bestanden staan er in deze map?

• Om te weten in welke map je precies staat kun je het commando pwd


(print working directory) ingeven.

[student@FREGGEL informatica]$ pwd


/home/student/school/informatica
[student@FREGGEL informatica]$

• In iedere map is er een verwijzing naar de map erboven (de map waar-
toe de map waar we op dit moment in zitten behoort). Deze verwijzing
wordt weergegeven door 2 punten (..). Wanneer we dus cd .. typen,
gaan we naar deze map.

[student@FREGGEL informatica]$ cd ..
[student@FREGGEL school]$

• Tenslotte kun je altijd teruggaan naar je home-directory door gewoon


cd te typen. Ga eerst naar de map ”nederlands” en vervolgens naar
je home directory.

[student@FREGGEL school]$ cd nederlands/


[student@FREGGEL nederlands]$ cd
[student@FREGGEL student]$

Tot nu toe hebben we enkel zogenoemde relatieve padnamen gebruikt. Een


padnaam is een opeenvolging van namen van mappen gescheiden door een
”/”, eventueel gevolgd door een bestandsnaam. Relatieve padnamen be-
ginnen altijd met het karakter van de eerste map in de padnaam. Re-
latief betekent hierbij dat je de padnaam bekijkt vanuit de map waarin
men je op dat moment bevindt. Wanneer we bijvoorbeeld cd nederlands
typen, dan willen we naar de map ”nederlands”die zich in de huidig map
bevindt (huidige map is de map waarin we ons op dat moment bevin-
den). Er bestaan echter ook absolute padnamen. Deze beginnen altijd
2.4. BESTANDEN EN MAPPEN 21

Figuur 2.3: Konquerer: bestanden en mappen in je home directory

met ”/”. Absoluut wil dus zeggen dat je de padnaam bekijkt vanuit de
root directory, de wortel van je mappenboom. Om naar dezelfde map
”nederlands”te gaan, maar dan met een absolute padnaam, gebruik je dus
cd /home/student/school/nederlands.
In de volgende kleine oefening werken we steeds met absolute padnamen:

• Ga naar de map documenten in je home directory.

[student@FREGGEL student]$ cd /home/student/documenten/


[student@FREGGEL documenten]$

• Ga naar de map informatica. Welk commando gebruik je hiervoor?

Bestanden en mappen structuur in de X-Window omgeving

We gaan dezelfde mappenstructuur eens verkennen in de X-Window omgev-


ing (met window manager KDE 3).

• Log in via de grafische interface (als je al ingelogd bent, schakel dan


over naar de X-Window omgeving via de toetsencombinatie ALT+CTRL+F7).

• Selecteer ”Persoonlijke map” uit het Mandrake-menu.

• Een programma gelijkaardig aan de Windows Verkenner start nu op, en


je bevindt je opnieuw in jouw home directory (zie figuur 2.3). De naam
22 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

Figuur 2.4: Konquerer: navigatie en informatie

van dit programma is Konquerer (terug te vinden in de titelbalk).


Je vindt de verschillende mappen en het bestand ”LEESMIJ” terug.
Door op een map te klikken kan je de inhoud van die map bekijken.

• Klik op de map ”school” en vervolgens op de map ”informatica”. Je


ziet hier twee bestanden staan. Als Linux de extensie van het bestand
herkent (net zoals in Windows, indien een bepaald bestandstype is
gekoppeld aan een bepaald programma), dan kan je dat bestand bek-
ijken door erop te klikken. Klik bijvoorbeeld op het bestand ”cur-
sus linux.tex”.

• Om verder te navigeren zijn er een aantal knoppen ter beschikking.


Je kan bijvoorbeeld terug naar de vorige plaats door op de blauwe pijl
naar links te klikken. Je kan naar de hoger liggende map gaan door
op de pijl naar boven te klikken. Je kan ook navigeren door een map
te kiezen in het linkerdeel van het scherm.

• Navigeer eens rustig door je home-directory en let daarbij eens op de


informatie die je krijgt in de statusbalk.

• Tenslotte kan men zien in welke map men zich bevindt in de balk achter
”Location”. Je kan hier eventueel ook het volledige padnaam invoeren
van de map waarvan je de inhoud wil bekijken. De padnaam begint
hier met ”file:” omdat je Konquerer ook kan gebruiken om webpagina’s
te bekijken.

• Hoe geraak je in 1 keer terug in je home-directory?

2.5 Beheer van bestanden en mappen

Beheer van bestanden en mappen via de shell

We zullen leren hoe je een bestand kan aanmaken, verplaatsen en kopiëren


via de shell aan de hand van volgende oefening:

• Log in via een virtuele console.

• Het commando om een directory aan te maken is mkdir. Om bijvoor-


beeld de directory ”test” te maken doe je het volgende:
2.5. BEHEER VAN BESTANDEN EN MAPPEN 23

[student@FREGGEL student]$ mkdir test


[student@FREGGEL student]$ ls
KDesktop LEESMIJ documenten muziek public_html school test tmp
[student@FREGGEL student]$

• Vervolgens zullen we het ”LEESMIJ” bestand kopiëren naar de map


”test”. Dit gebeurt met het commando cp waaraan 2 argumenten
moeten meegegeven worden: het bestand dat gekopieerd moet worden
en de plaats waarnaar het bestand gekopieerd dient te worden. Deze
plaats (padnaam) kan op verschillende manieren gegeven worden:

– als een volledige padnaam (bv. /home/student/test/LEESMIJ)


of als relatieve padnaam (bv. test/LEESMIJ)
– met (bv. test/LEESMIJ) of zonder bestandsnaam (bv test/) (in
het laatste geval wordt de bestandsnaam van het te kopiëren be-
stand overgenomen)
– indien je de bestandsnaam opgeeft mag dit een andere naam zijn
dan die van het te kopiëren bestand (bv. test/Testbestandje)

Zo meteen gaan we deze mogelijkheden uitproberen. Eerst kijken we


hoe we een bestand kunnen verwijderen.

• Om een bestand te verwijderen is er het commando rm. Probeer nu elke


hierboven beschreven manier uit om het bestand LEESMIJ te kopiëren
naar de map ”test”. Nadat je het bestand gekopieerd hebt bekijk je
de inhoud van de map test zodat je zeker weet dat het kopiëren gelukt
is. Tenslotte verwijder je het gekopieerde bestand weer zodat je de
volgende mogelijkheid kan uitproberen.

• Om een map te verwijderen zijn er 2 mogelijkheden:

1. Je gaat naar die map, verwijdert alle bestanden in de map, gaat


terug één niveau hoger in de mappenstructuur en verwijdert dan
de map met het commando rmdir (remove directory):

[student@FREGGEL test]$ cd test


[student@FREGGEL test]$ rm *
rm: remove regular empty file ‘LEESMIJ’? y
[student@FREGGEL test]$ cd ..
[student@FREGGEL student]$ rm test
rm: remove directory ‘test’? y
[student@FREGGEL student]$
24 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

2. Je gaat één niveau hoger staan dan de map zelf en gebruikt het
commando rm -r. De optie -r vertelt rm dat de map recursief
moet worden verwijderd. Je kan op die manier een grote tak van
de mappen-boom in één keer ”afhakken”, in plaats van twijgje
per twijgje te verwijderen:

[student@FREGGEL student]$ rm -r test


rm: descend into directory ‘test’? y
rm: remove regular empty file ‘test/LEESMIJ’? y
rm: remove directory ‘test’? y
[student@FREGGEL student]$

Dit is een zeer gevaarlijke optie: als gebruiker root kan je op


deze manier de alle bestanden in één keer verwijderen met het
commando rm -rf /

• Wanneer je niet meer heel goed weet hoe een commando precies werkt,
of welke opties dat commando heeft, kun je de optie -h of --help ge-
bruiken. Om bijvoorbeeld te weten te komen wat f in de optie ”-rf”
van hierboven doet, typ je rm --help. De uitleg die hierbij wordt
gegeven is meestal vrij summier. Je kan extra uitleg over een com-
mando opvragen met het commando man of info2
Typ bijvoorbeeld eens man rm. Je vindt hier een beetje extra uitleg,
maar ook een verwijzing naar de info-pagina’s. Je kan door de uitleg
scrollen met behulp van de ENTER toets. Stoppen doe je met de
toets q. Typ vervolgens eens info rm. Hier vind je al heel wat meer
informatie. Scrollen door de info-pagina’s kan met de pijltjestoets met
het pijltje naar beneden. Deze info-pagina heeft echter nog geen struc-
tuur. Je kan opnieuw stoppen met de toets q. Als je eens een pagina
wil zien met structuur, typ dan info latex. Wanneer de cursor zich
op de titel van een deel of hoofdstuk bevindt en je drukt op ENTER
zal je zien dat je de informatie over dat deel terugvindt.

• Het commando mv dient om bestanden en mappen te verplaatsen. De


argumenten zijn net hetzelfde als bij het cp commando. Verplaats
bijvoorbeeld het LEESMIJ bestand eens naar de map ”documenten”
en terug. Je kan een bestand met dit commando ook hernoemen:
je verplaatst het naar dezelfde map maar onder een andere naam.
2
Vroeger vond je alle informatie via het man commando, tegenwoordig wordt meer en
meer overgeschakeld naar het gebruik van het info commando. Dit heeft te maken met de
structuur van man- en info-pagina’s: bij man-pagina’s stond alle informatie achter elkaar,
op 1 lange pagina; bij info-pagina’s kan je een hiërarchische structuur creëren met links
naar andere onderdelen. Hierbij kan je beter een onderscheid maken tussen belangrijke
opties, uitgebreidere en minder vaak gebruikte opties, voorbeeldjes enzovoort.
2.5. BEHEER VAN BESTANDEN EN MAPPEN 25

Wanneer je bijvoorbeeld ”brief” wil hernoemen naar ”brief voor baas”


doe je dit met het commando mv brief brief_voor_baas.

• Tenslotte is de zogenoemde tab-completion van Linux ook het ver-


melden waard. Wanneer je een gedeelte van de naam van een map
of bestand hebt ingetypt, kun je de shell vragen om de naam te ver-
volledigen door op de TAB-toets te drukken. Gebruik dit bijvoorbeeld
eens om de inhoud van de map informatica (deze map bevindt zich
in de map school) te bekijken. Typ ls sch en druk vervolgens op de
TAB-toets. De shell zal dit nu aanvullen en er komt ls school/ te
staan. Typ hierachter de letters inf en druk opnieuw op de TAB-toets
en vervolgens op ENTER.
Wanneer er meerdere mogelijkheden zijn kan de shell natuurlijk niet
voor jou kiezen. Als je dan nog 2 keer op de TAB-toets drukt krijg
je wel een lijstje van de mogelijkheden te zien. We zullen om dit
te demonstreren het bestand cursus_linux.pdf naar de map docu-
menten te kopiëren. Typ cp sch TAB inf TAB cur TAB. De shell
geeft aan de hand van een pieptoon te kennen dat er meerdere (of
geen) mogelijkheden zijn. Druk nog 2 keer op de TAB toets. Nu zie je
dat er zowel cursus_linux.pdf als cursus_linux.tex in deze map
staan. Als je nu de letter p typt en nogmaals op de TAB-toets drukt
krijg je het juiste bestand. Om onze oefening af te maken typ je nog
een spatie en daarna do TAB en tenslotte op ENTER.

Nu is het tijd geworden om deze commando’s in te oefenen. Schrijf onder


iedere opdracht welk commando (of welke commando’s) je gebruikt. Gebruik
minimum 1 keer een absolute padnaam, 1 keer een relatieve padnaam, 1 keer
een padnaam zonder bestandsnaam op het einde en 1 keer een padnaam met
eem bestandsnaam op het einde (hint: je kan 2 dingen combineren).

• Ga naar je home-directory.

• Kopieer het ”LEESMIJ” bestand naar de map ”test”.

• Verplaats het ”LEESMIJ” bestand naar de map ”informatica” onder


de naam ”LEESMIJNIET”.

• Kopieer het ”LEESMIJ” bestand in jouw home-directory naar de map


”Tekstbestandje” in de map ”test”.
26 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX

• Verwijder de map ”test”.

Beheer van bestanden en mappen met Konquerer

Om te werken via de shell moet je vele commando’s en opties kennen. Deze


kunnen vooral van pas komen wanneer je bepaalde dingen moet automa-
tiseren omdat je deze commando’s dan in een script kunt zetten en ze zo
automatisch achter elkaar kan uitvoeren.
Voor het dagelijks gebruik is de shell misschien iets minder handig. Daarom
gaan we ook in de grafische omgeving de vorige oefening eens doen:

• Log in of schakel over naar de windowmanager KDE 3. Start opnieuw


de verkenner op (”Persoonlijke map” uit het Mandrake-menu).

• Maak de map test aan als volgt: klik met de rechtermuisknop in het
rechter-deel van het vensters (klik wel naast of onder een bestaande
map of bestand). Kies uit het pop-up menu ”nieuw” en vervolgens
”map”. Typ de naam ”test” in het invulvakje van het venster dat
zojuist is verschenen. Klik op de knop ”OK”.

• Ga naar de map test (bv. door erop te klikken).

• Start nog een Konquerer op.

• Sleep het ”LEESMIJ” bestand vanuit deze Konquerer naar de andere


(waarin we daarnet de map documenten hebben geopend. Laat het
”LEESMIJ” bestand daar vallen (muisknop loslaten). Konquerer zal
je nu vragen of je het bestand ”LEESMIJ” naar de map documenten
wil kopiëren, verplaatsen of er een link naartoe wil maken. Wij kiezen
kopiëren.

• Je kan het gekopieerde bestand hernoemen door er met de rechter-


muisknop op te klikken en uit het pop-up menu ”hernoemen” te kiezen.
Hernoem het bestand naar ”LEESMIJNIET”.

• Je kan het gekopieerde bestand verwijderen door er met de rechter-


muisknop op te klikken en uit het pop-up menu de optie ”naar prul-
lenbak verplaatsen” of ”verwijderen” te kiezen (bij deze laatste optie
kan je het bestand achteraf niet meer recupereren). Kies nu ”move to
trash”.
2.6. HET SYSTEEM AFSLUITEN 27

• Verplaats het ”LEESMIJ” bestand van de map ”test” naar de map


”informatica” (deze map is onderdeel van de map school).

• Kopieer het ”LEESMIJ” bestand van je home directory naar de map


”documenten”.

• Verwijder de map ”test” (optie ”Verwijderen”).

2.6 Het systeem afsluiten

Het afsluiten van een Linux systeem heeft meer gevolgen dan je denkt. Ten
eerste mag je nooit de computer uitzetten door op de power- of reset-knop
te drukken. De Linux kernel houdt namelijk gegevens voor de harde schijf
een tijdje bij in het geheugen vooraleer deze gegevens naar de harde schijf
te schrijven. Wanneer je het systeem gewoon uitzet heeft de kernel niet
de kans om deze gegevens naar de harde schijf te schrijven en geraakt het
bestandsysteem in de war.
Ten tweede zijn er een heel aantal processen in uitvoering. Wanneer je het
systeem goed afsluit wordt aan al deze processen gevraagd om te stoppen.
Zoniet worden zij midden in hun uitvoering bruusk gestopt.
Als laatste moet je eraan denken dat Linux een multi-user systeem is. Er
kunnen een aantal gebruikers ingelogd zijn (en aan het werken zijn) op het
systeem. Voor hen is het niet interessant als tijdens het bewerken van een
tekst plots alles wegvalt omdat jij de PC wil afzetten.
Daarom heeft het shutdown commando als tweede argument de tijd waarop
afgesloten moet worden (hh:mm) of na hoeveel minuten er moet afgesloten
worden (+m). Bij het commando shutdown zijn er 2 verschillende opties:
-r om opnieuw op te starten (rebooten) en -h om af te sluiten (halt). Om
de computer over 2 minuten af te sluiten gebruik je dus het commando:
shutdown -h +2. Alle gebruikers die zijn ingelogd krijgen dan de melding
dat het systeem over 2 minuten afgesloten wordt.
28 HOOFDSTUK 2. BASIS-CONCEPTEN VAN LINUX
Hoofdstuk 3

De window manager KDE 3

De window manager KDE 3 vertoont grote gelijkenissen met de omgeving


die je in Windows gewoon bent. Ieder venster heeft bijvoorbeeld in de
rechter bovenhoek een blokje waarmee je het venster kan minimaliseren, een
vierkantje waarmee je het venster kan maximaliseren en een kruisje waarmee
je het venster kan afsluiten. Je kan het venster ook naar een gewenste grootte
omvormen door een bepaald hoek te verplaatsen.
KDE 3 heeft ook een taakbalk waarin de programma’s te zien zijn die je
aan het uitvoeren bent en een klok en datum in de rechter benedenhoek (zie
figuur 3.1). Er is ook een soort van start-menu in de linker benedenhoek
(zie figuur 3.1).
Niet alles is echter identiek. Bij KDE 3 beschik je niet over 1 maar over
4 desktops (bureaubladen). Je kan omschakelen tussen deze bureaubladen
door op het getal 1, 2, 3 of 4 in de taakbalk te klikken. Dit komt ook tot
uiting wanneer je met de rechter muisknop op de bovenkant van een venster
klikt. Buiten de normale opties om het venster te verplaatsen en van grootte
te veranderen staat hier ook ”Naar bureaublad” waarmee je een scherm naar
een andere desktop kan sturen. De optie ”configuratie”, ”vensterdecoratie”
dient om het uiterlijk van een venster te wijzigen.
Wanneer je goed kijkt zie je in de linker bovenkant van een venster ook een
priknaald staan. Wanneer je hierop klikt verandert deze van positie. Nu is
het venster op elk bureaublad te zien (het zit vastgeprikt op je scherm).
Laten we tenslotte eens een snelkoppeling naar een programma toevoegen
aan het bureaublad. Dit werkt ongeveer op dezelfde manier als in Windows:

• Klik met de rechtermuisknop op een lege plaats op het bureaublad

• Selecteer ”Nieuw” en dan ”Koppeling naar applicatie...”

29
30 HOOFDSTUK 3. DE WINDOW MANAGER KDE 3

Figuur 3.1: KDE 3: een window manager van formaat

• We zullen een link maken naar het programma The Gimp1 Verander de
naam ”Koppeling naar applicatie” in het invulvakje naar ”The Gimp”.

• Selecteer het tabblad ”Uitvoeren”. Hier moeten we instellen welk com-


mando moet uitgevoerd worden. We weten echter niet waar het pro-
gramma ergens staat. Daarom zullen we het zoeken.

– Kies uit het Mandrake menu achtereenvolgens ”Wat kan ik doen”,


”Bestanden zoeken”.
– Typ in het invulveld achter ”Genaamd” het volgende in *gimp
(dit is omdat we niet weten of het programma nu gimp of thegimp
heet).
– Verander de locatie in ”file:” want we willen het volledige be-
standssysteem doorzoeken.
– Klik op de knop ”Zoeken”, en wacht een tijdje.
– Even later verschijnt er onder andere als gevonden item ”gimp”
in de map ”/usr/bin”. Dit is het programma dat we zoeken, de
andere gevonden items tot nu toe zijn enkel mappen. We kunnen
het programma nog verder laten zoeken, maar dat is niet nodig.
Daarom kun je nu best op de ”Stop” knop klikken.
– We sluiten het zoekprogramma af door op de knop ”Sluiten” te
klikken.

• Omdat we nu weten waar het programma staat vullen we dit ook in in


het invulvakje onder ”Commando:”. We typen daar /usr/bin/gimp.
1
Gimp staat voor Graphic Image Manipulation Program. Het is een soort Adobe
Photopaint variant. Meer info vind je op http://www.gimp.org/
31

• Nu gaan we het icoontje nog veranderen. Klik hiervoor terug op het


tabblad ”Algemeen”. Klik op het icoontje voor de naam van de link.
Selecteer het icoon Gimp. Klik tenslotte op OK.

• Je kan nu controleren of de link werkt door erop te klikken (dit is ook


nog een verschil met de Microsoft Windows omgeving: 1 keer klikken
volstaat).
32 HOOFDSTUK 3. DE WINDOW MANAGER KDE 3
Hoofdstuk 4

Gebruikers, groepen en
toegangsrechten

4.1 Gebruikers in Linux

Omdat er normaalgezien meer dan één gebruiker op een Linux systeem


werkt, zullen we nu aandacht besteden aan het beheer van deze gebruik-
ers en de groepen waartoe ze behoren. Later in dit hoofdstuk zullen we één
van de voordelen zien van dit gebruikersbeheer: Linux voorziet namelijk een
mechanisme waarbij gebruikers hun bestanden kunnen afschermen tegen het
lezen of wijzigen door andere gebruikers.
Zelfs wanneer jij de enige gebruiker bent van het computersysteem is het
belangrijk om de verschillende aspecten van gebruikersbeheer onder Linux
te begrijpen. Je moet namelijk minimum één gebruiker buiten de ”root”
creëren, waar je bijna altijd mee werkt.
Elke gebruiker moet zijn eigen account hebben. Het is zelden een goed idee
om een bepaalde account door meerdere gebruikers te laten delen, vooral uit
veiligheidsoverwegingen1 .
De root-gebruiker is in Linux diegene met alle toegangsrechten. Hij is
diegene die het systeem installeert en onderhoudt (de systeembeheerder).
Juist omdat hij zoveel toegangsrechten heeft is het belangrijk dat hij voor
zichzelf ook een gewone gebruiker aanmaakt. Er is dan minder kans dat hij
schade aan het systeem veroorzaakt wanneer hij gewoon op het systeem aan
het werken is en per ongeluk een foutje maakt. Enkel wanneer hij systeem-
taken moet uitvoeren, verandert hij even in de root gebruiker.
1
Alle gebruikers met dezelfde gebruikersnaam (dezelfde account) kunnen aan elkaars
documenten. Als één van de gebruikers een fout maakt schaadt hij daarmee ten eerste
alle andere gebruikers, en ten tweede kan de systeembeheerder op deze manier niet weten
wie van de gebruikers deze fout heeft gemaakt

33
34HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

Het systeem houdt de volgende informatie over elke gebruiker bij:

Gebruikersnaam Deze is uniek voor elke gebruiker en mag zowel


letters als cijfers bevatten
Gebruikers ID Dit nummer (UID = User ID) is eveneens uniek
voor elke gebruiker. Het systeem maakt meestal
gebruik van de UID in plaats van de gebruiker-
snaam.
Groep ID Dit nummer (GID = Group ID) is het num-
mer van de ”default”groep waartoe de gebruiker
behoort. Een gebruiker behoort tot één of
meerdere groepen, maar van één groep wordt
het groepsnummer bijgehouden. De andere
groepen zijn in een ander bestand te vinden.
Paswoord Het wachtwoord van de gebruiker wordt ge-
ëncrypteerd bewaard.
Volledige naam Dit is de ”echte” of ”volledige” naam van de
gebruiker.
Home directory Dit is de map waarin de gebruiker terecht
komt na het inloggen. Meestal is deze map
/home/gebruikersnaam, maar in uitzonderlijke
gevallen kan dit anders ingesteld worden (bi-
jvoorbeeld voor gebruiker ”ftp” is de home direc-
tory vaak /var/pub/ftp omdat dit ook de map
is waarin je terecht komt wanneer je een ftp
verbinding met het systeem tot stand brengt).
Login shell Dit is de shell die wordt opgestart nadat de ge-
bruiker is ingelogd. Meestal is dit ”/bin/bash”.

Al deze informatie wordt opgeslagen in het bestand /etc/passwd in de vorm

gebruikersnaam:encrypted password:UID:GID:
Volledige naam:Home dir:login shell

Je kan de laatste regels van dit bestand bekijken door het volgende com-
mando: tail /etc/passwd. Omdat Linux tegenwoordig zogenoemde ”shadow
passwords” gebruikt zijn deze in een ander bestand opgeslagen dat enkel de
root-gebruiker kan lezen (ze staan als het ware in de ”schaduw”, waar gewone
gebruikers ze niet kunnen zien).

De andere groepen waar de gebruiker toe behoort vind je in het ”/etc/group”


bestand. Je kan eventueel de laatste regels weer bekijken met het commando
tail /etc/group.
4.2. GEBRUIKERSBEHEER 35

4.2 Gebruikersbeheer

Gebruikersbeheer via de shell

Het commando dat in de shell beschikbaar is om een gebruiker toe te voegen


is useradd. Je moet wel systeembeheerder (root) zijn om dit programma uit
te voeren! Je kan inloggen als root-gebruiker ofwel van gebruiker veranderen
nadat je ingelogd bent. Vermits dit laatste meestal gedaan wordt gaan wij
het ook zo doen:

• Log in als student

• Je kan veranderen van gebruiker via het commando su (substitute


user). We veranderen nu naar de root-gebruiker (vraag het wachtwo-
ord aan je leerkracht)

[student@FREGGEL student]$ su root


Password:
[root@FREGGEL student]#

• De prompt is veranderd. Hoe verklaar je deze verandering?

• Voeg nu een gebruiker met jouw naam en een zelfgekozen wachtwoord


toe. We zullen alle andere eigenschappen van een gebruiker door het
systeem zelf laten bepalen2 .

[root@FREGGEL student]# useradd -m geertdemaere


[root@FREGGEL student]#

Waarvoor dient de optie -m?

Vervolgens stellen we het wachtwoord in voor deze gebruiker. Dit


gebeurt als volgt:

[root@FREGGEL student]# passwd geertdemaere


Changing password for user geertdemaere.
2
Het systeem gebruikt hiervoor de instellingen uit het configuratiebestand
etc/default/useradd
36HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

New UNIX password:


Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@FREGGEL student]#

Linux zal je een waarschuwing geven indien je het wachtwoord te een-


voudig kiest.
• Typ exit om terug over te schakelen naar de gebruiker ”student”.
• Probeer in een andere virtuele console in te loggen als de gebruiker die
je zojuist hebt gecreëerd. In welke map kom je terecht na het inloggen?

• Om een gebruiker terug te verwijderen gebruik je het commando userdel


met daarachter de gebruikersnaam.

[student@FREGGEL student]$ su root


Password:
[root@FREGGEL student]# userdel geertdemaere
[root@FREGGEL student]#
[root@FREGGEL student]# exit
exit
[student@FREGGEL student]$

• Controleer of de gebruiker effectief verwijderd is (probeer nogmaals als


die gebruiker in te loggen).

Gebruikersbeheer in de X-Window omgeving

De procedure om een gebruiker toe te voegen via de shell is vrij omslachtig,


zeker als je een aantal eigenschappen van de gebruiker wil meegeven. We
zullen zien dat het eenvoudiger kan via een grafisch programma.

• Log in via het grafisch programma of schakel over naar de window-


manager.
• Kies uit het Mandrake menu achtereenvolgens ”Wat kan ik doen”,
”Beheer uw systeem” en ”Gebruikers beheren” (zie figuur 3.1).
• Het systeem zal je vragen het root-wachtwoord te geven omdat alleen
de systeembeheerder gebruikers mag toevoegen of verwijderen (zie
figuur 4.1). Vul het paswoord in en wacht: het kan even duren vo-
ordat dit programma opgestart is.
4.3. GROEPEN IN LINUX 37

Figuur 4.1: Dialoogvenster voor paswoord systeembeheerder

• Om een gebruiker aan te maken klik je op de knop ”Toevoegen”.

– Het ”Aanmeldnaam” veld bevat de gebruikersnaam.


– Bij commentaar kan je extra gegevens over de account toevoegen.
– Selecteer de gewenste shell (bijv. bash).
– Vul het pad in waar de homedirectory van de gebruiker zich
bevindt.
– Vul het paswoord in. Om typ-fouten te vermijden moet dit twee
keer gebeuren.
– Op het tabblad ”Groepen” kan je de gebruiker aan één of meerdere
groepen toevoegen.

• Druk op OK om de gebruiker aan te maken.

• Probeer in te loggen met de zojuist gecreëerde gebruikersnaam.

• Het verwijderen van een gebruiker gebeurt met hetzelfde programma


als het aanmaken van gebruikers. Verwijder de zojuist aangemaakte
gebruiker weer door hem te selecteren uit de lijst van gebruikers en
vervolgens op de ”Verwijderen” te klikken.

4.3 Groepen in Linux

Zoals reeds vermeld kan een gebruiker behoren tot één of meerdere groepen.
Het belang van groepen wordt vooral duidelijk bij het bekijken van de toe-
gangsrechten, vermits je toegangsrechten ook per groep kan specifiëren. In
wat volgt worden toegangsrechten nader bekeken.
38HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

Figuur 4.2: Het grafische programma voor gebruikersbeheer

Figuur 4.3: Een gebruiker toevoegen


4.4. TOEGANGSRECHTEN 39

4.4 Toegangsrechten

We hebben al eens gekeken welke mappen en bestanden er in onze home di-


rectory staan, maar nog niet naar de attributen die bij deze bestanden horen.
We zullen eerst een kijkje nemen naar deze attributen en ze vervolgens één
voor één verklaren.

• Log in via een virtuele console als student

• Bekijk de inhoud van je home directory, maar geef deze keer de optie
-l mee aan het commando:

[student@FREGGEL student]$ ls -l
totaal 16
drwxrwxr-x 2 student student 4096 okt 15 11:46 documenten/
-rw-rw-r-- 1 student student 25 okt 17 10:57 LEESMIJ
-rw-rw-r-- 1 student student 0 okt 15 12:28 LEESMIJ~
drwxrwxr-x 4 student student 4096 okt 15 11:43 school/
drwx------ 2 student student 4096 okt 15 11:34 tmp/
[student@FREGGEL student]$

(inhoud, datum en tijd kunnen verschillen)


Van links naar rechts zijn 7 velden te onderscheiden. Onderstaande
tabel geeft de betekenis ervan weer.
40HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

Veld Betekenis
1 Het type bestand (bestand, map of link) en de
toegangsrechten (zie verder)
2 Dit cijfer stelt het aantal referenties naar het
bestand voor. Bij bestanden is dit minimum 1
(de bestandsnaam zelf)
Bij mappen is dit minimum 2: de map zelf en
de ”.” in de map (de punt staat voor ”huidige
map”). Voor iedere sub-map die een map bevat
wordt dit cijfer nog eens met 1 verhoogd omdat
iedere map ook een verwijzing heeft naar de map
waartoe hij behoort (”..”). Kan je nu verklaren
waarom de referentieteller van de map school
gelijk is aan 4?

3 De gebruikersnaam van de eigenaar (waarvoor


een gedeelte van de toegangsrechten gelden)
4 De groep die eigenaar is van het bestand of de
map (waarvoor opnieuw een gedeelte van de toe-
gangsrechten gelden)
5 De grootte van een bestand (geen betekenis voor
mappen)
6 De datum en het uur waarop het bestand het
laatst is gewijzigd
7 De naam van het bestand of de map

We bespreken nu uitgebreid waarvoor het eerste veld (de toegangsrechten)


staat. Deze betekenis is verschillend voor bestanden en voor mappen. Van-
daar dat we dit ook apart zullen bespreken. Het eerste teken van de reeks
van 10 tekens geeft het type weer. Wanneer het een koppelteken (-) is gaat
het om een bestand, voor een map staat hier een d.

De volgende negen tekens vormen drie groepjes van drie. Het eerste groepje
staat voor de toegangsrechten van de gebruiker die eigenaar is van de map
of het bestand (wie dat is zie je in veld 3), het volgende groepje van 3 tekens
geeft weer welke rechten de groep heeft die eigenaar is van het bestand (veld
4), en het laatste groepje van 3 representeert de toegangsrechten van de
gebruikers die noch eigenaar noch lid van de groep zijn (dit worden ook wel
de toegangsrechten voor ”de wereld” genoemd).
4.4. TOEGANGSRECHTEN 41

Toegangsrechten voor een bestand

Ieder groepje van 3 heeft dezelfde betekenis. Wanneer er een letter staat
(r, w of x), betekent dit dat je dat bepaalde recht hebt, wanneer er een
streepje staat (-), heb je dat recht niet. Bij een bestand staat de r voor
readable (leesbaar), de w voor writable (schrijfbaar of ook wel wijzigbaar)
en de x voor executable (uitvoerbaar). Iemand met enkel toegangsrecht r
kan het bestand wel lezen, maar er niets aan veranderen. Iemand die ook
toegangsrecht w heeft kan het bestand wel wijzigen. Het toegangsrecht x is
enkel van belang voor uitvoerbare bestanden (programma’s of commando’s).
Dit geeft je het recht om het programma ook effectief uit te voeren.

Verklaar nu de toegangsrechten van het ”LEESMIJ” bestand door een kruisje


te zetten wanneer iemand het recht heeft:

eigenaar groep wereld


lezen
schrijven
uitvoeren

Toegangsrechten voor een map

Opnieuw heeft ieder groepje van 3 dezelfde betekenis. De letter r staat voor
het lezen van de inhoud van de map. Indien een gebruiker dit recht niet
heeft kan hij niet zien welke bestanden er in een map staan. De letter w
staat voor de mogelijkheid om gegevens in een map te veranderen. Je kan
dan nieuwe bestanden aanmaken en bestaande bestanden wissen.
Let op: de mogelijkheid om een bestand te wissen hangt dus niet af van
je toegangsrechten tot dat bestand maar van je toegangsrechten tot de map
waarin dat bestand zit!
Tenslotte staat de letter x voor het ”betreden” of ”gebruiken” van een map.
Zonder dit toegangsrecht kan je niet naar de map in kwestie gaan (com-
mando cd) of een bestand uit die map kopiëren.

Verklaar nu de toegangsrechten van de map ”documenten”:

eigenaar groep wereld


inhoud opvragen
bestand aan-
maken
”gebruiken”
42HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

Oefeningen op toegangsrechten

Omdat het concept van toegangsrechten zeer belangrijk is gaan we hier nog
enkele oefeningen op maken. Om te kunnen controleren hoe alles werkt
hebben we meerdere gebruikers nodig. Maak daarom 2 gebruikers aan: één
met hetzelfde GID als jij (student), één met een ander GID. Geef te twee
gebruikers een naam, bijv. leerling en leraar.
Vervolgens zullen we leren hoe we de toegangsrechten kunnen wijzigen. Hi-
ervoor dient het commando chmod3 . Het eerste argument is van de vorm
[ugoa][+-=][rwx]. Het eerste deel duidt aan voor welke gebruikers de
toegangsrechten van toepassing moeten zijn: user, group, other, all. Het
tweede groepje duidt aan of de toegangsrechten moeten toegevoegd worden
aan de rechten die de gebruiker al heeft (+), moeten worden ingetrokken
(-) of dat dit de toegangsrechten van de gebruiker zullen worden (ongeacht
welke rechten hij nu al heeft). Het laatste groepje geeft weer over welke
toegangsrechten het gaat. Je mag meerdere letters per groepje gebruiken.
Tenslotte is het tweede argument van chmod de naam van het bestand of de
map waarvan de toegangsrechten moeten gewijzigd worden.
We gaan dit eens uitproberen op het ”LEESMIJ” bestand.

• Log in virtuele console 2 in als student, bij 3 als leerling en bij 4 als
leraar.

• Maak als leerling en als leraar ook een bestand ”LEESMIJ” aan. Dit
doen we door als student het ”LEESMIJ” bestand naar de ”/tmp” 4
map te kopiëren en als leerling en leraar dit bestand naar onze home
directory te kopiëren.

• Wie heeft welke rechten op het ”LEESMIJ” bestand van de student?


leerling student leraar
lezen
wijzigen
uitvoeren

• De leerling vindt dat de student het ”LEESMIJ” bestand ook mag


bewerken. Verander hiervoor de toegangsrechten.

• Bekijk de toegangsrechten van een home directory. Ga hiervoor met 1


van de gebruikers een niveau naar boven (naar de bovenliggende map).
3
Enkel de eigenaar van een bestand en de systeembeheerder kunnen de toegangsrechten
tot een bestand wijzigen.
4
Iedereen heeft schrijftoegang tot deze map. Hij wordt net als in windows veel gebruikt
om een bestand tijdelijk op te slaan.
4.4. TOEGANGSRECHTEN 43

[leerling@FREGGEL leerling]$ cd ..
[leerling@FREGGEL home]$ ls -l

Duidt aan wie welke toegangsrechten heeft:


leerling student leraar
inhoud opvragen
bestand aan-
maken
”gebruiken”

• De leraar vindt dat de leerlingen niets te zoeken hebben in zijn home


directory. Verander hiervoor de toegangsrechten. Controleer of de
leerling nu inderdaad niet meer naar de map van de leraar kan gaan.
Het is belangrijk om hier even bij stil te staan: wanneer je de toe-
gangsrechten van het ”LEESMIJ” bestand in de map van de leraar
bekijkt dan zou je hieruit afleiden dat de leerling dit bestand mag
lezen. Hij kan dit echter niet omdat hij geen toegang heeft tot de map
waarin het bestand staat. Of iemand een bestand kan lezen hangt dus
niet alleen af van de toegangsrechten van het bestand zelf, maar ook
van de toegangsrechten van de map waarin het bestand zich bevindt.

• De leerling wil dat er niemand zijn ”LEESMIJ” bestand kan lezen


behalve hijzelf. Verander hiervoor de toegangsrechten en controleer
ook of de student het bestand niet meer kan lezen (gebruik hiervoor
het commando tail /home/leerling/LEESMIJ als student).

• Alle commando’s bevinden zich in de ”/bin” map. Om eens de toe-


gangsrechten van zo een programma te bekijken kan je het commando

ls -l /bin/chmod

gebruiken. Duidt hieronder de rechten aan van de student en de sys-


teembeheerder (root-gebruiker):
systeembeheerder leerling
lezen
wijzigen
uitvoeren

• Sommige commando’s zijn alleen bedoeld voor de systeembeheerder.


Deze staan meestal in de ”/sbin” map. Doe bijvoorbeeld eens

ls -l /sbin/netconf
44HOOFDSTUK 4. GEBRUIKERS, GROEPEN EN TOEGANGSRECHTEN

. Geef opnieuw de rechten van de leerling en de systeembeheerder:


systeembeheerder leerling
lezen
wijzigen
uitvoeren
Hoofdstuk 5

Processen en procesbeheer

5.1 Processen

Procesbeheer wordt door vele shells voorzien zodat je verschillende pro-


gramma’s tegelijk kan uitvoeren. Iedere keer wanneer je een programma
opstart, start je een zogenaamd ”proces”. Het commando ps geeft een lijst
van processen die op dat moment in uitvoering zijn:

[student@FREGGEL student]$ ps
PID TTY TIME CMD
3000 pts/1 00:00:00 bash
3173 pts/1 00:00:00 ps
[student@FREGGEL student]$

Het PID dat in de eerste kolom staat is een afkorting voor process ID:
een uniek nummer dat aan elk proces wordt toegekend wanneer het gestart
wordt. De laatste kolom laat zien welk proces in uitvoering is. De tweede
kolom (TTY)1 duidt aan via welke (virtuele) console het proces is opgestart.
De derde kolom geeft tenslotte weer hoeveel CPU tijd in seconden het process
al heeft ingenomen. De weergegeven lijst bevat alleen de processen (zonder
de X-Window processen) die je zelf hebt opgestart. Wil je eens kijken welke
processen het systeem allemaal aan het uitvoeren is dan kan dit via ps aux.
De opties zijn a voor alle gebruikers, u om dan ook de gebruikersnaam weer
te geven en x om ook de X-Window processen te zien.
Meestal is er maar één proces per gebruiker in uitvoering buiten de shell
(bash): het commando dat je het laatst getypt hebt. Waarom kan het nu
nuttig zijn om meerder processen tegelijk te draaien?
1
TTY is een afkorting van TeleTYpe: een terminal lijkt in eerste instantie niet veel
meer dan een geavanceerde typmachine

45
46 HOOFDSTUK 5. PROCESSEN EN PROCESBEHEER

Stel je bent een tekst aan het bewerken en iemand vraagt je om even iets te
kopiëren. Via procesbeheer kan je dan de tekstverwerker even schorsen, het
bestand kopiëren en dan weer terug overschakelen naar de tekstverwerker.

5.2 Voorgrond en achtergrond processen

Een proces kan ofwel op de voorgrond ofwel op de achtergrond in uitvoering


zijn. Een proces op de voorgrond kan je rechtstreeks mee interageren via
je toetsenbord, een proces op de achtergrond draait op zichzelf: je moet
het naar de voorgrond halen om er invoer aan te kunnen geven. Er kan
maximum 1 proces op de voorgrond draaien.
Sommige processen hebben lange tijd nodig om hun taak te vervullen maar
hebben daarvoor geen invoer nodig. Voorbeelden van zulke processen zijn
het compileren van een groot programma en het maken van een lijst van
bestanden die op de harde schijf staan. We zullen hiervan later een voorbeeld
zien.

5.3 Processen in de achtergrond zetten en stoppen

Om procesbeheer te demonstreren is er in Linux zelfs een speciaal com-


mando: yes. Dit commando laat continue een regel met de letter y op het
scherm zien. Voer het commando maar eens uit.
Om het proces te stoppen kun je de toetsencombinatie CTRL+C gebruiken.
Om de uitvoer te onderdrukken kunnen we deze naar een soort ”zwart gat”
sturen. Dit doe je op de volgende manier: yes > /dev/null. Voer dit
commando uit. Dit is al al veel beter. Maar het probleem is dat de prompt
niet terugkomt. De uitvoer gaat wel ergens anders naartoe, maar het proces
draait nog steeds op de voorgrond.
Om een proces na het opstarten onmiddellijk naar de achtergrond de sturen
moet je een ampersand (&) achter het commando zetten. Voer het com-
mando yes > /dev/null & maar eens uit. Nu zie je dat de prompt wel
terugkeert. Controleer welke processen op dit moment in uitvoering zijn
met het commando ps:

[student@FREGGEL student]$ yes > /dev/null &


[1] 3178
[student@FREGGEL student]$ ps
PID TTY TIME CMD
3000 pts/1 00:00:00 bash
3178 pts/1 00:00:03 yes
3179 pts/1 00:00:00 ps
5.3. PROCESSEN IN DE ACHTERGROND ZETTEN EN STOPPEN 47

[student@FREGGEL student]$

Je kan een proces beëindigen (”killen”) via het commando kill. Dit pro-
gramma neemt als argument het PID van het proces dat je wenst te beëindigen.
Beëindig nu het yes-proces en controleer of het gelukt is door weer de lijst
van processen in uitvoering te vragen.
Het kill commando zonder opties vraagt vriendelijk aan het proces in
uitvoering of het zou willen stoppen. Wanneer zich een programma heeft
”opgehangen” zal het echter niet op zo een vriendelijke vraag reageren. Je
moet dan een ander signaal naar het proces sturen. Dit doe je via de optie
-s signaal. Het signaal voor halsstarrige programma’s is SIGTERM. Om zo
een programma te beëindigen gebruik je dus het commando
kill -s SIGTERM PID.
Het yes commando dient natuurlijk enkel als voorbeeldje, het is niet meteen
een nuttig commando. Een voorbeeld van een commando dat wel nuttig
werk doet en ook best in de achtergrond kan uitgevoerd worden is updatedb.
Dit programma gaat na welke bestanden er allemaal in het bestandsysteem
zitten en slaat deze op in een gegevensbank. Deze gegevensbank kan achteraf
geraadpleegd worden met het commando locate. Op die manier kan je
in Linux zeer snel een bestand terugvinden. Wanneer je niet meer weet
waar het staat gebruik je locate bestandsnaam. Locate zal dan in de
gegevensbank die updatedb heeft opgebouwd zoeken waar het bestand staat.
Dit gaat veel sneller dan de verschillende harde schijven na te pluizen op zoek
naar het bestand. Probeer bijvoorbeeld eens het commando locate gimp.
Linux draait updatedb iedere nacht zodat je de volgende dag weer een up-
to-date gegevensbank hebt. Je kan echter ook zelf updatedb uitvoeren, bi-
jvoorbeeld nadat je een aantal programma’s hebt geı̈nstalleerd. Kopieer
bijvoorbeeld eens het bestand ”LEESMIJ” naar het bestand ”LEESMI-
JOOK”. Start vervolgens updatedb in de achtergrond (updatedb &). Je
kan nu gewoon verder werken in de shell terwijl updatedb de gegevensbank
bijwerkt (je kan het programma updatedb best als systeembeheerder uitvo-
eren, anders heeft het programma niet voldoende toegangsrechten om het
volledige bestandssysteem te doorzoeken.
Tenslotte nog een korte uitleg over hoe het voorbeeldje in het begin van dit
hoofdstuk werkt:

• Start eerst een editor op, bijvoorbeeld vim (we zullen niet leren hoe
deze editor werkt) met het commando vim test.txt.

• Nu heeft iemand ons gevraagd het ”LEESMIJ” bestand naar de /tmp


map te kopiëren. Daarom willen we de editor naar de achtergrond
verplaatsen. Dit gaat via de toetsencombinarie CTRL+Z.
48 HOOFDSTUK 5. PROCESSEN EN PROCESBEHEER

• Kopieer het ”LEESMIJ” bestand naar de map ”/tmp” onder de naam


”HIERISLEESMIJ”.

• Om nu terug over te schakelen naar de editor moeten we een proces


uit de achtergrond terug naar de voorgrond halen. Dit gaat via het
commando fg (foreground). Het programma neemt (eventueel) als
parameter het volgnummer van het proces in de achtergrond. Wan-
neer je een proces naar de achtergrond stuurt verschijnt er steeds
[volgnummer] PID. Bij het naar de achtergrond sturen van onze ed-
itor was het volgnummer gelijk aan 1. Om de editor terug naar de
voorgrond te krijgen typen we dus fg %1.

• Je sluit de editor af door een dubbelpunt te typen, vervolgens de letter


q (quit) en daarna op ENTER te drukken.
Hoofdstuk 6

Syntax van de gebruikte


commando’s

chmod [OPTION]... MODE[,MODE]... FILE...


Each MODE is one or more of the letters ugoa,
one of the symbols +-= and
one or more of the letters rwx

cd [-PL] [dir]

cp [OPTION]... SOURCE DEST


cp [OPTION]... SOURCE... DIRECTORY

ls [OPTION]... [FILE]...
-a, --all do not hide entries starting with .
-d, --directory list directory entries instead of contents
-l use a long listing format

mkdir [OPTION] DIRECTORY...

mv [OPTION]... SOURCE DEST


mv [OPTION]... SOURCE... DIRECTORY

ps [OPTION]...
a all w/ tty, including other users
u user-oriented
x processes w/o controlling ttys

tail [OPTION]... [FILE]...


-n, --lines=N output the last N lines, instead of the last 10

49
50 HOOFDSTUK 6. SYNTAX VAN DE GEBRUIKTE COMMANDO’S

useradd [-u uid [-o]] [-g group] [-G group,...]


[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-n] [-r] name

yes [OPTION]... [STRING]...


Bibliografie

[1] easy computing gids linux, uitgever easy computing nv, 1999, ISBN
90-5167-298-5, aut: michael wielsch

[2] operating system concepts, 5th edition, uitgever addison-wesley,


1998, ISBN 0-2001-54262-5, aut: abraham silberschatz en peter baer
galvin

[3] operating systems: ontwerp en implementatie, uitgever academic ser-


vice, 1991, ISBN 90-6233-582-9, aut: andrew s. tanenbaum

[4] http://www.gnu.org/

[5] http://www.linuxdoc.org/LDP/gs/

51

You might also like