Wat is linux? openSUSE 13.1
1
Inhoud van de opleiding Linux Wat gaan we doen in de lessen Linux? Introductie: "wat is Linux" (vandaag) Installatie van OpenSUSE Software installatie onder Linux Netwerkinstellingen (Internet) Command Line Interface (CLI) Bootproces van Linux (runlevels en INIT) Configuratietools (Yast) User- en groupmanagement Rechtenbeheer Samba X-windows configuratie Desktopenvironment Bootloaderconfiguratie Printen in Linux (Cups) 2
Introductie Linux – opdracht A Wat is Linux? Wat is een distributie? Wat zijn de verschillen? Wat zijn de overeenkomsten?
Welke distributies kennen we? Hoe kunnen we deze indelen? Wat is het verschil tussen betaalde en gratis Linux? Waar is Linux goed in?
3
4
Geschiedenis van Linux (1) De GNU-wereld is alle Unix-tools in opensource gaan nabouwen. Alleen de kernel van Unix moest gekocht worden Professor Tannenbaum (Vrije Universiteit Amsterdam) heeft een kernel gebouwd: minix. Vooral om studenten te laten zien hoe een kernel in elkaar zit Linus Torvalds (programmeur en student ICT) is op de Universiteit met minix gaan werken en besloot als testje zelf een Unix-kernel te gaan bouwen. Hij heeft alle code die hij hiervoor schreef gratis voor iedereen ter beschikking gesteld, met de vraag of anderen hem willen helpen. 5
Geschiedenis van Linux (1) Daarnaast werden initiatieven ontwikkeld voor vrije (open-source) software (GNU) (Richard Stallman)
GNU betekent: GNU’s Not Unix Linus heeft zich later bij GNU aangesloten, gevolg: Linux valt onder de GPL-licentie! Officiële naam van Linux is nog steeds: GNU\LINUX. Alleen debian gebruikt dit nog. 6
Linus Torvalds
7
Geschiedenis van Linux (2) De GNU organisatie heeft als doel: volledig vrij te gebruiken software GNU staat voor: GNU is Not Unix. GNU heeft de GPL licentie (copyleft) op de markt gebracht die iedereen kan gebruiken: GPL: GNU General Public License:
Copyleft symbool
Alle GPL-software mag ‘vrij’ gebruikt worden (inclusief aanpassingen en uitbreidingen) Alle GPL-software mag aan anderen worden doorgegeven, mits: Vermelding van de auteur(s) Publicatie van de (gewijzigde) broncode Verkochte software moet ook onder GPL-licentie vallen
LET OP: Niet alle gratis software is gepubliceerd onder de GPL-licentie (BSD) 8
Geschiedenis van Linux(3) Linux: Eigenlijk alleen de kernel Daarnaast zijn er duizenden tooltjes / programmatjes en commando’s voor Linux geschreven, die allemaal ook onder de GPL-licentie zijn gepubliceerd, en ook nodig zijn bovenop de kernel Combinaties van de kernel met bijbehorende tooltjes, die onderling zijn getest worden distributies genoemd.
Een distributie is dus een verzameling van tooltjes (met een bepaald doel) die goed werken op een kernel. Vaak met extra’s: Beheertools Ondersteuning 9
Belachelijk lange distributielijst Red Hat SUSE Debian Mandrake Ubuntu (en subs) Edubuntu Kubuntu
Knoppix (en subs) Helix
Fedora Backtrack openSuse 10
Mandriva Slackware SLES / SLED Debian NLD Heel veel live CD’s: Ubuntu
NIET: BSD FreeBSD Niet onder GNU
Overzicht distributies: http://upload.wikimedia.o rg/wikipedia/commons/e/ ed/LinuxDistroTimeline.p ng Te veel om te onthouden Deze is bijgewerkt tot 2010
11
= Overzicht distributies: http://upload.wiki media.org/wikiped ia/commons/e/ed/ LinuxDistroTimeli ne.png Te veel om te onthouden
En deze tot 2009 12
Misverstanden Misverstanden: Linux is altijd gratis: neen Linux is altijd open source: ja / neen
Vrij is niet altijd ‘gratis’ Het woord ‘vrij’ of ‘free’ betekent vooral dat het gebruik ‘vrij’ is. Daarom wordt tegenwoordig vaker ‘open’ gebruikt (als in open source)
Waarom betalen voor linux? De moeite van het bij elkaar zoeken van de onderdelen (kwaliteit van de distributie…) Speciaal doel van de distributie Het ‘kopen’ van ondersteuning Handleidingen Beheer-tools (Yast en Anaconda) 13
Belangrijk! Belangrijk om aan te wennen: ALLES is in Linux een bestand, onderdeel van het bestandsysteem Alle apparaten worden in het bestandsysteem opgenomen Ook (zelfs) het geheugen en de processen zijn als bestanden in het bestandsysteem terug te vinden.
14
Command-Line Interface (CLI) openSUSE 13.1
1
Les 3: Kennismaking CLI Vandaag: Bijzondere kenmerken van Linux Command Line Interface (CLI) Standaard instellen van de CLI Elementaire commando’s Help Directory navigatie Commando’s
2
Kennismaking Linux (bijzondere kenmerken) Alles (écht alles) is een onderdeel van één bestandsysteem Het bestandsysteem begint bij de root “/” Alle gegevens staan erop in directory’s
Alle apparaten worden gekoppeld aan een directory (zelfs de processen in het geheugen) Extra partities worden aan een directory gekoppeld
Linux is volledig multi-user
3
Copyright: Pieter Moens
Command Line Interface Command Line Interface Er zijn verschillende interfaces Bourne-shell BASH (Bourne Again SHELL)
Commando’s moeten worden vertaald naar systeemopdrachten: Command interpreter = gelijk aan de functie van command.com onder DOS. De Shell bepaalt de mogelijkheden: Filename completion Redirecting en piping Gebruik van kleuren
4
Copyright: Pieter Moens
Werken in de CLI Aandachtspunten: Hoofdlettergevoelig, ook in bestandsnamen Geen gebruik van extensies Alles kan als een programma worden uitgevoerd (afhankelijk van de rechten) Scheidingsteken tussen directory’s is de / Met de [Tab] kun je de bestands- en directory namen afmaken (gebruik dat dan ook, om fouten te voorkomen) Spaties zijn verplicht na een commando Gebruik van wildcards ‘?’ en ‘*’ gelijk aan DOS ? = één willekeurig teken * = een reeks aan willekeurige tekens
5
Copyright: Pieter Moens
Commando’s Syntax: commando [-|--][woord] [-|--][woord] … etc.
Het commando moet vooraan de opdrachtregel Er MOET een spatie achter de naam van het commando Extra informatie en/of parameters worden gescheiden door een spatie Extra informatie en/of parameters kunnen per commando verschillen
ls ls -l ls /etc -la 6
Copyright: Pieter Moens
Voorbeelden commando’s (cp) Syntax: cp Bron [Doel] [-Parameters] Voorbeeld 1: cp /etc/* kopieer alle bestanden uit de map /etc naar de actieve directory Voorbeeld 2: cp /etc /home/test -r kopieer de directory /etc naar de directory /home/test en neem alle subdirectory’s mee Voorbeeld 3: cp . /home/test kopieer alle bestanden uit de huidige actieve directory naar de map /home/test
7
Copyright: Pieter Moens
Veelgebruikte commando’s Directory- en bestandsnavigatie ls of ls -l cp rm cd mkdir rmdir mv pwd whoami Touch
8
Copyright: Pieter Moens
(copy) (remove) (change current directory) (make directory) (remove directory) (move / rename) (print Working Directory) (who am I)
Veelgebruikte commando’s Bestanden bekijken cat cat /map/bestand tac tac /map/bestand cat met more cat /map/bestand | more cat met less cat /map/bestand | less less less /map/bestand
9
Copyright: Pieter Moens
Help opvragen en gebruiken Er is een aantal hulpsystemen ingebouwd: Man-pages (handleiding = manual) Voorbeeld: man grep
(=manual van grep)
Ingebouwde help in de commando’s met -h of --h
help man -h cp --h md --h
HOWTO (uitgebreidere handleiding hoe iets werkt – ook via internet beschikbaar)
10
Copyright: Pieter Moens
Zoeken naar bestanden en directory’s In Linux kunnen we op verschillende manieren zoeken naar bestanden en directories Zoeken naar bestanden en directories: locate [naam]
Zoeken naar bestanden en directories met een deel van de naam Grep gebruiken om de output van een ls te filteren: ls –la /etc | grep init
Zoeken in het bestandsysteem (ook in de bestanden) find
11
Copyright: Pieter Moens
Vanaf nu: Vanaf nu gaan we standaard in de CLI werken. Tijdens de installatie hebben we al gekozen voor default runlevel 3 Overigens kunnen we daarna ‘doorstarten’ naar de GUI. Eenvoudig aan te passen vanuit yast (System -> Services Manager)
12
Copyright: Pieter Moens
Piping & Redirecting (CLI) openSUSE 13.1
1
Les 4: Piping en Redirecting Vandaag: Redirecting informatie naar het filesysteem Piping informatie tussen processen Enkele voorbeelden
2
Copyright: Pieter Moens
Copyright: Pieter Moens
Piping en redirecting Twee totaal verschillende tools worden wel vaak gecombineerd Piping: de uitvoer van een programma (proces) doorsluizen naar een ander programma (om verder te ‘bewerken’) Redirecting: de uitvoer omleiden naar een ander apparaat (plaats in het filesystem)
3
Copyright: Pieter Moens
Piping procesdata Piping-symbool: ‘|’ (verticale streep boven ‘\’) Met piping kan de output van een proces worden omgeleid naar de input van een ander proces Piping kan worden herhaald (in één commando meerdere pipes na elkaar opgeven)
Voorbeelden: ls /etc -l | more cat /etc/bestand | grep init ls -l | sort -r ls -l /etc/init.d | grep root | sort | less 4
Copyright: Pieter Moens
Redirecting de ‘standard output’ Redirect-symbool: ‘>’ of ‘<’ Append-symbool: ‘>>’ Met ‘>’ of ‘>>’ kunnen we de output van een proces omleiden naar een bestand (dus in Linux ook naar een apparaat) Voorbeelden: ls -l > /home/user/bestandslijst ls *mp3 -la >> /home/user/bestandslijst cat /etc/configure > /home/user/copy_conf
5
Copyright: Pieter Moens
Tekstmanipulatie (CLI), grep, su en sudo openSUSE 13.1
1
2
Les 5: Tekstmanipulatie Vandaag: teksten aanpassen Verschillende manieren
vi en vim Andere editors nano / pico Editor
su en sudo 2
Copyright: Pieter Moens
3
Werken met vi en vim Bestanden bewerken vi of vim (vi improved) Twee modi (command en insert) :w opslaan (write) :q afsluiten (quit) :q! afsluiten zonder opslaan :wq afsluiten met opslaan :x afsluiten met opslaan
nano pico grep (zoeken en filteren) awk (programmeer- en scripttaal)
Handige tools mc
3
Copyright: Pieter Moens
Midnight Commander = nagebouwde norton commander (nc)
Andere editors vi of vim is in bijna iedere distributie aanwezig Je zult moeten kunnen met vi en vim Sommige distributies kennen ook eenvoudiger editors: edit editor nano Pico
Binnen openSUSE gaan we later ook nano en pico installeren (hoofdstuk “software installatie”)
4
Grep (1) Met het commando ‘grep’ kunnen we in de command line ‘filteren’ Grep laat de regels door, waarin het opgegeven patroon (tekst) voorkomt ‘grep’ wordt meestal gebruikt in combinatie met piping Voorbeeld: ls –l /etc | grep init Grep kan ook zelfstandig werken, zie: man grep 5
Grep (2) Syntax: Grep [opties] patroon [Bestand] Voorbeeld: ls -l /etc/init.d/ | grep “rc” Cat /etc/bestand | grep directie Grep kan ook zelfstandig werken, zie: man grep Geef na grep en het patroon de bestandsnaam waarin je wilt filteren grep “opleiding” /home/data/sollicitatiebrief
6
Grep (3) Het filter PATROON in grep: “letterlijke tekst” Lijst van mogelijke karakters tussen [ en ]: [abcd] = òf een a, òf een b, etc… [0123456789] een willekeurig cijfer Structuren in de tekst:
‘.’ (punt) ‘?’ (vraagteken) ‘*’ (asterisk) ‘+’ (plus) ‘{n}’ ‘{n,}’ ‘{,m}’ ‘{n,m}’
‘.’ matches any single character. The preceding item is optional and will be matched at most once. het voorgaande item 0 if meer keer herhalen. het voorgaande item 1 if meer keer herhalen. het voorgaande item precies n keer herhalen. het voorgaande item precies n of meer keer herhalen het voorgaande item maximaal m keer herhalen het voorgaande item minimaal n, maar maximaal m keer herhalen
Maar ook combinaties zijn mogelijk [123]{3}
7
3 keer een 1, een 2 of een 3
su en sudo (1) In linux werk je standaard met een ‘beperkt account’ Zonder beheer-rechten, maak je ook geen ‘dodelijke’ fouten Wil je een commando uitvoeren met root-rechten, dan type je ‘sudo’ voor het commando Na het opgeven van het root-wachtwoord, wordt alleen dat commando uitgevoerd met root-rechten Voorbeeld (als eigen gebruiker ingelogd): > cat /etc/at.deny permission denied > sudo cat /etc/at.deny werkt wel…
8
su en sudo (2) Met het commando sudo log je NIET uit als gewone gebruiker. Je blijft dezelfde gebryiker, alleen krijg je de extra rootrechten erbij Je ziet dus ook alleen de bestanden (en tools) die een gewone gebruiker mag zien. Je wordt dus geen root, maar krijgt alleen diens rechten Voorbeeld (als eigen gebruiker ingelogd): > init 6 ‘init’ wordt niet gevonden > sudo init 6 ‘init’ wordt niet gevonden
9
su en sudo (3) Met het commando su (superuser) log je NIET uit als gewone gebruiker, maar laadt je een extra shell, waarin je wel root wordt In de nieuwe sub-shell wordt je volledig ‘root’, inclusief de tools en rechten De gewone gebruiker logt niet uit, maar wordt ‘even aan de kant geschoven’ Met ‘exit’ sluit je de sub-shell weer af, en wordt je weer de gewone gebruiker die je al was Voorbeeld (als eigen gebruiker ingelogd): > init 6 ‘init’ wordt niet gevonden > su gevolgd door het ww van de root > init 6 werkt nu wel
10
Linux user- en groupmanagement openSUSE 13.1
1
Copyright: Pieter Moens
Vandaag: Vandaag: Users aanmaken Vanuit de CLI Vanuit de GUI
Groepen aanmaken Vanuit de CLI Vanuit de GUI
Introductie “Rechten in Linux” 2
Copyright: Pieter Moens
User- en Group beheer Userinformatie wordt bijgehouden in: /etc/passwd
Groupinformatie wordt bijgehouden in: /etc/group
Wachtwoordinformatie wordt bijgehouden in: /etc/shadow
3
Copyright: Pieter Moens Copyright: Pieter Moens
/etc/passwd Opzet van /etc/passwd henk:x:1001:100:Henk de Vries:/home/henk:/bin/bash
Scheidingsteken is “:” 1: Usernaam 2: wachtwoord (hash) nu in /etc/shadow 3. UID (User ID) 4. GID (primary Group ID) 5. Volledige naam van de user 6. home-directory van de user 7. default shell (bash)
4
Copyright: Pieter Moens Copyright: Pieter Moens
/etc/group Opzet van /etc/group testgroep:x:101
Scheidingsteken is “:” 1: Group-naam 2: wachtwoord (hash) nu in /etc/shadow 3. GID (primary Group ID)
5
Copyright: Pieter Moens Copyright: Pieter Moens
/etc/shadow (1) Opzet van het bestand /etc/shadow henk:XCRSFR:31245:10:23:5:45::
Scheidingsteken is “:” 1: Usernaam: 2: Hash van het wachtwoord (normaal veel langer) 3: Aantal dagen sinds 1-1-1970 waarop het ww het laatst gewijzigd is 4: Aantal dagen tot u het ww MAG wijzigen 5: Aantal dagen tot u het ww MOET wijzigen 6: Aantal dagen voordat het ww verloopt wanneer de gebruiker een waarschuwing krijgt. 7: Aantal dagen nadat het ww is verlopen, wanneer het gebruikers-account wordt geblokkeerd 8: Aantal dagen sinds 1-1-1970 waarop het account is geblokkeerd
6
Copyright: Pieter Moens Copyright: Pieter Moens
/etc/shadow (2) Let OP: In /etc/shadow kan op de plaats van de hashwaarden van het wachtwoord ook andere informatie staan: *, !, !!: Deze tekens houden in dat het account is gedisabled!
7
Copyright: Pieter Moens Copyright: Pieter Moens
Mogelijkheden nieuwe users Mogelijkheden om nieuwe users aan te maken: Handmatig toevoegen aan de configuratie-file Gebruikmakend van de CLI-tools: useradd groupadd
Gebruikmakend van de GUI-tools: In SUSE: Yast
8
Copyright: Pieter Moens
Uitwerking handmatig user aanmaken (1) Handmatig de /etc/passwd-file aanpassen: Voeg extra regel toe in /etc/passwd Usernaam Wachtwoord (x – daarna naar /etc/shadow) UID GID Full Name Home-directory (bestaat nog niet) Default shell
Geef het wachtwoord op en verplaats dit naar /etc/shadow (passwd en pwconv) Maak daarna de home-directory met de juiste rechten handmatig aan (mkdir, chown en chmod). Vul de home-directory met standaardinhoud (kopieer /etc/skel naar de home-directory).
9
Copyright: Pieter Moens
Uitwerking handmatig user aanmaken (2) Voeg de volgende regel toe aan /etc/passwd naam:x:1001:100:Lange naam:/home/naam:bin/bash
Geef (als root) het wachtwoord op: > passwd naam
Verplaats de wachtwoord info naar /etc/shadow > pwconv
Maak de home-directory > mkdir /home/naam
Maak de user eigenaar van de home-directory > chown naam /home/naam
10
Copyright: Pieter Moens
Uitwerking handmatig user aanmaken (3)
Kopieer de inhoud van /etc/skel naar de home-directory: > cp /etc/skel/ /home/naam -r > chown naam /home/naam
Zorg dat alleen de eigenaar in deze map kan komen: > chmod –R go-rwx /home/naam Over deze rechten later meer… Kortom: Lastiger kunnen we het niet maken, wel makkelijker: useradd (met één commando al deze handelingen automatisch)
11
Copyright: Pieter Moens
Uitwerking handmatig groep aanmaken (1) Handmatig de /etc/group-file aanpassen: Voeg extra regel toe in /etc/group groupnaam Wachtwoord (x – daarna naar /etc/shadow) GID
Geef het wachtwoord op en verplaats dit naar /etc/shadow (passwd en pwconv)
12
Copyright: Pieter Moens
Uitwerking handmatig groep aanmaken (2) Voeg de volgende regel toe aan /etc/group groepnaam:x:500
Geef (als root) het wachtwoord op: > passwd –g groepnaam
Verplaats de wachtwoord info naar /etc/shadow > grpconv
Kortom: Lastiger kunnen we het niet maken, wel makkelijker: groupadd (geïntegreerde tool)
13
Copyright: Pieter Moens
Gebruik de automatische tools Gebruik: useradd groupadd
Doe alles in één opdracht. Inclusief aanmaken en inrichten van de home-directory Inclusief instellen van de wachtwoorden
Gebruik de commando’s: man useradd man groupadd
om uit te zoeken hoe het moet…
14
Copyright: Pieter Moens
Useradd, userdel, usermod Useradd:
-d (pad naar home-directory) -m home-directory aanmaken -c Commentaar en/of volledige naam -g Group-id -G Groupname -u User-id -p Password (onbeveiligd, gebruik liever het losse commando: passwd
Userdel: Op basis van naam of user-id
Usermod: Aanpassingen met behulp van bovenstaande opties
15
Copyright: Pieter Moens
User- en Group management in de GUI De bestanden /etc/passwd, /etc/group en /etc/shadow kunnen ook vanuit de grafische schil beheerd worden: Start Yast (met het root-wachtwoord) Ga naar: “Security and Users”
Klik op “User Management” of “Group Management” Dit zijn dezelfde tools Met een radio-button kies je voor “users” of “Groups”
16
Copyright: Pieter Moens Copyright: Pieter Moens
17
Copyright: Pieter Moens Copyright: Pieter Moens
18
Copyright: Pieter Moens Copyright: Pieter Moens
19
Copyright: Pieter Moens Copyright: Pieter Moens
20
Copyright: Pieter Moens Copyright: Pieter Moens
21
Copyright: Pieter Moens Copyright: Pieter Moens
22
Copyright: Pieter Moens Copyright: Pieter Moens
Vandaag: Vandaag hebben we: Kennis gemaakt met de bestanden: /etc/passwd /etc/group /etc/shadow
Kennis gemaakt met de tools: useradd groupadd yast chown chmod 23
Copyright: Pieter Moens Copyright: Pieter Moens
Traditionele Rechten in Linux openSUSE 13.1
1
Copyright: Pieter Moens
Les 7: Traditionele rechten Vandaag: Welke rechten kent Linux? Welke objecten krijgen rechten? Verschillende notaties Hoe zien we de rechten? Welke tools hebben we hiervoor?
2
Copyright: Pieter Moens
Welke rechten kent Linux? De rechten: r w x op een bestand Afko: betekenis r: read: lezen van de inhoud van het bestanden w: write: schrijven in het bestand (inhoud) x: eXecute: uitvoeren van programma of script.
De rechten: r w x op een directory Afko: betekenis r: read: de bestanden in de directory ‘zien’ w: write: bestanden aanmaken, wissen, hernoemen x: eXecute: de directory kunnen openen / activeren
3
Copyright: Pieter Moens
Gebruik van de rechten (1) Een directory is een bestand !!! Een bijzonder bestand, met verwijzingen naar andere bestanden (en dus ook weer directory’s) De rechten op een directory, hebben betrekking op de inhoud van het directory-bestand.
Voorbeelden: Om een nieuw bestand in een directory te kunnen maken, moet je een nieuwe verwijzing in de directory aanmaken. Hiervoor heb je SCHRIJFrechten (w) op de directory nodig. Om een bestand uit een directory te kunnen wissen, moet je een verwijzing in de directory verwijderen. Hiervoor heb je SCHRIJFrechten (w) op de directory nodig.
VRAAG: wat heb je nodig om een bestand te hernoemen?
4
Copyright: Pieter Moens
Gebruik van de rechten (2) Linux kent geen “overerving” van rechten: Elk bestand (dus ook een directory) heeft zijn eigen rechten De rechten van de directory, gelden NIET voor de bestanden in de directory De rechten van een bovenliggende directory werken niet op onderliggende directories
5
Copyright: Pieter Moens
Waarop kunnen we de rechten geven? We kunnen de rechten geven aan: De eigenaar (user)
De eigenaar-groep (group) De rest van de wereld (other)
Deze rechten kunnen dus alleen op ‘eigenaren’ of ‘iedereen’ gegund worden Elke van deze 3 ‘eigenaren’ kunnen de 3 verschillende rechten hebben of juist niet…
6
Copyright: Pieter Moens
De notatie van de rechten: De notatie voor een map met: Eigenaar: henk Groep: tessie Een r, w of x geeft aan dat de rechten ‘aan’ staan Een streepje geeft aan dat de rechten ‘uit’ staan
Voorbeeld 1:
[rwxrwxrwx]
De eerste 3 rechten gelden voor de owner De tweede 3 rechten gelden voor de group De laatste 3 rechten gelden voor de rest
Voorbeeld 2:
[rw-r--r--]
De user/eigenaar heeft “read” en “write” De group heeft alleen “read” De other/rest van de wereld heeft alleen “read”
7
Copyright: Pieter Moens
Instellen van de eigenaren (1) De user/eigenaar wordt ingesteld met: chown (change owner) Syntax: chown usernaam /dir/dir/file Meer info: man chown
De group/eigenaar-groep wordt ingesteld met: chgrp (change group) OF chown :groepnaam (let op de “:”) Syntax: chgrp groupnaam /dir/dir/file Meer info: man chgrp
chown pieter:users /home/test Met chown zonder dubbele punt: usernaam Met chown met een dubbele punt: groepnaam
8
Copyright: Pieter Moens
Toewijzen van de rechten… (1) Rechten worden toegekend met: chmod
per object (u, g, o) worden de rechten met “+” toegekend per object (u, g, o) worden de rechten met “–” verwijderd Per object kan ook een “-” op de plaats van het recht dat niet wordt toegekend staan. rwxr-x--x
9
Copyright: Pieter Moens
Toewijzen van de rechten… (2) Rechten worden toegekend met: chmod Syntax: chmod [u|g|o][+|-][r|w|x] naam map/bestand Meer info: man chmod
Rechten toevoegen: per object (u, g, o) worden de rechten met + toegekend
Rechten verwijderen: per object (u, g, o) worden de rechten met - gewist
10
Copyright: Pieter Moens
Toewijzen van de rechten… (3) Voorbeelden: chmod u+rw /var/test Geef de gebruiker (owner) rw rechten op /var/test
chmod g+rx /var/test Geef de ownergroup rx rechten op /var/test
chmod o-rwx /var/test Haal de rechten rwx op /var/test weg voor de rest
chmod u+rx-w /var/test Geef de gebruiker de rechten rx en haal het recht w op /var/test weg.
chmod go-x /var/test -R
Haal het ‘x’-recht weg bij de group en de other en doe dit ook voor alle subdirectories.
11
Copyright: Pieter Moens
Andere notatie: Gebruik de rechten rwx alsof het 3 bits zijn: Geef de bits de ‘gewone’ waarden 4, 2 en 1 4 = read, 2 = write 1 = execute
Tel de waarden van de rechten bij elkaar op: 6 = read en Write 5 = read en execute 7 = read, write en execute 0 = geen rechten
Geef de rechten voor alle objecten in één keer weer: Chmod 764 /var/testfile de eigenaar heeft rwx, de groep rw- en de rest alleen r-12
Copyright: Pieter Moens
Hoe kan ik zien welke rechten er zijn uitgedeeld? Hoe kan ik zien welke rechten er zijn uitgedeeld? Gebruik: ls – l
13
Copyright: Pieter Moens
Rechten… Vooraan de regel staan 10 (!) codes Eerste is bijzonder – zie volgende dias Daarna 3 rechten voor de user (rwx) Daarna 3 rechten voor de groep (rwx) Daarna 3 rechten voor de rest (rwx)
‘-’ = het recht op die plaats staat UIT
14
Copyright: Pieter Moens
Rechten in de GUI In de GUI is het allemaal wat makkelijker… point and click (rechts –> properties…).
15
Copyright: Pieter Moens
Nog één ding… Nog even wat speciale informatie: Sticky bit… Wanneer het sticky-bit op een directory aanstaat kan een user alleen zijn eigen bestanden wissen. Het is dus niet langer voldoende om w(rite) te hebben om te kunnen wissen (de user moet ook owner zijn) Sticky-bit wordt een ‘t’ op de plek van de ‘x’ voor ‘other’ Sticky-bit is niet altijd (meer) geïmplementeerd Probeer het uit en je weet of het werkt…
SUID (s) en GUID (S) Start een programma met ‘root’-rechten (ook als user) De ‘s’ of ‘S’ staat op de plaats van de ‘x’
16
Copyright: Pieter Moens
Sticky Bit Sticky bit heeft de waarde 1 SGID (S) heeft de waarde 2 SUID (s) heeft de waarde 4 Voorbeeld: 6764 betekent:
SUID en GUID staan aan Sticky bit staat uit User heeft rwx Group heeft rwOther heeft r--
Andere notatie is: -rwSrwsr-t
Voorbeeld 2: 7755 is -rwsr-Sw-t
17
Copyright: Pieter Moens
Vandaag… Vandaag hebben we Kennis gemaakt met de rechten: read, write, execute user, group, other
Kennis gemaakt met de tools: chown chmod chgrp
Links naar bestanden Symbolic link Hard link
Link-opdrachten link ln
18
Copyright: Pieter Moens
Opdrachten Maak de volgende opdrachten…
19
Copyright: Pieter Moens
Rechten in Linux met ACL’s openSUSE 13.1
1
Copyright: Pieter Moens
Copyright: Pieter
Les 8: Rechten en ACL Vandaag:
Korte herhaling traditionele rechtensysteem Wat is een ACL? Welke ACL kent Linux?
Welke tools hebben we hiervoor? 2
Copyright: Pieter Moens
3
Traditionele rechten (1): Traditionele rechten (1)
Herhaling Traditionele rechten: 3 Objecten: •Gebruiker die eigenaar is (user) •Groep die eigenaar is (group) •De rest van de wereld (other) Elk object kan 3 rechten krijgen? •Read (r) •Write (w) •Execute (x) 3
Copyright: Pieter Moens
Copyright: Pieter Moens
4
Traditionele rechten (2) Nadelen Traditionele rechten: Er kan per bestand/directory maar aan 1 gebruiker rechten worden uitgedeeld Er kan per bestand/directory maar aan 1 groep rechten worden uitgedeeld Een gebruiker kan standaard maar van 1 groep lid zijn
Kortom: niet flexibel genoeg
4
Copyright: Pieter Moens
Copyright: Pieter Moens
5
Traditionele rechten (3) Wat hebben we nodig om flexibeler te zijn – Per bestand/directory meer dan 1 gebruiker rechten kunnen geven. – Per bestand/directory meer dan 1 groep rechten kunnen geven. – Een gebruiker moet van meerdere groepen lid kunnen zijn Hierna de oplossingen in Linux
5
Copyright: Pieter Moens
Copyright: Pieter Moens
6
ACL (1) Welke uitbreidingen kent Linux? Om Linux compatible te maken met Windows (voor clients) gebruiken we SAMBA. Binnen Linux kunnen we de POSIXcompatible ACL's gebruiken De POSIX-ACL's zijn beschikbaar vanaf Ext2, Ext3, Ext4 en Reiser. De POSIX-ACL-oplossing is compatible met zowel het traditionele systeem, alsook SAMBA 6
Copyright: Pieter Moens
Copyright: Pieter Moens
7
ACL (2) Hoe werken de ACL's? In aanvulling van de traditionele eigenaars kunnen we extra users en groepen op een directory of bestand extra rechten geven De traditionele rechten blijven bestaan. De ACL-rechten komen er extra bij
7
Copyright: Pieter Moens
Copyright: Pieter Moens
8
ACL (3) Hoe werken de ACL's? De extra user en groupen worden “named” genoemd: •Named users: op basis van de naam van de gebruiker worden extra rechten toegekend. •Named groups: op basis van de naam van de groep worden extra rechten toegekend. In een nieuw systeem worden deze named objecten en de oude rechten getoond 8
Copyright: Pieter Moens
Copyright: Pieter Moens
9
ACL (4) Type:
owner named user1 named user 2 owning group named group1 named group2 mask other 9
Text Form:
user::rwx user:name1:rwuser:name2:r-x group::rwx group:name1:rwgroup:name2:r-x mask::rwx other::rwx
Copyright: Pieter Moens
Copyright: Pieter Moens
10
ACL (5) De rechten van de user en other zijn altijd ook de effectieve rechten De rechten van de named-objecten worden gecombineerd met de instellingen van het “mask” Alleen de rechten die de named user heeft en die in het “mask” voorkomen, zijn de effectieve rechten Voorbeeld:
10
Copyright: Pieter Moens
Copyright: Pieter Moens
11
ACL (6) Entry Type
Text Form
Permissions
named user user:jane:r-x mask mask::rwEffective permissions:
11
r-x rwr--
Copyright: Pieter Moens
Copyright: Pieter Moens
12
ACL (7) Welke tools gebruiken we met ACLrechten? getfacl voorbeelddir Vraag de ingestelde rechten op setfacl -m user:truus:rwx, group:secreten:rwx mydir Stel de rechten rwx in voor de named-user 'truus' en de rechten rwx voor de named-group 'secreten' 12
Copyright: Pieter Moens
Copyright: Pieter Moens
13
ACL (8) Tools: setfacl stelt automatisch het 'mask' in om de effectieve rechten mogelijk te maken Wil je het 'mask' niet automatisch laten uitbreiden moet je '-n' toevoegen.
13
Copyright: Pieter Moens
Copyright: Pieter Moens
14
ACL (9) Het standaard mask voor nieuwe bestanden kunnen we instellen met: umask Een default ACL kunnen we instellen met: setfacl -d -m group:test:r-x mydir stel de default waarden (-m = modify)
14
Copyright: Pieter Moens
Copyright: Pieter Moens
15
ACL (10)
15
> getfacl voorbeelddir
# file: voorbeelddir # owner: tux # group: test user::rwx user:jane:rwx group::r-x group:test2:rwx mask::rwx other::--default:user::rwx default:group::r-x default:group:test3:r-x default:mask::r-x default:other::---
Copyright: Pieter Moens
Copyright: Pieter Moens
16
ACL (11) De default rechten (en mask) worden automatisch meegenomen in de nieuwe sub-directory's (overerven) Nieuwe bestanden krijgen standaard de rechten 666 binnen de rechten van het bestaande mask (van touch). De nieuwe rechten worden de effectieve rechten van rw- op de user, group en other en wat er in het mask is ingesteld: Staat het masker op r-x dan wordt het nieuwe bestand r-16
Copyright: Pieter Moens
Copyright: Pieter Moens
17
ACL (12) Kortom: Met ACL zijn we wel flexibel ACL's zijn niet erg eenvoudig en overzichtelijk Vaak: toch maar kiezen voor SAMBA
17
Copyright: Pieter Moens
Copyright: Pieter Moens
18
ACL (Vandaag) Kennis gemaakt met de noodzaak van ACL's De tools getfacl en setfacl leren gebruiken
Het 'mask' leren gebruiken
18
Copyright: Pieter Moens
Copyright: Pieter Moens
Software installeren
openSUSE 13.1
1
Copyright: Pieter Moens
Copyright: Pieter
2
Vandaag:
Vandaag: Verschillende methoden Voorbeelden
2
Copyright: Pieter Moens
Copyright: Pieter Moens
3
Verschillende manieren van installeren Verschillende manieren van software installeren: Van de distributie-CD/DVD Van de website van de distributeur (update) Downloaden van de software fabrikant: •Packages (rpm en deb) •Compileren
3
Copyright: Pieter Moens
Copyright: Pieter Moens
4
Installatie vanaf de distributie-CD/DVD Plaats de cd of DVD in de drive en start Yast Kies software management Kies vervolgens voor search/patterns/modules
4
Copyright: Pieter Moens
Copyright: Pieter Moens
5
On-line updates Kies voor online updates Voeg een installation source toe!
5
Copyright: Pieter Moens
Copyright: Pieter Moens
6
Packages Meest gebruikte packages: rpm (Redhat Package Manager) •Installeren met rpm of Yast •rpm –i [packagenaam.versienr] •rpm –e [applicatienaam]
deb (Debian Packages) •Installeren met dpkg of Yast •dpkg •apt-get [options] [command] [package ...] –Options: -m, -f, -d –Commands: install, update, remove etc. –Zie helpfiles en howto’s
6
Copyright: Pieter Moens
Copyright: Pieter Moens
7
Compileren Software wordt meestal gedistibueerd als tarball (*.tar.gz) Tar-balls doen twee zaken: Inpakken in één file (tar) Comprimeren (gzip)
Uitpakken in één commando: tar
In de tarball zit vaak (controleer dit) Broncode (.c .h) Configuratie-file met informatie over afhankelijkheden Installatie-istructie 7
Copyright: Pieter Moens
Copyright: Pieter Moens
8
Installatie van een tar-ball 1. Na uitpakken, installeren met: ./configure make make install
2. volg de installatie-instructie VOORWAARDEN voor dit soort installaties: Er moet een C-compiler zijn (bijv: gcc) De benodigde header-files (en veelgebruikte bronbestanden) moeten aanwezig zijn Houdt rekening met verschillen tussen distributies (paden)
8
Copyright: Pieter Moens
Copyright: Pieter Moens
9
Afronding: Software installatie in Linux is NIET gestandaardiseerd Bekijk bij het downloaden of er info bestaat over hoe het te installeren is Gewoon veel doen!
9
Copyright: Pieter Moens
Copyright: Pieter Moens
Devices in het Linux Filesystem openSUSE 13.1
1
Copyright: Pieter Moens
Copyright: Pieter
2
Vandaag: Vandaag: Naamgeving van devices? Hoe gebruiken we devices? Mounten van Devices •CD/DVD •USB •netwerk
2
Copyright: Pieter Moens
Copyright: Pieter Moens
3
Devices Welke devices kennen we? Opslagmedia •Harddisks •Floppy’s •CD/DVD-spelers
Communicatie •Netwerkkaarten •Etc.
Overige apparaten (alle) •toetsenbord en beeldscherm tty1 t/m tty6 •Geheugen •Processor 3
Copyright: Pieter Moens
Copyright: Pieter Moens
4
Devices (2) Devices: Altijd een gestructureerde naam Altijd te vinden onder /dev/
4
Copyright: Pieter Moens
Copyright: Pieter Moens
5
Naamgeving (1): Naamgeving van de devices: Harddisks: /dev/hda, /dev/hdb, etc… (IDE) /dev/sda, /dev/sdb, etc… (SATA)
Partities /dev/hda1, /dev/sdb3, etc (Primaire partities nrs. 1 t/m 4) •De Extended Partition is een bijzondere vorm van primaire partitie
/dev/hda5, /dev/hdb7, /dev/sda5 (Logical drives nrs. >= 5)
Floppy: 5
Copyright: Pieter Moens
/dev/fd0 (eerste floppy) Copyright: Pieter Moens
6
Naamgeving (2): Netwerkkaart: /dev/eth0 /dev/wlan1 /dev/lo
(eerste netwerkkaart) (tweede draadloze netwerkkaart) (Loopback per nic 127.0.0.1)
Printers /dev/lp0
Alle apparaten hebben een naam. Zelfs het apparaat dat niet bestaat: null (alles wat naar null wordt verplaatst verdwijnt)
6
Copyright: Pieter Moens
Copyright: Pieter Moens
7
Mounten Mounten: Het koppelen van een apparaat of schijf/partitie aan het bestandsysteem Koppel het nieuwe apparaat aan een bestaande directory Geef in geval van twijfel de formattering (het gebruikte bestandsysteem) zie volgende dia's
Mount naar een subdirectory van: /media (voor SUSE) /mnt (meer algemeen)
7
Copyright: Pieter Moens
Copyright: Pieter Moens
8
Bestandsindelingen (standaard)
8
adfs affs autofs btrfs cifs coda coherent cramfs devpts efs ext ext2 ext3 ext4
hfs hpfs (ro) iso9660 jfs minix msdos ncpfs nfs ntfs (ro) proc qnx4 ramfs reiserfs romfs
smbfs swap sysv tmpfs udf ufs umsdos usbfs xenix vfat Xfs Xiafs Zfs
Copyright: Pieter Moens
Copyright: Pieter Moens
9
Bestandsindelingen (rood = meest gebruikt)
9
adfs affs autofs btrfs cifs coda coherent cramfs devpts efs ext ext2 ext3 ext4
hfs hpfs (ro) iso9660 jfs minix msdos ncpfs nfs ntfs (ro) proc qnx4 ramfs reiserfs romfs
smbfs swap sysv tmpfs udf ufs umsdos usbfs xenix vfat Xfs Xiafs Zfs
Copyright: Pieter Moens
Copyright: Pieter Moens
10
De opdracht mount (1) Het commando “Mount” Syntax: mount [device] [directory] mount /dev/hda1 /media/c-schijf
Let op: De directory waarnaar gemount wordt moet al bestaan, maar leeg zijn
Voorbeeld 1: mounten van een CD/DVD Voorbeeld 2: mounten van een USB-stick
Voorbeeld 3: mounten van een samba share 10
Copyright: Pieter Moens
Copyright: Pieter Moens
11
Voorbeeld 1: Mounten van een CD/DVD Mounten van een CD/DVD apparaat: Stap 1: Achterhaal de devicenaam van het apparaat Stap 2: Maak een directory en koppel het device hieraan.
CD Mounten: Achterhaal de devicenaam: •dmesg | grep hd •dmesg | grep sd
mkdir /media/cdrom mount /dev/hdc /media/cdrom
11
Copyright: Pieter Moens
Copyright: Pieter Moens
12
Voorbeeld 1: Mounten van een CD/DVD
12
Copyright: Pieter Moens
Copyright: Pieter Moens
13
Voorbeeld 2: Mounten van een USB-stick Mounten van een USB-stick
Maak een directory voor de mount mkdir /media/usbstick
Zoek met dmesg naar de juiste devices dmesg | grep sd Vraag een lijst van USB-devices op met “lsusb”
Mount het volume sda1 aan de nieuwe dir: mount /dev/sda1 /media/usbstick
13
Copyright: Pieter Moens
Copyright: Pieter Moens
14
Voorbeeld 3: Mounten van een netwerkdrive (Samba) Mounten van een Samba of CIFS-share Stap 1: Achterhaal het netwerkpad Stap 2: Maak een directory Stap 3: Mount de share op de directory.
Het netwerkpad moet met UNC-notatie: Met de computernaam Met het ip-nummer Evt. met usernaam
mount -t cifs //computernaam/share /media/net
14
Copyright: Pieter Moens
mount -t cifs -o user=pieter //192.168.1.1/share /media/net Copyright: Pieter Moens
15
Vandaag: Vandaag hebben we: Kennis gemaakt met naamgeving van devices en het mounten ervan Kennis gemaakt met de commando’s? •mount •umount •dmesg
15
Copyright: Pieter Moens
Copyright: Pieter Moens
Harddisk- en partitiebeheer openSUSE 13.1
1
Copyright: Pieter Moens
2
Vandaag: Vandaag: Beheer van mounts Beheer van harddisks en partities
2
Copyright: Pieter Moens
Copyright: Pieter Moens
3
Beheer van mounts Mount
Een mount kan realtime worden aangemaakt, zonder herstart Een mount kan realtime worden verwijderd, zonder herstart umount 3
Copyright: Pieter Moens
Copyright: Pieter Moens
4
Beheer van mounts In /etc/fstab staan mounts die bij iedere boot gemaakt moeten worden: less /etc/fstab
Als 'root' kun je het bestand aanpassen: Device, mountdir, bestandsindeling, rechten
4
Copyright: Pieter Moens
Copyright: Pieter Moens
5
Beheer van Partities in een Harddisk Nieuw onderwerp: Met Mount kunnen we alleen bestaande schijven / partities koppelen Een extra schijf moet ingebouwd worden Een extra schijf kunnen we indelen met het (sub)commando: fdisk LET OP: Een partitie moet daarna nog wel een bestandsindeling krijgen (filesystem)
5
Copyright: Pieter Moens
Copyright: Pieter Moens
6
Beheer partities Gebruik de tool fdisk fdisk /dev/sda
fdisk opent een subshell met mogelijke acties: m n p d l w q a
6
help new partition print partition table delete partition list known partition types (82, 83) write partition table quit without save toggle bootable flag (active part.)
Copyright: Pieter Moens
Copyright: Pieter Moens
7
Beheer bestandsysteem Maak een nieuw filesysteem (=formatteren) mkfs.[subsysteem] mkfs.ext2 mkfs.ext3 mkfs.vfat mkfs.reiser
of: mke2fs of: mke3fs of: mkdosfs
mkfs [ -t filesys ] [ fs-options ] filesys Voorbeeld: mkfs.ext3 /dev/sdb1 mkdosfs /dev/hdd2
Voorwaarden: De ondersteunende filesystems moeten in de kernel geladen zijn. Bij openSUSE (nog) geen ondersteuning van ReiserFS 7
Copyright: Pieter Moens
Copyright: Pieter Moens
8
Voor de liefhebber: (Novell NSS-volumes onder Linux) (1) -t fstype Specifies the type of file system to be built, such as nsspool or nssvol. For example: •-t nsspool •-t nssvol
fs-options File-system-specific options to be passed to the real file system builder. When creating an NSS pool, use this fs-option: •-n poolname Replace poolname with the actual name of the pool you want to create.
When creating an NSS volume, use this fs-option: •-n volname Replace volname with the actual name of the volume you want to create.
filesys for nsspool, 8
Copyright: Pieter Moens
this is device name ( devname such as /dev/hda1 or /dev/sdb2)
Copyright: Pieter Moens
9
Harddisk beheer Yast (GUI en CLI) Start yast (GUI en CLI) Kies voor System en vervolgens voor Partitioner Ga akkoord met de waarschuwing dat dit alleen voor experts bedoeld is… Dat zijn wij…
9
Copyright: Pieter Moens
Copyright: Pieter Moens
10
10
Copyright: Pieter Moens
Copyright: Pieter Moens
11
11
Copyright: Pieter Moens
Copyright: Pieter Moens
12
12
Copyright: Pieter Moens
Copyright: Pieter Moens
13
13
Copyright: Pieter Moens
Copyright: Pieter Moens
14
14
Copyright: Pieter Moens
Copyright: Pieter Moens
Linux filesystems (ext)
openSUSE 13.1
1
Copyright: Pieter Moens
2
Vandaag: Vandaag: File systemen onder Linux Geschiedenis Ext en Reiser Beheer van bestandsysteem ext3 •Inode •debugfs
2
Copyright: Pieter Moens
Copyright: Pieter Moens
3
EXT – extended file system (1) Bestaat sinds 1992 ter vervanging van het minix-bestandsysteem: 16 bits adressen Bestandsnaam: maximaal 14 tekens Maximale adresseerruimte: 64 MB.
Practische keuze van Linus Torvalds om makkelijk te kunnen werken met zijn nieuwe kernel Maximaal 255 tekens in de bestandsnaam Maximale omvang van het systeem: 2 Gb
Door zijn beperkingen vervangen door Ext2 3
Copyright: Pieter Moens
4
EXT – extended file system (2) EXT maakt gebruik van inodes: Een inode is een verzameling informatie over een bestand en bevat onder meer: het bestandstype (directory, executable of niet, link, etc.), toegangsrechten (lezen, schrijven, execute - per gebruiker, groep en iedereen), eigenaars van het bestand, tijdstempel van laatste wijziging, bestandsgrootte adressen op de harddisk van de datablokken waarin het bestand opgeslagen ligt. 4
Copyright: Pieter Moens
5
EXT – extended file system (3) Inode adressen zijn 21 bits lang en een blok kan 1 kilobyte bevatten (= 210 dus interne adressen van 10 bits), waarmee een bestand dus een maximale grootte heeft van 221 + 10 = 231 = 2 GB. Één enkel bestand kan dus het hele bestandsysteem bezetten.
5
Copyright: Pieter Moens
6
Directory onder ext (1)
6
Copyright: Pieter Moens
Een directory is een speciaal bestand, met informatieparen: een LINK Een informatie-paar maakt een koppeling (link) tussen een naam en een inode In ext kunnen meerdere namen gekoppeld worden aan één inode Een bestand kan meerdere
7
Directory onder ext (2) Een bestandstructuur onder ext (of überhaupt in Linux) is een BOOM-structuur Dus: geen BOS-structuur zoals FAT en NTFS Alle paden beginnen op één punt de root van het systeem ofwel: “/”
7
Copyright: Pieter Moens
8
Datablokken en superblok (1) Een bestandssysteem zoals ext is: een verzameling datablokken, onderling geordend in een aantal blokgroepen.
Deze blokgroepen staan achter elkaar op de harddisk en bevatten ieder een lijst van inodes en een aantal stukken voor echte data (om bestanden in te schrijven – dit zijn de datablokken).
8
Copyright: Pieter Moens
9
Datablokken en superblok (2) Het eerste datablok (vooraan, de eerste blokgroep, vrijwel vooraan de harddisk direct na de bootsector) is bij ext speciaal –> dit is het superblok. Dit blok bevat informatie over de andere datablokken (voornamelijk het aantal) en alle blokgroepen (aantallen, locaties, etc.), zoals adressen van die blokken.
9
Copyright: Pieter Moens
10
Datablokken en superblok (3) Het superblok is gemarkeerd door een magic number – een "magisch getal", afgesproken als herkenningsteken. Dit getal staat op een vaste positie ten opzichte van het begin van het superblok (vanaf bit nummer 143). In het geval van ext is dit getal BE5A941 (hexadecimaal).
10
Copyright: Pieter Moens
11
EXT2 (1) second extended file system EXT2 – second extended files system EXT 2 is het traditionele bestandssysteem voor Linux distributies EXT 2 kent de volgende kenmerken: Lange bestandsnamen (255 tekens) Hoofdlettergevoelig Maximale grootte 4 TeraByte (Linux: 2 TeraByte) Geen bestandsnamen maar inodes 11
Copyright: Pieter Moens
12
EXT2 (2) Geen namen maar inodes (informatie over het bestand) bestandstype (directory, executable of niet, link, etc.), toegangsrechten (lezen, schrijven, per gebruiker, groep en iedereen), eigenaars van het bestand, tijdstempel van laatste wijziging, bestandsgrootte en adressen op de harddisk van de datablokken waarin het bestand opgeslagen ligt
12
Copyright: Pieter Moens
13
EXT2 (3) De eerste 10 blokken staan in een lijst. Als een bestand langer is dan 10 blokken staat er een "eerste-niveau-i-node". Dit is een verwijzing naar een sector met 170 verwijzingen. Als een bestand langer is dan 10 + 170 blokken staat er een "tweede-niveau-i-node". Dit is een twee-dimensionale structuur die verwijst naar eerste-niveau-i-nodes. Als een bestand langer is dan 10 + 170 + (170 * 170) blokken staat er een "derde-niveau-i-node". En dit is een drie-dimensionale structuur die verwijst naar tweede-niveau-i-nodes. 13
Copyright: Pieter Moens
14
EXT2 (4) Deze adressen zijn 21 bits lang en een blok kan 1 kilobyte bevatten (= 210 dus interne adressen van 10 bits), waarmee een bestand dus een maximale grootte heeft van 221 + 10 = 231 = 2 GB. Één enkel bestand kan dus het hele bestandsysteem bezetten.
Tegenwoordig worden voor de adressen 32bits gebruikt. De grootte is nu exponentieel
14
Copyright: Pieter Moens
15
Filesystems – Ext2 Groups Superblock Group descriptor Block bitmap Inode bitmap Inode table
Datablocks Superblock: Info over gehele fs
15
Copyright: Pieter Moens
16
EXT 3 / Reiser FS EXT3 = EXT 2 + Transacties… + … ReiserFS = EXT 2 + Transacties… + … ReiserFS is 30% sneller met veel kleine bestanden dan Ext 3 Met grote bestanden is er ReiserFS maximaal 10% sneller. ReiserFS: Met de meeste Europese Distributies, Ext3 met de meeste Amerikaanse Distri’s.
16
Copyright: Pieter Moens
17
Bitmaps:
1 = block in gebruik, 0 = block is niet in gebruik 1 bestand = 1 inode (vgl. MFT record) Data is niet opgeslagen in inodes In de inode kan een lijst van max. 15 pointers naar datablocks worden opgeslagen
Created, modified, accessed Filesystems Timestamp Klok, tijdzone Eenvoudig aan te passen “ In several recent court cases, it has been alleged that the timeline cannot be established beyond reasonable doubt, since the time-source may be manipulated or time-stamps may be manipulated by computer programs.” 17
Copyright: Pieter Moens
18
EXT 3 / Reiser FS Transaction Method Schrijfacties worden gebufferd in gereserveerde ruimte. Alle handelingen worden vooraf in een log vastgelegd. Pas als alle handelingen succesvol zijn verlopen wordt de log opgeschoond. Na een crash (of niet geplande reboot) worden alle logs opnieuw afgespeeld Voordeel: nooit verlies van data ZONDER DAT JE HET MERKT Nadeel: lagere performance Ook: op NTFS, ReiserFS, en NSS
18
Copyright: Pieter Moens
19
Vandaag: Vandaag gedaan: File systemen onder Linux Geschiedenis Ext en Reiser Volgende les: Beheer van bestandsysteem ext3 •Inode •debugfs
19
Copyright: Pieter Moens
Copyright: Pieter Moens
Inode Hard- en symbolic link openSUSE 13.1
1
Copyright: Pieter Moens
Les 13: Inodes, directory’s en links Vandaag: Inode (tabel) Directory’s Hard- en Symbolic links Andere file-systems met links
2
Copyright: Pieter Moens
De inode (1) Iedere linux partitie bevat een inode-tabel In de inodetabel staat voor ieder bestand (en dus directory) één inode Eén inode-record bevat informatie OVER een bestand (en directory) in het systeem De inode wordt gebruikt om het bestand aan te duiden
3
Copyright: Pieter Moens
De inode (2) Informatie in een inode-record: Inodenummer (uniek per bestand: ID) Aantal verwijzingen Grootte van het bestand Datums: Aanmaakdatum (create date) Wijzigingsdatum (change date) Laatste keer gebruikt (last access date) Wis datum (date deleted)
Eigenaar/user (uid) Groep /group (gid) Rechten user / group / other [rwxrwxrwx] Extra’s zoals attributen en Verwijzing naar de bestandsdata op de partitie (zie verderop) 4
Copyright: Pieter Moens
INODE van een Ext2-filesystem:
struct ext2_inode __u16 i_mode; /* File mode */ __u16 i_uid; /* Owner Uid */ __u32 i_size; /* Size in bytes */ __u32 i_atime; /* Access time */ __u32 i_ctime; /* Creation time */ __u32 i_mtime; /* Modification time */ __u32 i_dtime; /* Deletion Time */ __u16 i_gid; /* Group Id */ __u16 i_links_count; /* Links count */ __u32 i_blocks; /* Blocks count */ __u32 i_flags; /* File flags */ union __u32 i_block [EXT2_N_BLOCKS]; /* Pointers to blocks */ ZIE VOLGENDE DIA __u32 i_version; /* File version (for NFS) */ __u32 i_file_acl; /* File ACL */ __u32 i_dir_acl; /* Directory ACL */ __u32 i_faddr; /* Fragment address */ union
Meer info en bron: Klik deze link
5
Copyright: Pieter Moens
De inode (3) In iedere inode is ruimte voor 10 data-blokken voor het bestand. Is het bestand groter,. Dan worden deze blokken gebruikt, met verwijzingen naar extra datablokken (170 stuks per blok) Is dat nog niet genoeg…
6
direct: 10 indirect: 10 * 170 double indir. 10 * 170 * 170 triple indir. 10 * 1703 Etc… Etc, etc
Copyright: Pieter Moens
Directory (1) Een directory is een BESTAND Met verwijzingen naar andere bestanden In een directory wordt de naam aan een bestand gegeven Een naam van het bestand wordt gekoppeld aan het unieke inode-nummer van het bestand Een bestand staat dus NIET echt IN een directory, maar ergens op de partitie
7
Copyright: Pieter Moens
Directory (2) Een directory is NOODZAKELIJK om een bestand te kunnen vinden: In de directory is de naam opgegeven Via het gekoppelde inode-nummer wordt in de inodetabel de rest van de info opgezocht In de inode tabel staat de verwijzing naar de datablocks waar het bestand ‘écht’ staat Linux: één directory verplicht “/” – de rootdirectory Wordt aangemaakt met het bestandsysteem Elke linux partitie krijgt zo’n root-directory. Bij het mounten wordt deze root gekoppeld aan een andere directory. (Zie vorige lessen over devices en mounten) 8
Copyright: Pieter Moens
Directory (3) Wat is er te zien in een directory? In onderstaande afbeelding komt alleen de bestandsnaam uit de “directory” Uit de inode komt de rest van de info: Rechten (rwxrwxrwx) Aantal links User (via de UID) Group (via de GID)
9
Copyright: Pieter Moens
Omvang (in bytes) Mutatie datum (de 3 andere datums zijn niet zichtbaar) Of het een d, een l of file is
De link (1) – een introductie Een ‘bestand’ wordt dus in een directory gekoppeld aan een inode In linux kan je in meer directory’s een koppeling maken naar dezelfde inode! In linux kun je meer namen (in één directory) aan hetzelfde inodenummer koppelen. Eén bestand kan dus in meerdere directory’s en met verschillende namen in het bestandsysteem voorkomen. Dit zijn GEEN kopieën! Het blijft één bestand (1 x ruimte) 10
Copyright: Pieter Moens
De link (2) De hardlink is de ‘gewone’ verwijzing naar een bestand. Het eerste teken bij ls -l is bij een hardlink een ‘-’ (min) Wanneer je een bestand (=hardlink) wist wordt alleen de verwijzing uit de directory verwijderd. Pas als de laatste hardlink wordt gewist, wordt de ruimte van het bestand vrij gegeven N.B.: een bestand wordt NOOIT gewist. De ruimte wordt vrijgegeven, zodat het kan worden overschreven. Zolang dit niet gebeurd is, kan het bestand teruggehaald worden
11
Copyright: Pieter Moens
De link (3) Voorbeeld: Op de volgende dia een voorbeeld in het gebruik van de ‘hardlink’ met twee bestandsnamen: Oefenbestand (origineel) Oefening2 (gelinkt bestand)
Na wissen van het origineel blijft de 2e link bestaan Werkt ook vanuit verschillende directory’s 12
Copyright: Pieter Moens
13
Copyright: Pieter Moens
De symbolic link (1) Naast de hardlink bestaat in linux een symbolic link Deze herken je door een ‘l’ vooraan de regel met ls –l Een symbolic link verwijst naar een directory (-verwijzing) en niet naar de inode.
14
Copyright: Pieter Moens
De symbolic link (2) Symbolic link Extra verwijzing naar een reeds bestaand bestand. De symbolic link werkt als een snelkoppeling De symbolic link is alleen de verwijzing Wanneer het bestand waarnaar verwezen wordt gewist wordt, verliest de symbolic link zijn functie: zie voorbeeld op volgende dia
15
Copyright: Pieter Moens
Voorbeeld symbolic link
16
Copyright: Pieter Moens
Hard- vs. symbolic link Een hardlink is ‘veiliger’ dan een symbolic link (blijft bestaan) Een hardlink werkt alleen BINNEN één partitie. Een symbolic link kan ook naar andere partities en apparaten verwijzen.
17
Copyright: Pieter Moens