Newbie's Guide in Linux Sameer Dilip Sahasrabuddhe ILUG-Bom, Mumbai Chapter of the Indian Linux Users' Group <[1]sam_buddhe@yahoo.com> Vertaald door: Ellen Bokhorst <[2]bokkie@nl.linux.org> Samenvatting Het beste moment om de NGL te lezen is wanneer je serieus overweegt Linux voor het eerst te gaan proberen, wanneer je bent begonnen plannen te smeden in de richting van je eerste installatie en wanneer je zover bent je nieuw geïnstalleerde Linux box de eerste keer te gaan gebruiken. Dit document zal dienen als een kant-en-klare gids met alle termen en technologiën voor newbies als ook de mensen die deze mensen helpen. Het document dient echter niet als een stap-voor-stap handleiding voor de installatie en het gebruik van Linux. Hier bestaat al uitgebreide documentatie voor in de vorm van LDP guides; de NGL tracht louter als handleiding te fungeren in alle nieuwe concepten waar een nieuwe gebruiker van Linux de eerste keer mee wordt geconfronteerd. Copyrightinformatie Dit document is auteursrechtelijk beschermd door de auteur(s) en wordt onder de volgende voorwaarden gedistribueerd: This document may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating this document must be covered under this copyright notice. That is, you may not produce a derivative work from this document and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the author. Disclaimer Er kan geen aansprakelijkheid voor de inhoud van dit document worden geaccepteerd. Gebruik de concepten, voorbeelden en andere inhoud op eigen risico. Aangezien dit een nieuwe editie is van dit document, kunnen er fouten en onzorgvuldigheden in worden aangetroffen, die je systeem kunnen beschadigen. Alhoewel dit zeer onwaarschijnlijk is, nemen de auteurs hier geen verantwoording voor. Alle copyrights vallen in handen van hun respectieve eigenaren, tenzij specifiek anders aangegeven. Gebruik van een term in dit document zou niet moeten worden opgevat als beïnvloeding van de geldigheid van enig handels- of servicemerk. Het benoemen van bepaalde producten of merken zou niet moeten worden aangemerkt als onderkenningen. Maar de auteur behoudt het recht voorkeur uit te spreken voor specifieke producten of merken gebaseerd op persoonlijke ervaring. Dergelijke beweringen hebben geen technische steun nodig en zijn niet bedoeld als gezaghebbende evaluaties van enig product of merk. Er wordt aanbevolen regelmatig een backup van je systeem te maken voordat je een van belang zijnde installatie uitvoert. _________________________________________________________________ Inhoudsopgave [3]Over dit document [4]Introductie [5]Documentatiebronnen [6]Krediet [7]Feedback [8]Versies [9]Nog te doen 1. [10]Introductie GNU/Linux [11]Wat verwarring wegnemen [12]Wat is dan Linux? [13]Is het goed genoeg voor de terloopse gebruiker? [14]Linux en de GNU [15]GNU en de Free Software Foundation [16]Copyleft en de GPL [17]De wereldwijde gemeenschap [18]Van belang zijnde websites voor verder onderzoek 2. [19]Bestandsafhandeling [20]Bestandssysteem [21]Directory's [22]Een overzicht van harddiskpartities [23]Partities mounten [24]Andere bestandssystemen [25]Partities aanmaken tijdens de installatie 3. [26]De Graphical User Interface [27]Instellen van de hardware [28]Beeldscherminstellingen [29]sndconfig - Geluidsinstellingen [30]X - Het Window Systeem [31]De Desktop Environment [32]Window managers [33]Widgetsets of toolkits [34]Beschikbare opties 4. [35]Packages - Softwarebeheer [36]Tarballs [37]RPM - De Redhat Package Manager [38]De Debian methode [39]APT [40]apt-get: Packagebeheer was nog nooit zo makkelijk! 5. [41]Multi-user omgeving [42]Gebruikersaccounts [43]Superuser Account [44]Nieuwe gebruikers toevoegen [45]Gebruikersaccounts verwijderen [46]Gebruikersinformatie aanpassen [47]Het concept ``groepen'' onder Linux [48]Groepen beheren [49]Voorgedefinieerde groepen [50]Toegangsprivileges [51]Eigenaar en groep van bestand [52]Bestandspermissies [53]Bestandspermissies beheren Lijst van voorbeelden 2-1. [54]Voorbeeldlisting van directory's onder / 2-2. [55]Een simpele partitielisting 2-3. [56]Een aangepaste datapartitie mounten 2-4. [57]Voorbeeldlisting van gemounte partities 4-1. [58]Listing van /etc/apt/sources.list 4-2. [59]Package afhankelijkheden in Debian _________________________________________________________________ Over dit document Introductie Eén van de meest plezierige activiteiten onder Linux is het experimenteren met en onderzoeken van het systeem; je steekt hier je licht eens op en je kijkt eens daar en uiteindelijk leer je weer iets nieuws! Maar om die zelfde reden raken mensen ontmoedigd nog voor ze er aan beginnen. Ze vinden de vreemde Linux wereld nogal intimiderend om mee om te gaan. Overweldigd met termen waarvan ze eerder nooit hadden gehoord, kan dit verwarring scheppen wat er op uit zou kunnen draaien dat ze Linux in 't geheel niet gaan gebruiken. Wat nodig is, is een systematische introductie in alle nieuwe dingen waarmee een gebruiker wordt geconfronteerd wanneer Linux de eerste keer wordt uitgeprobeerd. De NGL is bedoeld voor dergelijke nieuwe gebruikers die net zijn overgeschakeld vanuit een makkelijke, gebruikersvriendelijke omgeving die ze volledig afschermt van alle kleine details over hun eigen systeem. Er wordt geen enkele kennis van computers verondersteld, maar de lezer wordt aangemoedigd zich de concepten eigen te maken. In tegenstelling tot een aantal andere besturingsystemen die de gebruiker proberen af te schermen van de feitelijke machine, is voor het gebruik van Linux een praktische kennis van hardware nodig. Het zou dus nu het perfecte moment zijn om je box eens open te maken en alle apparaten daarbinnen te bekijken, de disks en hun aansluitingen, de geluids- en videokaart, geheugenmodules, enz. De NGL tracht hierin van tijd tot tijd een basisintroductie te zijn, maar lezers worden aangemoedigd hierover meer informatie te verzamelen om gebruik te kunnen maken van de krachtige aanpassingen waarin door Linux wordt voorzien. De NGL is niet nog een poging om een soort HOWTO documentatie te creëren. Aangezien er reeds uitstekende hulp voor handen is, heeft de NGL alleen als doel om de newbie bekend te maken met de namen en concepten die naar alle waarschijnlijkheid verwarrend zijn voor een beginneling. Alleen algemene introducties in gewone taal worden geleverd voor elk onderwerp, met daar waar mogelijk URL's verwijzend naar de relevante documentatie. _________________________________________________________________ Documentatiebronnen Voor alle utility's onder Linux is uitstekende documentatie beschikbaar. Dit kan in de vorm van manpages, infopages, HOWTO's of zelfs gewone tekstbestanden zijn die met de packages worden gedistribueerd. Dergelijke bestanden zijn normaal gesproken te vinden onder een directory zoals `/usr/doc' of `/usr/share/doc'. De manpages en infopages kunnen respectievelijk met de opdracht `man' en `info' worden benaderd. Wellicht het beste om mee te beginnen is de aanroep van de opdracht `man man' of `info info' of combinaties daarvan! ;-) Naast geschreven documentatie, is een gebruiker nooit alleen in de Linux wereld. Gebruikers over de hele wereld nemen actief deel in het elkaar helpen door formeel samen te komen in de vorm van ``Linux User Groups'' of LUG's. De newbie wordt aangemoedigd een plaatselijke afdeling van een dergelijke LUG op te zoeken. Dergelijke groepen zijn behulpzaam bij het elkaar helpen en het delen van ervaringen over hun eigen avonturen. Ze kunnen werkelijk de benodigde genomen moeite van een newbie helpen stimuleren om vertrouwd met Linux te raken. Ook is hulp beschikbaar in de vorm van IRC kanalen, discussieforums, enz. Een belangrijke bron met documentatie en ondersteuning is het [60]Linux Documentation Project of LDP, welke dient als het doorgangshuis met alle pogingen door de Linux gemeenschap om het systeem te documenteren. Er is voorzien in verschillende vormen van hulp, zoals HOWTO's, beknopte documenten over specifieke onderwerpen, en Guides, de wat grotere werken die dienen om de lezer te voorzien in een gedetailleerde kijk op een specifiek onderwerp. _________________________________________________________________ Krediet Nog niets _________________________________________________________________ Feedback Feedback is zeer welkom voor dit document. Zonder je aanleveringen en inbreng zou dit document niet eens bestaan. Stuur je aanvullingen, opmerkingen en kritiek naar me op! _________________________________________________________________ Versies Wijzigingen Herziening Versie 0.1 Mei 2001 Herzien door: sameerds Initiële release Herziening Versie 0.2 Juni 2001 Herzien door: sameerds Veel herstructurering met een verbeterde markup en een ander hoofdstuk toegevoegd. Herziening Versie 0.2.1 Oktober 2001 Herzien door: sameerds Eindelijk het hoofdstuk over packagebeheer voltooid! _________________________________________________________________ Nog te doen * Daar waar mogelijk voorzien in URL's naar relevante webbronnen. Probeer vooral verschillende onderwerpen in de NGL te linken naar de relevante HOWTO's en Guides beschikbaar vanaf de [61]LDP Website * Completeer alle onderwerpen vermeld aan het einde van het SGML bronbestand * Maak het document zo lezersvriendelijk mogelijk. Het kan zijn dat hiervoor veel moeite moet worden gestoken in termen van de SGML markup, maar dat zij dan maar zo! Het document hoort er voor een gebruiker niet uit te zien als een saaie oude technische handleiding. _________________________________________________________________ Hoofdstuk 1. Introductie GNU/Linux Uiteraard kan ieder document gericht op de newbie niet beginnen zonder een paar woorden te zeggen waar dit allemaal over gaat! Iedereen die heeft besloten Linux wat nader te gaan bekijken is naar alle waarschijnlijkheid bekend met Windows en DOS, de twee termen die bij gewone gebruikers synoniem met computers schijnen te zijn. Dus als we trachten meer over deze vreemde wereld van een alternatief besturingssystemen te weten te komen, dan zullen we proberen vragen aan te spreken die snel opkomen in de gedachten van een nieuwkomer. _________________________________________________________________ Wat verwarring wegnemen Wat een heleboel mensen wel weten over Linux is dat het iets met Unix te maken heeft. Wanneer ze iets horen over de opdrachtregelinterface of de shell, neigen ze het met DOS te vergelijken. Wanneer ze iets horen over de Unix GUI, dan proberen ze parallellen te trekken met wat Windows is tot DOS, denkend dat dezelfde relatie bestaat als tussen Linux en Unix. Om uit deze sleur te geraken, is het van belang te wijzen op de veelomvattende verschillen tussen de twee systemen. Om mee te beginnen is het enige dat de vier - DOS, Windows, Linux en Unix - gemeen hebben, is dat ze allen besturingssystemen zijn. Unix bestaat al veel langer dan DOS. DOS begon als het eerste besturingssysteem voor de PC, gebruik makend van de Intel 8088 processor, en Unix was het besturingssysteem voor grote time-sharing systemen in gebruik door grote bedrijven en universiteiten, soms bekend als het "grote ijzer". Unix was vergevorderd in termen van architectuur, features, geheugenbeheer, enz. Maar dat is vanzelfsprekend aangezien ze oorspronkelijk voor twee verschillende doelen werden gecreëerd. Neem bijvoorbeeld in overweging het feit dat een doel om de "Virtual-86" modus te creëren op het Intel 386 platform was om DOS toe te staan als een proces bovenop Unix te draaien, overeenkomstig Intel's eigen documentatie. Toen kwam Windows in beeld, eerst als een aanvulling bovenop DOS in de vorm van het Windows 3.1 systeem. Het ontwikkelde zich toen tot een volledig besturingssysteem gebruik makend van een compleet andere technologie. Parallel daaraan had het Unix systeem een nieuw gezicht verworven - een GUI - in de vorm van het X Window Systeem. Het was niet exact een aanvulling "bovenop Unix", noch verving het de opdrachtregel of de shell; het was een nieuwe interface tot het bestaande systeem. Dus op bepaalde manier lijkt de shell op de DOS-prompt en lijkt de X GUI op Windows, maar verder dan dat gaat het niet. De Unix shell is veel krachtiger dan de opdrachtprompt van DOS, en X-Window is niet in het Unix besturingssysteem gebouwd als in Windows. _________________________________________________________________ Wat is dan Linux? Het eerste wat we ons moeten realiseren voordat we die vraag beantwoorden, is dat "UNIX" niet de naam is van een bepaald besturingssysteem. Een aantal mensen raakt in verwarring door te denken dat Linux iets is dat werd toegevoegd aan Unix op de wijze zoals Windows 3.1 werd toegevoegd bovenop DOS! Maar de werkelijkheid is totaal anders. Alhoewel Unix begon als een poging om een groot krachtig besturingssysteem te creëren, breidden deze pogingen zich in de loop der jaren langzamerhand uit. Dit heeft geleid tot meerdere Unix-versies, gecreëerd en onderhouden door verschillende instanties, maar allen afstemmend van een gemeenschappelijk origineel. Voorbeelden hiervan zijn SCO Unix, HP Unix, Digital Unix, de BSD varianten, en natuurlijk, [62]Linux! Het woord Unix wordt nu gebruikt om een [63]specificatie voor te stellen die beschrijft wanneer een systeem kan worden aangemerkt als een "Unix". Nog steeds verward? Dat komt waarschijnlijk doordat je nog steeds gewend bent te denken aan een besturingssysteem als een enkel product (bv Windows) gecreëerd door een enkel bedrijf (bv Microsoft). Denk er op een andere manier aan in plaats daarvan - stel je auto's voor; degene die wordt gebruikt in Formula 1 races in het bijzonder. Ze zijn ontworpen en gecreëerd door verschillende bedrijven gebruik makend van hun eigen motoren, ontwerpen, enz. Maar ze hebben allen een aantal kerntechnische details gemeen en worden gezamelijk gezien als "F1 auto's" ... hetzelfde is het geval met de namen die we in de vorige paragraaf zagen! Maar er is nog meer verwarring - Linux zelf komt niet in een enkele versie uit! In plaats daarvan bestaan er verschillende varianten Linux genaamd "distributies", of in het kort "distro's". Hier komen die vreemde namen als Red Hat, Debian, Caldera, SuSE, enz in beeld. Het zijn gewoon verschillende organisaties die hetzelfde systeem genaamd Linux op eigen wijze distribueren! Maar welke distro gebruik je dan? De beste manier om hier achter te komen is door met gebruikers van het systeem te praten over de kracht en zwakheden van de diverse distro's, en ook vast te stellen voor welke distro de meeste ondersteuning in je regio wordt geboden, en dan te kiezen welke je prettig vindt. Uiteindelijk gaat het om eigen keuze! _________________________________________________________________ Is het goed genoeg voor de terloopse gebruiker? Linux heeft een lange weg afgelegd vanaf zijn oorsprong als systeem "voor de geeks, door de geeks". Het houdt er een prachtige GUI op na, heeft veel productiviteitstoepassingen, en voorziet ook in een breed bereik aan officesuites. En het mooie is, dat deze met elkaar kunnen uitwisselen via bestandsformaten gebaseerd op open standaarden, zodat de gebruiker de volledige vrijheid heeft in het kiezen van software voor eigen gebruik. Als je dacht dat de Linux GUI alleen goed genoeg is voor kantoorgebruik en productiviteitstoepassingen, denk het dan nog eens over, je kunt in feite zelfs Quake3 onder Linux spelen! Niet alleen dat, je kunt ook MP3's afspelen, VideoCD's en DVD's op je systeem bekijken. Je kunt zelfs intensieve grafische software gebruiken voor het aanmaken van afbeeldingen, animaties, technische tekeningen, gegevensvisualisatie, enz. Dit komt omdat er continue ondersteuning voor nieuwe hardware wordt opgenomen, zoals voor accelerated graphics en alle krachtige geluidskaarten. De spellen zijn ontwikkeld met behulp van grafische library's die speciaal voor dat doel zijn ontworpen, daarbij volledig voordeel halend uit de beschikbare kracht. _________________________________________________________________ Linux en de GNU Dus nu weten we dat Linux gewoon een ander, maar wel een erg populaire vorm is van het Unix besturingssysteem. Maar er is meer; in feite is het eerste wat ons aan Linux doet denken, niet een exact Linux in zuiverste zin. Om heel eerlijk te zijn zou het "GNU/Linux" behoren te worden genoemd in plaats van gewoon "Linux". Dit komt omdat "Linux" gewoon het belangrijkste deel van het systeem is, het is de kernel, de kern van ieder besturingssysteem. Het werd als een universiteitsproject gemaakt door een Finse jongen met de naam [64]Linus Torvalds. Al het andere dat nodig is om het systeem te kunnen gebruiken, wordt geleverd door het GNU systeem. Gedetailleerde uitleg hieromtrent is beschikbaar in [65]dit artikel. Dus in feite zou iedereen de naam GNU/Linux moeten gebruiken, aangezien dat hetgeen is wat het systeem feitelijk is. Maar het probleem is dat de naam "Linux" in de loop der jaren schijnt te zijn blijven hangen vanwege zijn continue gebruik ondanks de onjuiste informatie. Maar we zouden op z'n minst in gedachten kunnen houden dat dit hetgeen is wat het werkelijk is, en erkennen dat ere wie ere toekomt. _________________________________________________________________ GNU en de Free Software Foundation [66]GNU is waar het allemaal begon, als het geesteskind van [67]Richard M. Stallman die een volledig vrij Unix-achtig systeem wilde creëeren. Het was een project dat hij begon als een uitdrukking van zijn frustratie in de groeiende neiging software onder een uiterst beperkende licentie te distribueren. Dus begon hij een vrije versie van het meest succesvolle besturingssysteem toendertijd, wat Unix was. Het is van belang in gedachten te houden dat de term "vrij" hier verwijst naar "vrij als in 't vrije woord" en niet "vrij als in gratis bier". Ter ondersteuning van dit ambitieuze idee, richtte hij de [68]Free Software Foundation op. Hierover is al veel literatuur beschikbaar, waaronder materiaal geschreven door RMS zelf en andere voorstanders van vrije software. Er bestaat ook een verschil van mening in de betekenis van de termen [69]vrije software en [70]open source software. Maar dat valt allemaal buiten het kader van dit document; de geïnteresseerde lezer kan altijd elders kijken voor meer informatie. De belangrijkste bron is [71]dit artikel door RMS, waarin de basisvisie achter het GNU systeem wordt uitgelegd. We zullen slechts het belangrijkste deel samenvatten, en dat is de definitie van vrije software. Een programma is vrije software, voor jou als gebruiker, als: * Je de vrijheid hebt om het programma voor elk doel uit te voeren. * Je de vrijheid hebt om het programma naar eigen wens aan te passen. (Om deze vrijheid effectief in de praktijk te brengen, moet je toegang hebben tot de broncode, aangezien het maken van wijzigingen in een programma zonder de beschikking te hebben over de broncode buitengewoon moeilijk is.) * Je hebt de vrijheid kopieën te herdistribueren, gratis of tegen betaling. * Je hebt de vrijheid aangepaste versies van het programma te distribueren, zodat de gemeenschap voordeel kan hebben van je verbeteringen. _________________________________________________________________ Copyleft en de GPL Alle vrije software wordt op een zeer interessante wijze gedistribueerd genaamd de copyleft overeenkomst. Het doel van copyleft is te verzekeren dat vrije software niet wordt gebruikt ten voordele van eigendomssoftware. Zeer beknopt kunnen we stellen dat copyleft mensen toestaat er vrijwel alles mee te doen, zolang ze er geen verdere beperkingen op plaatsen. Iedereen kan bestaande vrije software wijzigen, het distribueren op een manier die ze verkiest, het zonder enige beperkingen gebruiken. De enige noodzaak is dat elke software die ze creëren gebruik makend van de broncode van bestaande vrije software ook vrij moet zijn, ze kunnen er niet hun eigen beperkingen op plaatsen. GNU software gebruikt een specifieke implementatie van dit copyleft idee in de vorm van de GNU GPL (General Public License). Het is een grote en gecompliceerde licentiespecificatie die tegemoet tracht te komen aan het doel dat alle moeite gedaan door mensen die hun bijdragen leverden aan vrije software niet wordt misbruikt voor eigendomsdoeleinden. Er zijn ook nog andere vormen van deze licentie, zoals een lichtere versie voor vrije literatuur zoals handleidingen, waarvoor de complexiteit van de softwarelicentie niet nodig is. Een ander voorbeeld is de GNU L-GPL, dwz, de Library GPL. Deze staat het gebruik van GNU library's toe in de ontwikkeling van eigendomssoftware, aangezien dit niet hetzelfde is als het direct gebruiken van de broncode zelf. _________________________________________________________________ De wereldwijde gemeenschap Alle vrijheid in voorzien door de GPL en het principe van "copyleft" heeft geholpen heel veel mensen bijeen te brengen. Een GNU/Linux gebruiker is nooit alleen - er zijn heel veel mensen over de gehele wereld enthousiast en bereid elkaar te helpen om het systeem beter te gebruiken, door hun ervaring te delen, te voorzien in tips en waar nodig advies te geven. Het is makkelijk met andere gebruikers informatie uit te wisselen via mediums als discussielijsten, IRC-kanalen en Usenet nieuwsgroepen. Mensen verenigen zich ook tot groep in de vorm van Linux User Groups (LUG's). Dit helpt mensen uit een gegeven streek bij elkaar te komen en met elkaar informatie uit te wisselen. Het voorziet in het perfecte platform voor mensen met verschillende niveaus in ervaring om elkaar te helpen. De groepen organiseren normaal gesproken ook periodieke bijeenkomsten, seminars en events in hun streek om "het woord te verspreiden". Een algemene activiteit daarbij is in de vorm van installatiefestivals, waarbij newbies worden begeleid bij het installeren van Linux op hun machines. _________________________________________________________________ Van belang zijnde websites voor verder onderzoek [72]De Linux Homepage Vanuit hier wordt de actie ondernomen - enorme hoeveelheden informatie over wat er gaande is in de GNU/Linux wereld is beschikbaar vanuit een enkele portal. De pagina houdt er links op na naar diverse distributies, lopende projecten, online ondersteuning, gebruikersgroepen, enz. Linux en de Desktop GNU/Linux heeft op het op grootste wijze voor elkaar gekregen de desktopomgeving binnen te gaan. Er is een breed bereik aan mogelijkheden wanneer het aankomt op het kiezen van de wijze van het aanzien en hoe het gebruik aanvoelt van je GUI. Leidend in de beschikbare GUI's zijn de projecten [73]GNOME en [74]KDE. Bezoek deze twee sites voor meer informatie over spellen die onder Linux beschikbaar zijn: [75]LinuxGames en [76]TuxGames [77]Linux Documentation Project De LDP is een poging alle informatie over het GNU/Linux systeem onder één standaardbron te verzamelen. Het maakt gebruik van de moeite van een heleboel mensen over de gehele wereld die plezier beleven aan het gebruiken van het systeem en hun ervaring en kennis met anderen willen delen. De LDP heeft documentatie in de vorm van HowTo's, handleidingen, Guides opgenomen, die een breed bereik aan onderwerpen behandelen over zaken als het dagelijks gebruik, de setup van de hardware, netwerken, ontwikkeling van toepassingen, interne werking van diverse componenten, enz. [78]GNU Homepage Dit is de plaats om te zoeken naar alles wat je wilt weten over het GNU systeem. Hier vind je artikelen over de GNU filosofie, white papers, GNU software, documentatie, enz. Hier vind je ook informatie over de Free Software Foundation. [79]Eric Raymonds' Homepage Eric Raymond is één van de leidende spreekbuizen van de free/open software gemeenschap. Hij heeft veel artikelen en boeken over de beweging gepubliceerd. Hij is degene die het voor elkaar kreeg om Netscape te overtuigen de broncode vrijelijk te publiceren van hun browsersuite, aanleiding gevend tot het [80]Mozilla Project. [81]De Open Source Beweging Dit is een poging om precies te definiëren wat open source software is en bewustzijn van het bestaan te creëren. Hier zijn heel veel mensen bij betrokken, proberend de implicaties van legaal gedefinieerde open source software te ontwikkelen en ook proberend zijn veelbetekenendheid in de moderne industrie te begrijpen. Een interessante bron is hier in de vorm van de [82]Halloween Documenten. Dit zijn Microsoft's interne documenten over de open source beweging, en zijn eigen beleid om zijn ooit groeiende populariteit te weerleggen. Verplichte kost voor iedereen die werkelijk het gehele beeld wil begrijpen met betrekking tot het gevecht tussen vrije software en gesloten eigendomssoftware. De documenten belichten vooral Microsoft's houding ten opzichte van standaards en hun meedogenloze neiging om anderen te beperken door de gebruiker in te sluiten in zijn eigen eigendomstechnologie. _________________________________________________________________ Hoofdstuk 2. Bestandsafhandeling De eerste stap richting het begrijpen van besturingssystemen is te weten hoe harddisks zijn georganiseerd, kwesties als partities, bestandssystemen, enz. Dit is ook handig om te kunnen begrijpen hoe partities tijdens de installatie worden aangemaakt en hoe Linux met andere besturingssystemen op een systeem kan voortbestaan. Op een computer worden gegevens beheerd in termen van bestanden en directory's op de externe opslagapparaten, zoals harddisks, CD-ROM's, diskettestations en anderen. Bestanden zijn niets meer dan een speciale manier om gegevens pasklaar op het externe opslagdevice op te slaan wat het eenvoudig terughalen en bijwerken vergemakkelijkt. Op vergelijkbare wijze zijn directory's structuren die kunnen worden gezien als logische "containers" voor bestanden; één of meer bestanden kunnen "in" een directory worden geplaatst. Hiermee wordt een hierarchisch beheer van bestanden mogelijk waardoor het makkelijker wordt ze op te sporen als er meer en meer bestanden aan het systeem worden toegevoegd. Om te begrijpen hoe Linux bestanden bewaart en manipuleert, is iets meer kennis nodig van de wijze waarop bestanden binnen de directory's worden georganiseerd en hoe ze worden bewaard op de harddisk. De volgende paar secties gaan over deze concepten en voorzien ook in wat inzicht in het partitioneren van disks wat een belangrijke stap is in de installatie van Linux. _________________________________________________________________ Bestandssysteem Het bestandssysteem is de wijze waarop een besturingssysteem alle te bewaren bestanden op de externe opslagplaats beheert - uitvoerbare bestanden, afbeeldingen, enz. Linux maakt gebruik van een geavanceerde versie van het Extended File-system van Unix, genaamd ext2. Bij dit systeem wordt gebruik gemaakt van datastructuren genaamd inodes om informatie over bestanden op te slaan. Dergelijke inodes worden allen bijelkaar in grotere structuren, genaamd inodetabellen geplaatst. De inode tabellen zijn te vinden op een welbekende plaats op het opslagdevice, zodat het systeem ernaar kan verwijzen wanneer het een bestand moet benaderen. De bestanden worden in de vorm van gegevensblokken op de disk bewaard, die worden benaderd met behulp van pointers waarin door de inodes is voorzien. De inodes bevatten ook informatie die door het besturingssysteem wordt gebruikt om beveilgingsfeatures te implementeren voor een multi-user omgeving, dws, ze worden gebruikt om de eigenaar ervan vast te stellen en om de wijze te specificeren waarop verschillende gebruikers dezelfde bestanden kunnen delen. Een belangrijke feature van het ext2 bestandssysteem is dat het alles als bestanden behandeld; directory's worden ook voorgesteld als bestanden met pointers naar andere bestanden. Dit houdt niet slechts op bij directory's, zelfs de hardware kan als een bestand worden benaderd onder de standaarddirectory /dev. Later meer over deze directory's... Een nadeel onder Linux was de vatbaarheid van ext2 voor schades ontstaan door stroomonderbrekingen. Maar er ontstonden veelbetekende ontwikkelingen om deze tekortkoming op te heffen door de introductie van journaling file-systems zoals reiserfs, ext3. Een journaling file-system heeft de mogelijkheid in zich om in geval van een crash door stroomonderbrekingen te worden hersteld tot een stabiele toestand. _________________________________________________________________ Directory's Onder Linux hoeven aan verschillende partities geen speciale namen te worden toegekend om ze te kunnen benaderen. Dit komt doordat Linux gebruik maakt van een standaard directorystructuur om voor alle partities te zorgen. Deze structuur garandeert dat een bepaald bestand voor een bepaald programma vrijwel altijd op dezelfde plaats op elke machine waarop Linux draait aanwezig zal zijn. Voorbeeld 2-1. Voorbeeldlisting van directory's onder / # du -Hms /* 5 /bin 4 /boot 1 /dev 5 /etc 23 /home 26 /lib 1 /lost+found 5470 /mnt 1 /opt 97 /proc 25 /root 5 /sbin 1 /tmp 1070 /usr 58 /var Wat we hier zien zijn de directory's die standaard op het bestandssysteem worden aangemaakt, en welke voor alle installaties als standaard worden beschouwd. De getallen aan het begin van de regel duidt de omvang in MB aan van elke directory. Laten we eens een paar van de belangrijker directory's bekijken. * /dev is de directory via welk alle devices op de machine toegankelijk zijn als bestanden. Dit zijn onder andere de seriële terminals (COM poorten), modem, muis, geluidskaart ... alles! * /var bevat de meeste "variabele" data zoals mails, logbestanden, databases, enz. * /usr is waarin bijna alle packages worden geïnstalleerd. /mnt niet meetellend, is het de grootste directory op de harddisk. Deze directory kent zelf een tamelijk gecompliceerd subdirectoryssysteem dat in gebruik is door de packages. * /etc bevat alle configuratiebestanden, die door het besturingssysteem zelf worden gebruikt als ook door diverse packages die op het systeem zijn geïnstalleerd. * /home bevat de homedirectory's van alle gebruikers die op het systeem zijn aangemaakt. * /mnt wordt volgens afspraak gebruikt als de basis voor alle directory's die geen onderdeel uitmaken van de standaarddirectoryhiërarchie. Het wordt vooral gebruikt om de cd-rom-stations, diskettestations, niet Linux partities, enz te mounten. * /root is de homedirectory van de bevoorrechte gebruiker of de systeembeheerder, genaamd "root". _________________________________________________________________ Een overzicht van harddiskpartities Een gewone home PC, heeft twee IDE-poorten, waarop de CD-ROM stations en de harddisks zijn aangesloten. Eén daarvan wordt de primaire IDE-poort genoemd en de ander de secondaire IDE-poort. Elke poort ondersteunt twee apparaten van één van beide typen, die met jumpers moeten worden gespecificeerd als "Master" en "Slave". Deze apparaten kunnen op beide poorten CD-ROM stations of harddisks zijn of een combinatie daarvan. De apparaten zijn als volgt gelabeld: * /dev/hda -> Primary Master * /dev/hdb -> Primary Slave * /dev/hdc -> Secondary Master * /dev/hdd -> Secondary Slave Op een harddisk kunnen twee typen partities worden aangemaakt, primaire en extended, tot een totaal van vier. Je kunt vier primaire partities of drie primaire en één extended partitie aanmaken. Deze zijn allen genummerd van 1 tot en met 4. De extended partitie op zijn beurt kan elk aantal logische partities bevatten, welke genummerd zijn vanaf 5 en hoger. Deze specifieke partitie kan één van de eerste vier , dwz de primaire partities, zijn. Het voorziet in veel flexibiliteit voor het aanmaken van een groot aantal parttities. Voorbeeld 2-2. Een simpele partitielisting # fdisk -l /dev/hdc Disk /dev/hdc: 255 heads, 63 sectors, 1048 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdc1 * 1 128 1028128+ b Win95 FAT32 /dev/hdc2 129 833 5662912+ 5 Extended /dev/hdc3 834 1024 1534207+ 83 Linux /dev/hdc4 1025 1033 72292+ 82 Linux swap /dev/hdc5 129 383 2048256 b Win95 FAT32 /dev/hdc6 384 638 2048256 b Win95 FAT32 /dev/hdc7 639 833 1566306 b Win95 FAT32 De kolom "Id" geeft het type bestandssysteem gehost op een bepaalde partitie aan. De partitie met de naam "Linux swap" wordt door het systeem gebruikt voor geheugenbeheer. Een populaire vuistregel is dat de omvang hiervan ongeveer tweemaal het RAM op de machine moet zijn, maar voor de meeste desktop PC's blijkt een maximum van 100MB voldoende. Tip Het lijkt nogal oneerlijk dat er slechts 1.5GB is toegekend aan Linux op een harddisk van 8.6 GB. Maar het is van belang te vermelden dat Linux vergeleken met Windows, dat op de rest van de harddisk is geïnstalleerd, in die ruimte meer bewerkstelligd. _________________________________________________________________ Partities mounten In de eerdere secties werd de standaarddirectorystructuur beschreven en het labelen van de partities voor IDE apparaten. Maar een vanzelfsprekende vraag is wat er gebeurt met de meerdere partities die een gebruiker zou willen aanmaken op zijn systeem? Staat er op elke partitie een volledige directorystructuur zoals hiervoor beschreven? Het antwoord op deze vraag is eerder het tegenovergestelde, in plaats dat de directoryhiërarchie op elke partitie aanwezig is, worden de partities zelf onderdeel van een enkele hiërarchie! De gedachte hierachter is dat het mogelijk moet zijn voor een gebruiker om aan te geven dat een bepaalde directory op een bepaalde partitie moet worden gehost. Dus alle bestanden en subdirectory's van die directory zullen op die specifieke partitie voorkomen, tenzij natuurlijk een bepaalde subdirectory zijn eigen aparte partitie heeft toebedeeld gekregen! Dit wordt waarschijnlijk wat duidelijker met een voorbeeld. Stel de bovenstaande directory's in aanmerking genomen dat je thans werkt in /home/anamik. Om de een of andere reden wil je naar /usr/doc gaan, wat je doet door achter de prompt cd /usr/doc op te geven. Maar stel dat er op het systeem twee partities zijn, waarbij het gehele root bestandssysteem / op Partitie1 voorkomt terwijl alles onder /usr voorkomt op Partitie2. Als je de bovenstaande opdracht probeert, dan zal het systeem je transparant naar Partitie2 brengen, en zodanig dat je je nooit realiseert dat je in feite partities hebt doorkruist tijdens het veranderen van de huidige directory! Dit wordt allemaal bewerkstelligd door het mounten van de partitie op de bedoelde lokatie. Het kan worden gezien als het plaatsen van een verwijzer in de directoryhiërarchie, welke de partitie aanduidt waar de directory in werkelijkheid voorkomt. Hiervoor moeten we eerst een paar dingen weten - de naam van het device van die partitie en het type bestandssysteem op die partitie. We moeten ook zeker weten waar we de partitie in het geheel aan directory's willen plaatsen en garanderen dat een dergelijk lege directory bestaat. Voorbeeld 2-3. Een aangepaste datapartitie mounten Stel bijvoorbeeld dat je een partitie van 1GB aanmaakt, die je wilt gebruiken om je gegevens op te slaan. Dit kan op de opdrachtregel worden bewerkstelligd door de volgende stappen uit te voeren: 1. Maak een lege directory aan als mount-point voor de partitie, normaal gesproken onder /mnt. # mkdir /mnt/data 2. Mount de partitie (laat ons uitgaan van /dev/hdc3) op het nieuw aangemaakte mount-point. # mount -t ext2 /dev/hdc3 /mnt/data Opmerking Verder onderzoek Er is veel meer te vertellen over mount dan wat we hier zojuist hebben gezien. In de manpages wordt voorzien in gedetailleerde informatie over het mounten van partities, welke kan worden benaderd via de opdracht man mount achter de prompt. Een belangrijk bestand is hierbij het bestand /etc/fstab dat wordt gebruikt om alle opties voor het mounten van de diverse typen partities te besturen. _________________________________________________________________ Andere bestandssystemen Linux kan ook bestandssystemen van andere besturingssystemen ondersteunen. Hiervoor hoeven deze bestandssystemen alleen te worden gemount onder een geschikt mountpoint, waarna de gebruiker deze partities net als alle anderen kan benaderen. Neem bijvoorbeeld een reeds bestaande MS Windows installatie. - de partities kunnen worden gemount onder gepaste directory's onder /mnt. Moderne distributies zijn in staat dergelijke partities te detecteren en de gebruiker tijdens de installatie te vragen om mountpoints, Station C: bijvoorbeeld kan worden gemount als /mnt/c enzovoort. Deze informatie wordt allemaal weggeschreven in /etc/fstab, die tijdens het booten wordt benaderd om te bepalen welke partities moeten worden gemount. Voorbeeld 2-4. Voorbeeldlisting van gemounte partities $ mount /dev/hdc3 on / type ext2 (rw,noatime) none on /proc type proc (rw) /dev/hdc1 on /mnt/c type vfat (rw) /dev/hdc5 on /mnt/d type vfat (rw) /dev/hdc6 on /mnt/e type vfat (rw) /dev/hdc7 on /mnt/f type vfat (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) Hier zien we een aantal partities met mountpoint en bestandssysteem. Alle mountpoints werden tijdens de installatie opgegeven, waarbij de letters c, d, ... werden gebruikt voor de corresponderende MS Windows partities. De haakjes aan het einde van iedere regel stellen opties voor welke voor die partitie werden gebruikt. De standaardwaarden verschillen van die je hier ziet. Deze opties kunnen worden gewijzigd door het bewerken van het bestand /etc/fstab. Het hoofd bieden aan MS Windows Gebruikers van MS Windows zullen verheugd zijn er notitie van te nemen dat Linux in feite overweg kan met een op FAT gebaseerde Windows partitie. Maar een dergelijke setup wordt zeer ontmoedigd; je kunt Linux beter op een eigen partitie installeren die tijdens de installatie wordt aangemaakt. En ook dan is een volledige lees-/schrijftoegang naar je op FAT gebaseerde partities mogelijk. Een mogelijke overweging is dat het niet mogelijk is beveiliging op deze partities af te dwingen. Vandaar dat het aan te raden is deze partities read-only te mounten, zodat alleen de superuser naar de partitie kan schrijven. Als Windows op je harddisk staat en je van plan bent Linux voor de eerste keer te gaan installeren, wees er dan klaar voor om met je partities te gaan stoeien, wellicht dat je zelfs een bestaande partitie moet verwijderen. _________________________________________________________________ Partities aanmaken tijdens de installatie Tot dusverre hebben we gezien hoe partities en bestandssystemen onder Linux werken. Nu kunnen we verder gaan met een belangrijk deel van het installatieproces, wat bestaat uit het aanmaken van partities. Een gigantische partitie de gehele harddisk overbruggend is het simpelst. Maar dit zou een zeer slechte strategie zijn aangezien het een enorme tijd zou kosten om een controle op het bestandssysteem uit te voeren. Bovendien zouden alle gegevens in een enkele zucht verloren gaan, als de harddisk crasht. In geval van desktops is het tevens zeer waarschijnlijk dat de machine zal worden gebruikt als een dual-boot systeem met andere besturingssystemen. Dit betekent dat er niet alleen meerdere partities nodig zijn, maar er ook diverse bestandssystemen op voorkomen. En dan is er natuurlijk ook nog de swappartitie, die wordt gebruikt voor geheugenbeheer door het Linux systeem. Het schijnt inderdaad dat er geen manier is om te overleven zonder je handen vuil te maken aan partitioneringsstunts tijdens de installatie ... Het is over het algemeen een goed idee om aparte partities aan te maken voor de directory's /home en /var aangezien hierop gegevens van gebruikers worden bewaard. De directory /usr kan ook gescheiden worden houden, aangezien het de grootste directory is in de gehele hiërarchie. Alle niet standaardpartities worden normaal gesproken onder /mnt gemount. Maar dit is eerder een conventie dan een regel. Maar het is wel noodzakelijk dat /etc onderdeel uitmaakt van de rootpartitie, omdat een aantal systeemutility's uit deze directory moeten kunnen lezen nog voordat tijdens het booten andere partities zijn gemount. Belangrijk Dualboot systemen In geval van een dualboot systeem met LILO, moet de /boot partitie als deze bestaat of anders de rootpartitie / voorkomen binnen de eerste 1024 cylinders van de harddisk vanwege een beperking van de huidige versies van LILO. Opmerking Verder onderzoek De meeste moderne installaties voorzien in een uiterst gebruikersvriendelijke wijze om partities aan te maken en de daarbij behorende mountpoints op te geven. Neem de installatiehandleiding hiervoor door. _________________________________________________________________ Hoofdstuk 3. De Graphical User Interface Ja het klopt, Linux heeft, "net als Windows" een GUI, zou je kunnen stellen. Het is beslist niet nodig tijdens het gebruik van Linux te blijven hangen bij de opdrachtregel, je kunt het systeem zeer effectief gebruiken met een GUI, compleet met themes, desktopbeheer, slepen en neerzetten, in feite de hele tierelantijn. De GUI heeft tenslotte een dusdanige fase bereikt dat het nu zelfs mogelijk is om 3D-spellen te spelen, films te kijken, professionele afbeeldingen te maken, IDE's te gebruiken voor de ontwikkeling van programma's, enz. Maar je kunt er aardig zeker van zijn dat je je ook zult voelen aangetrokken tot de krachtige CLI (dwz, de Command Line Interface) zodra je eraan raakt gewend. Hoe dan ook, er is veel meer te doen met de Linux GUI dan alleen een aanwijzen-en-klikken. Het geheel is gebaseerd op een grote, weloverdachte architectuur die features verschaft aan de gebruiker die men zich alleen maar voor had kunnen stellen. Dus we zullen dit stap-voor-stap benaderen. In dit hoofdstuk gaan we het alleen maar hebben over de basissetup van de daarmee gepaard gaande hardware en geven een beknopte introductie in het concept van een Desktop Environment. _________________________________________________________________ Instellen van de hardware Een belangrijke beperking in het gebruik van Linux op de desktop was een blijkbaar gebrek aan ondersteuning voor multimediacomponenten zoals geluids- en videokaarten. Maar Linux heeft een lange weg afgelegd in termen van ondersteuning voor deze multimediadevices. De meeste installaties zullen je geluids- en videokaarten detecteren en er overeenkomstig de juiste drivers voor selecteren. Wellicht dat het wel nodig is om de documentatie van je hardware bij de hand te houden, zoals voor informatie over het merk en model van je kaart, diverse specificaties, enz. _________________________________________________________________ Beeldscherminstellingen Het weergavesysteem onder Linux wordt beheerd door een grote suite met externe software genaamd het X-Window systeem. Er is driverondersteuning voor een groot aantal apparaten in opgenomen, welke door ontwikkelaars regelmatig wordt bijgewerkt en aangevuld. De feitelijke configuratie van beeldschermen is uiterst simpel door middel van configuratietools. In geval dat niet lukt, kunnen de instellingen zelfs handmatig worden gemaakt. De gebruiker moet wellicht details zoals het type toetsenbord, de muis, monitorfrequenties, omvang van het video RAM, enz. opgeven als de hardware niet automatisch wordt gedetecteerd. Deze gegevens zijn makkelijk terug te vinden in de hardwarehandleidingen. Wanhoop niet als het display niet tijdens de installatie kan worden geconfigureerd! Je kunt hoe dan ook het beste de installatie continueren. De beeldscherminstellingen kunnen altijd later worden aangemaakt met behulp van de hieronder opgesomde utility's. Deze kunnen ook worden gebruikt om de instellingen van het beeldscherm te herconfigureren, zelfs als de tijdens de installatie gemaakte instellingen correct werken. _________________________________________________________________ Xconfigurator De Xconfigurator is het simpelst van deze utility's. Voor het instellen van het beeldscherm, hoeft de gebruiker slechts de opdracht Xconfigurator in te tikken achter de superuserprompt. Dit wordt normaal gesproken tijdens de installatie zelf aangeroepen, maar het kan ook later worden gebruikt om de instellingen aan te passen. Het utility probeert de hardware te detecteren en het te matchen met een reeds bestaande database. In geval de hardware correct wordt gedetecteerd worden de van toepassing zijnde instellingen gemaakt. Ook krijgt de gebruiker een aantal dialogen gepresenteerd, zoals de benodigde schermresolutie, kleurdiepte en of Linux direct in GUI-modus moet booten. _________________________________________________________________ xf86config Je kunt terugvallen op het utility xf86config wanneer Xconfigurator niet in staat is de hardware te detecteren, of niet achter alle juiste instellingen weet te komen. Dit is in feite een script die de gebruiker voorziet van een interface om alle benodigde instellingen handmatig op te geven. Er worden vragen gesteld over de hardware en de gebruiker moet de juiste informatie aanleveren. Als alles goed gaat, dan wordt een nieuwe configuratie gegenereerd die hopelijk correct werkt! _________________________________________________________________ Wanneer al het andere mislukt ... Hierover is reeds een grote hoeveelheid documentatie beschikbaar in de vorm van HOWTO's, FAQ's enz. De beste manier om hulp te krijgen bij het instellen van je hardware is het raadplegen van een plaatselijke Linux Users Group, waar iemand er nauw bij betrokken is door reeds geconfronteerd te zijn met een probleem dat jij wellicht hebt. Het is hierbij handig als je wat informatie kunt aanleveren over wat de X-server (dwz, het weergavesysteem) rapporteerde voordat het afsloot, als het in de eerste plaats al startte. Het is ook aan te raden de FAQ na te gaan als de groep een discussielijst heeft, aangezien dergelijke onderwerpen veel worden besproken en mensen het gewoonlijk niet prettig vinden de threads weer helemaal opnieuw te beginnen! De meeste fijnafstemming die het met zich meebrengt heeft betrekking op een enkel bestand, /etc/X11/XF86Config, waarin wellicht een paar opties moeten worden gewijzigd. Het helpt om de homepage van [83]XFree86 na te gaan voor een lijst met thans ondersteunde hardware. Een aantal verkopers voorziet wellicht ook in eigen drivers, zoals die voor de Intel 810 chipset. _________________________________________________________________ sndconfig - Geluidsinstellingen Ondersteuning voor geluid is direct in de Linux kernel gebouwd, het meest gebruikelijk in de vorm van geluidsmodules die samen met de kernel worden aangemaakt. Een kernelinstallatie in een Linux distributie bevat ondersteuning voor een heleboel algemene geluidsdevices. Het sndconfig utility voorziet in een wijze om de module voor het device op de machine van de gebruiker te configureren. Het utility zal proberen de aanwezige geluidskaart te detecteren, en de juiste in de kernel te pluggen module selecteren. Als het de geluidskaart niet kan detecteren, vraagt het de gebruiker om meer informatie aan te leveren. Nogmaals, het is waarschijnlijker dat de geluidskaart automatisch zal worden gedetecteerd, maar het is hoe dan ook beter om de documentatie bij de hand te hebben. _________________________________________________________________ X - Het Window Systeem Onder Linux wordt de weergave afgehandeld door een client-server architectuur genaamd het X Window Systeem. Het is gebaseerd op het X-protocol ontwikkeld in 1980's om aan de behoefte te voldoen aan een netwerktransparante grafische gebruikersinterface voor Unix-systemen. X-clients draaien typisch op een remote machine met een overmaat aan computerkracht, terwijl de weergaven worden afgehandeld door een X-server die wellicht draait op een machine met goede grafische mogelijkheden. Het X-protocol verbergt de eigenaardigheden van het besturingsysteem en de onderliggende hardware, zodat een toepassing draaiend op de ene machine zijn interface feitelijk op een andere machine kan weergeven! In geval van een desktop draaien zowel de server als de clients op dezelfde machine, waardoor netwerkondersteuning niet zo van belang is. Het X Window Systeem dat het meeste wordt gebruikt op alle Linux systemen is [84]XFree86, wat een vrije implementatie is van X. Zodra de benodigde hardware-instellingen zijn gemaakt met de Xconfigurator, kan het X-systeem worden opgestart met het script startx. Bovendien kan de X-GUI de standaardinterface worden gemaakt van het systeem door het bewerken van een aantal initialisatie-opties, die elders worden beschreven. _________________________________________________________________ De Desktop Environment De feitelijke GUI wordt geleverd in de vorm van een Desktop Omgeving welk verantwoordelijk is in het voorzien van de werkelijke functionaliteit van de Linux Desktop. De Desktop Omgeving levert achtergrondprocessen, standaardlibrary's en een algemeen framework voor de werking van diverse toepassingen. De omgeving zal zorgen voor alles wat nodig is door de toepassingen voor de uitwisseling met elkaar en te reageren op door gebruikers gegenereerde acties. Een voorbeeld hiervan is het slepen-en-neerzetten, waarbij gegevens van de ene naar de andere toepassing worden doorgegeven door een simpel gebruik van de muis. Dit kan niet worden bewerkstelligd, tenzij de Desktop omgeving voorziet in een standaardmanier om gegevens tussen toepassingen uit te wisselen, en het interpreteren van de acties die de gebruiker via de muis neemt. _________________________________________________________________ Window managers De bediening van vensters op het scherm wordt afgehandeld door een aparte entiteit genaamd de window manager. Dit voorziet in de individuele besturingselementen en eigenschappen van de vensters, in combinatie met desktopbeheer. Voorbeelden hiervan zijn Enlightenment, IceWM, enz. De window manager die je voor je systeem kiest zal bepalen hoe alle vensters op je scherm er uitzien en functioneren. Dit verschilt met het concept "themes", dat slechts de globale verschijning definieert. De window manager wordt verondersteld zorg te dragen voor het feitelijke functioneren van de vensters, zoals de reactie op gebruikersklikken, de minimaliseer en maximaliseer acties het verplaatsen van de vensters, enz. De themes worden in feite door beiden ondersteund, door zowel de Desktop omgeving als de window manager; de gebruiker kan beiden kiezen. _________________________________________________________________ Widgetsets of toolkits Een andere belangrijke component is de widgetset of de toolkit die voorziet in de meest gebruikelijke widgets voor de GUI, dwz, knoppen, tekstkaders, enz. Dit wordt door de programmeurs van toepassingen gebruikt om de benodigde interface voor hun toepassing te creëren. GNOME maakt bijvoorbeeld gebruik van de GIMP Toolkit, genaamd gtk+, terwijl KDE is gebaseerd op de Qt-library. Aangezien in een bepaalde omgeving een enkele widget wordt gebruikt, zullen alle toepassingen dezelfde verschijning hebben. Maar dit is een onderdeel waar de eindgebruiker zich niet mee hoeft bezig te houden, het zijn de ontwikkelaars die hier meer in zijn geïnteresseerd. Als je van plan bent een op een GUI gebaseerde toepassing te schrijven, dan moet je waarschijnlijk als eerste beginnen met zoeken naar de selectie widgetsets die je wilt gebruiken om vensters, formulieren, enz. te maken. _________________________________________________________________ Beschikbare opties Nu wemelt de wereld van Linux van een heleboel Desktop omgevingen, maar slechts een paar vertonen zich als de favorieten, GNOME, KDE, xfce, enz. Hiervan zijn GNOME en KDE de meest ambitieuze projecten die streven naar een heleboel kracht in de Linux Desktop. Reeds een groot aantal commerciële ondernemingen zijn plotseling ontstaan rondom deze twee omgevingen. Welke omgeving je ook kiest, ze voorzien in vergelijkbare features in termen van toepassingen, performance, enz. Maar het enige probleem is dat ze totaal verschillende richtingen zijn opgegaan, en vandaar is de samenwerking tussen deze twee erg mager. Dus die prachtige mailclient die je zo prettig vindt in de ene omgeving werkt simpelweg wellicht niet in de andere omgeving! KDE was de eerste van de twee, gebaseerd op de Qt widget set gecreëerd door een bedrijf met de naam TrollTech. Maar het licentieschema met betrekking tot het project was zodanig dat het geen volledig vrije software was. Dus als reactie daarop begon het GNOME project, om een werkelijk vrije GUI voor het GNU/Linux systeem te maken. Maar de licentieproblemen zijn sindsdien opgelost, zodat de competitie nu is gebaseerd op technische details zoals de performances, de features, toepassingen, enz. In plaats van het aanbevelen van een bepaalde omgeving, is het beter als de gebruiker alle verschillende keuzes die in Linux land beschikbaar zijn zelf probeert alvorens te besluiten welke ze het prettigst vindt. Een aantal mensen maakt simpelweg gebruik van een specifieke omgeving omdat ze die altijd al hebben gebruikt en de noodzaak er niet van inzien om naar een ander over te schakelen! _________________________________________________________________ Hoofdstuk 4. Packages - Softwarebeheer Net als andere besturingssystemen heeft ook Linux tamelijk goed gedefinieerde manieren om software op het systeem te installeren. De software wordt gewoonlijk in de vorm van bundels, genaamd ``packages'' gedistribueerd. De packages zelf zijn in veel verschillende vormen beschikbaar, afhankelijk van de inhoud en voor welke distributie ze zijn ontworpen. Software wordt gewoonlijk als broncode gedistribueerd of in de vorm van klaar-voor-gebruik zijnde binary's, gecompileerd voor bepaalde systeemomgevingen. _________________________________________________________________ Tarballs Tarballs zijn met tar en gzip gecomprimeerde bestandsarchieven (met de extensie .tar.gz of.TGZ) die worden gebruikt om broncode te distribueren. Deze maken gewoonlijk gebruik van de GNU Autotools waardoor de gebruiker de broncode zelf op het doelsysteem kan compileren. De GNU Autotools zijn samengesteld uit drie utility's - autoconf, automake en libtool, waarmee ontwikkelaars software kunnen maken die op een diversiteit aan systemen kan worden gecompileerd, gebruik makend van de faciliteiten beschikbaar op de doelcomputer. 1. Decomprimeer het package en pak het uit in één of andere subdirectory. tar -xzf cd Gebruik onderstaande stappen in de hierboven gecreëerde directory. Hiermee kan een eindgebruiker de broncode uit het package compileren zonder ook maar iets af te hoeven weten van de programmeertaal C! De enige vereiste is dat de compiler, relevante library's en header bestanden op het systeem zijn geïnstalleerd. 2. Gebruik de volgende opdracht voor het configureren van de broncode voor een correcte compilatie op het huidige systeem. ./configure Aan het script configure kunnen een aantal opties worden doorgegeven, die kunnen worden gebruikt om specifieke delen van de software te (de-)activeren of om alternatieve library's te specificeren, enz. Een lijst met de mogelijke opties kan worden verkregen uit het script zelf: ./configure --help 3. De volgende twee opdrachten worden gebruikt om zowel de software te compileren als het ook te installeren op het systeem. Hierbij zijn alleen voor de tweede opdracht rootprivileges vereist, aangezien bij deze opdracht de bestanden her en der worden geïnstalleerd. make make install Het enige probleem van deze benadering is, is dat er geen manier is om alle geïnstalleeerde bestanden op het systeem bij te houden. Ook is er wellicht niet altijd een makkelijke manier om de installatie van software op een zuivere manier ongedaan te maken. De volgende opdracht kan wel worden gebruikt om te achterhalen welke bestanden waar werden geïnstalleerd. make -n install _________________________________________________________________ RPM - De Redhat Package Manager De Redhat Package Manager afgekort tot ``RPM'' is een gebruikelijke manier om voorgecompileerde binary's als ook broncode te distribueren, die wordt toegepast in een paar populaire distributies zoals Redhat, SuSE en Mandrake. De binary's worden geleverd in de vorm van `*.rpm' bestanden die simpelweg rpm's worden genoemd. RPM onderhoudt een database van alle packages die op het systeem worden geïnstalleerd samen met de services waarin ze voorzien en die ze nodig hebben. Deze database wordt gebruikt om bij te houden welke bestanden op het systeem worden geïnstalleerd en welke packages van het systeem worden verwijderd. Het wordt ook gebruikt om alle afhankelijkheden die tussen packages kunnen bestaan te verifiëren. Ze worden gemanipuleerd met de opdracht rpm in combinatie met de relevante opties, waarvan er een aantal hieronder worden aangegeven. Installeren rpm -ivh Deze opdracht wordt gebruik om een nieuw rpm (package) op het systeem te installeren. RPM is verantwoordelijk voor het controleren van alle afhankelijkheden die voor een specifiek package nodig zijn. Het vervolgt de installatie alleen wanneer andere benodigde packages voor dit package beschikbaar zijn en anders retourneert het een foutmelding en breekt de installatie af. Upgraden rpm -Uvh Dit dient voor het upgraden van een bestaand package of voor het installeren ervan als het nog niet op het systeem voorkomt. Ook in dit geval, zal RPM de nodige afhankelijkheidscontroles uitvoeren voordat packages worden aangepast. De-installeren rpm -e Dit wordt gebruikt voor het verwijderen, d.w.z. het ongedaan maken van de installatie van op het systeem bestaande packages. Nogmaals, er zal geen actie worden ondernomen tenzij aan alle afhankelijkheden is voldaan; RPM zal het package alleen verwijderen als het vaststelt dat geen van de bestanden uit het package nodig is voor een ander package. Ondervragen van de database rpm -q De opdracht rpm kan ook worden gebruikt om met behulp van de opdrachtregeloptie -q geïnstalleerde packages te ondervragen. Deze opdracht kan met andere opties worden aangevuld om te verzoeken om specifieke informatie over een package. De manpage van rpm voorziet in een uitstekende hulp over alle verschillende dingen die met rpm kunnen worden bewerkstelligd. Broncode rpm's Soms worden packages gedistribueerd in de vorm van broncode in rpm bestanden, welke nu worden benoemd met de extensie ``.srpm'', eenvoudigweg rpm's genoemd. Dit is een manier om het packagebeheer van RPM te combineren met de veelzijdigheid van tarballs met broncode. De srpm bevat de tarball met broncode en een ``.spec'' bestand, waarin alle informatie staat die RPM nodig heeft om de tarball te verwerken. Het enige dat de gebruiker met de srpm kan doen is het opnieuw compileren! rpm --rebuild RPM opent de srpm en verwerkt de tarball hierin net als een normale gebruiker de make opdrachten zou hebben gebruikt. Tenslotte wordt een nieuw rpm binair package aangemaakt wat op het systeem kan worden geïnstalleerd. Je kunt de SRPM ook installeren zoals je dat met broncode zou doen door gebruik te maken van de normale installatie-opties. Alles zal ergens onder /usr/src/Redhat/ worden geïnstalleerd. Je kunt het nu net als elke andere tarball met broncode gebruiken! Opmerking Maximum RPM Er is uitgebreide informatie over RPM beschikbaar in de vorm van een boek met de naam [85]Maximum RPM, gepubliceerd door Redhat. In dit boek wordt alles beschreven wat er valt te weten over RPM vanaf een introductie packagebeheer tot aan het maken van je eigen packages en zelfs het gebruik van de RPM library API om toepassingen te creëeren waar mogelijkheden voor packagebeheer in zijn opgenomen. Opmerking Systeeminstallatie Bij distributies waar gebruik wordt gemaakt van RPM zoals RedHat en SuSE, is het installatieprogramma zelf in staat om voor afhankelijkheden te zorgen. Dus wanneer Linux de eerste maal in aangepaste modus wordt geïnstalleerd, kan de gebruiker gewoon de benodigde packages opgeven. De installatiescripts zullen automatisch de packages opnemen die nodig zijn voor de geselecteerde packages en de gebruiker vragen om bevestiging van de geselecteerde packages. _________________________________________________________________ De Debian methode Debian maakt voor het distribueren van software gebruik van een packageformaat genaamd "deb". Het packagebeheer wordt volledig uitgevoerd door een set tools die de afhankelijkheidscontrole, remote installaties, enz. zeer goed uitvoert. _________________________________________________________________ APT Dit is wat de Debian manpages hebben te zeggen over APT (Advanced Package Tool: APT is een beheersysteem voor softwarepackages. Het is nog in ontwikkeling; de geweldige front-ends zijn nog niet beschikbaar. Zie in de tussentijd alsjeblieft apt-get(8). _________________________________________________________________ apt-get: Packagebeheer was nog nooit zo makkelijk! apt-get is de basistool wat je het meeste nodig hebt om packages op je systeem te beheren. Het heeft een volledige database met packages beschikbaar voor installatie, en is gebaseerd op gebruikersopdrachten, het zal installeren, de installatie ongedaan maken, upgraden, enz. en helpen het systeem in een gezonde conditie te houden voor alle typen. Laten we eens kijken wat er allemaal bij dit proces komt kijken. Sources apt-get moet een paar lokaties kennen waar het packages voor de intallatie kan ophalen. Deze lijst wordt beheerd in een bestand met de naam /etc/apt/sources.list. Hier is een voorbeeld van een lijst met bronnen: Voorbeeld 4-1. Listing van /etc/apt/sources.list $ cat /etc/apt/sources.list # Zie sources.list(5) voor meer informatie, denk er vooral # aan dat je alleen gebruik kunt maken van http, ftp of bestands-URI's # CDROM's worden beheerd via de apt-cdrom tool. #deb http://http.us.debian.org/debian stable main contrib non-free #deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://http.us.debian.org/debian unstable main contrib non-free deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-fre e # Haal het commentaarteken weg als je wilt dat de apt-get source functie werkt #deb-src http://http.us.debian.org/debian stable main contrib non-free #deb-src http://non-us.debian.org/debian-non-US stable non-US #deb file:/mnt/woody1/debian unstable contrib main non-free #deb file:/mnt/woody2/debian unstable contrib main non-free #deb file:/mnt/woody3/debian unstable contrib main non-free Cache Zoals we kunnen zien, kan het systeem zodanig worden geconfigureerd dat het packages van verschillende lokaties ophaalt. Zodra deze zijn gedownload, worden ze in een cache gebied /var/cache/apt/ geplaatst. Afhankelijkheidscontrole De deb packages onderhouden een lijst met afhankelijkheden van packages die moeten worden geïnstalleerd wil een bepaald package werken. Wanneer je tracht een package te installeren of ook maar upgraden, dan zal apt gaan zoeken naar onvervulde afhankelijkheden en dan een lijst maken met datgene dat moet worden bijgewerkt of geïnstalleerd, nog voordat het benodigde package wordt verwerkt. Voorbeeld 4-2. Package afhankelijkheden in Debian # apt-get install kword Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: kdebase-libs koffice-libs The following NEW packages will be installed: kdebase-libs koffice-libs kword 0 packages upgraded, 3 newly installed, 0 to remove and 160 not upgraded. Aangezien het reeds een lijst heeft met alle beschikbare packages, zal het systeem simpelweg vragen om bevestiging om het vervullen van alle afhankelijkheden op te starten. De gebruiker hoeft zich niet bezig te houden met het bijgewerkt houden van zijn systeem in termen van die afhankelijkheden. dpkg en dselect dpkg is een tool waarmee de gebruiker kan werken met individuele packages, zoals het ondervragen van de inhoud, controleren van de versie, configuratie, enz. Het kan ook worden gebruik wanneer je een individueel deb bestand dat je wellicht hebt wilt installeren. Dit bestand zal alle afhankelijkheidsinformatie bevatten, wat dpkg net als apt-get zal verwerken. dselect is een tekstfront-end voor apt-get. Hiermee kan de gebruiker de lijst met bronnen configureren, packages uit een lijst met bekende packages selecteren, enz. Het is handig wanneer je de packagestructuren wilt onderzoeken op zoek naar datgene wat je wellicht interessant lijkt. _________________________________________________________________ Hoofdstuk 5. Multi-user omgeving Linux is een echte multi-user omgeving. Dit betekent dat het systeem verschillende gebruikers met verschillende privileges kan ondersteunen. Elke gebruiker heeft toegang tot een voorgedefinieerde set systeemservices en zijn/haar eigen privé-gegevens. De privé-gegevens kunnen op hun beurt weer worden gedeeld met andere gebruikers door hun toegangsprivileges toe te kennen. Het controleren van de privileges wordt bewerkstelligd met de hulp van gebruikersaccounts die door het systeem worden beheerd. Linux voorziet in een aantal opdrachten die kunnen worden gebruikt om gebruikersaccounts aan te maken en te beheren. Ze worden door een aantal bestanden en directory's onder /etc ondersteund, welke worden gebruikt om informatie over gebruikers te bewaren. De faciliteiten waarin is voorzien kunnen in grote lijnen in twee categoriën worden geklassificeerd, t.w. gebruikersbeheer en groepsbeheer. _________________________________________________________________ Gebruikersaccounts Traditioneel wordt de informatie met betrekking tot de gebruikers geplaatst in een bestand genaamd /etc/passwd. Hierin staat de loginnaam, de volledige naam, homedirectory en andere info in standaardformaat. Hier kan ook het versleutelde wachtwoord van de gebruiker in staan, vandaar de naam van het bestand. Maar tegenwoordig worden er betere manieren gebruikt voor de authenticatie, waarbij het wachtwoord elders wordt opgeslagen. _________________________________________________________________ Superuser Account Standaard heeft elke Linux installatie een speciaal bevoorrecht gebruikersaccount, genaamd de root of superuser. Deze gebruiker heeft volledige toegang tot alle services en bronnen die op het systeem aanwezig zijn. Normaal gesproken is het 't account van de systeembeheerder, en het wordt gebruikt om speciale taken uit te voeren waarvoor speciale privileges zijn vereist die niet beschikbaar zijn voor normale accounts. Iemand die als root inlogt, kan elk bestand op het systeem aanpassen, ongeacht de feitelijke eigenaar van het bestand en elk programma overal op het systeem uitvoeren. Als zodanig is het 't krachtigste account en moet het met de nodige voorzichtigheid worden gebruikt. Fouten die worden gemaakt onderwijl als root ingelogd, kunnen erg gevaarlijk blijken te zijn voor het systeem; vandaar dat het uiterst belangrijk is dat de gebruiker het gebruik van het rootaccount vermijdt, tenzij het absoluut noodzakelijk is. Van alle andere accounts wordt gezegd dat ze niet bevoorrecht zijn, aangezien ze alleen toegang hebben tot een beperkte hoeveelheid services. Hun privileges kunnen verder worden beheerst met behulp van het gebruik van [86]groepen die worden toegepast voor het collectief beheren van gebruikersaccounts. _________________________________________________________________ Nieuwe gebruikers toevoegen De standaardopdracht useradd kan worden gebruikt voor het aanmaken van een nieuwe gebruiker op het systeem. Het is één van de opdrachten uit een familie opdrachten voor het gebruikersbeheer, die alleen door een gebruiker met speciale privileges, d.w.z. de [87]root kunnen worden aangeroepen. De meest gebruikelijke argumenten waarin de opdracht voorziet zijn: adduser -g -m -p Het resultaat van deze opdracht is de aanmaak van een nieuwe gebruiker met deze login. Tevens wordt onder de directory /home een directory met dezelfde naam aangemaakt en worden er een aantal standaardbestanden naar deze directory gekopieerd. Tevens worden de nodige bestanden met gebruikersinformatie bijgewerkt, overeenkomstig de informatie die door de superuser is aangeleverd. Aan de nieuwe gebruiker wordt een uniek nummer toegekend genaamd de UID, dwz zijn/haar User ID. Dit ID kan een waarde groter dan een bepaald getal hebben welke wordt voorgesteld door een constante met de naam UID_MIN. Deze constante is systeemspecifiek, gedefinieerd in het bestand /etc/login.defs. Deze voorziening biedt de systeembeheerder de mogelijkheid een minimum aantal ID's voor systeemaccounts te reserveren. Opmerking Verder onderzoek In de manpages staat een opsomming van heel wat andere opties zoals de levensduur van het gebruikersaccount, de standaardshell, enz. Een object van belang is de directory /etc/skel/ waarin de initiële inhoud van de homedirectory is te vinden en /etc/default/useradd met de standaardwaarden die door de opdracht worden gebruikt. Belangrijk Distributiespecifieke opties Een aantal distributies kan een eigen standaardfunctioneren specificeren voor de opdracht useradd. Een voorbeeld is Redhat, waar de opdracht een nieuwe groep zal aanmaken die standaard dezelfde naam heeft als de gebruiker. Dit kan worden overschreven met de optie -n. _________________________________________________________________ Gebruikersaccounts verwijderen De opdracht userdel wordt gebruikt om een bestaand gebruikersaccount van een systeem te verwijderen. Dit kan als volgt worden aangeroepen: userdel -r Deze opdracht past alle systeembestanden aan, verwijdert alle informatie over de opgegeven gebruikersnaam. De optie -r zal ervoor zorgen dat de homedirectory van de gebruiker wordt verwijderd met alle bestanden en subdirectory's die het bevat. _________________________________________________________________ Gebruikersinformatie aanpassen De opdracht usermod wordt gebruikt om informatie over een bestaande gebruiker aan te passen. De argumenten die hierdoor worden geaccepteerd zijn vrijwel hetzelfde als die worden geaccepteerd door de opdracht [88]useradd. Het enige verschil is dat er bestaande records mee worden aangepast in plaats dat er nieuwe worden aangemaakt. _________________________________________________________________ Het concept ``groepen'' onder Linux Onder Linux worden gebruikers ingedeeld in logische verzamelingen, genaamd groepen. Deze worden gebruikt om diverse soorten privileges aan systeemobjecten voor een groep gebruikers samen te verlenen. Een gebruiker kan tot een aantal groepen behoren, maar hij/zij zal altijd een standaardgroep hebben, in combinatie met andere groepen waarvan wordt gezegd dat die aanvullend zijn. Wanneer een gebruiker aan een bepaalde groep wordt toegevoegd, dan worden alle privileges verleend aan die groep ook verleend aan die gebruiker. _________________________________________________________________ Groepen beheren De superuser kan gebruik maken van een set opdrachten analoog aan die voor gebruikersbeheer. Dit zijn: groupadd groupdel groupmod Deze opdrachten hebben functies die vergelijkbaar zijn met de corresponderende functies die worden gebruikt voor gebruikersaccounts. Nogmaals, aan elke groep wordt een uniek nummer toegekend genaamd GID, dwz de Group ID. De minimumwaarde die aan een groep kan worden toegekend wordt gedefinieerd als GID_MIN in het bestand /etc/login.defs. Dit is een systeemspecifieke instelling, die de systeembeheerder toestaat een set ID's voor systeemaccounts te reserveren. In aanvulling gebruikt de superuser de opdrachten [89]usermod en [90]useradd met de optie -D om voor diverse gebruikers groepslidmaatschappen te specificeren. _________________________________________________________________ Voorgedefinieerde groepen Gebruikersgroepen kunnen effectief worden gebruikt om gebruikers overeenkomstig de privileges die hun zijn toegekend af te zonderen. Een aantal van dergelijke groepen wordt tijdens de systeeminstallatie aangemaakt, die een bepaalde set privileges hebben voor de systeemservices waarmee ze corresponderen. Wanneer een gebruiker deelnemer is gemaakt van een dergelijke groep, dan verwerft die gebruiker toegang tot de services die beschikbaar zijn voor die groep. Een paar van die groepen worden hieronder opgesomd, een volledige lijst kan worden verkregen uit het bestand /etc/group. Voorgedefiniëerde groepen onder Linux wheel Dit is de set met bevoorrechte gebruikers aan wie speciale volmachten op het systeem zijn verleend. Standaard is root de enige deelnemer van deze groep. users Dit is de vergaarbak groep waaraan alle nieuwe gebruikers worden toegevoegd. Alle deelnemers van deze groep zijn voorzien van basisprivileges op het systeem zoals gedefinieerd door de systeembeheerder. pppusers Gebruikers die PPP (point-to-point) verbindingen met remote computers kunnen opstarten en afbreken. Gewoonlijk brengt dit met zich mee het recht de PPP Daemon (pppd) aan te roepen. _________________________________________________________________ Toegangsprivileges Tot zoverre hebben we het gehad over het besturen van gebruikersacties via het gebruik van privileges. Laten we snel gaan kijken naar de wijze waarop Linux beveiliging op basisniveau implementeert, tussen meerdere gebruikers op hetzelfde systeem. Dezelfde principes vormen de basis voor het verder implementeren van beveiligingsmaatregels tegen buitenstaanders. Een bestand is niet slechts samengesteld uit de inhoud en een verwijzer in het bestandssysteem informerend waar het te vinden. Het heeft ook een eigenaar (een user id), een groep (een groeps-id), permissies, diverse tijdregistraties en andere informatie. Deze worden gezamelijk de kenmerken ervan genoemd, welke in het bestandssysteem zijn opgeslagen. _________________________________________________________________ Eigenaar en groep van bestand Voor het implementeren van toegangsprivileges, moet eerst een eigenaar en groep voor het bestand worden gedefinieerd. Deze informatie bewerkstelligd wie aanspraak kan maken op de controle van het bestand. Een bestand krijgt een eigenaar en groep zodra het wordt aangemaakt. Gewoonlijk is de eigenaar de huidige gebruiker en de groep de groep van de directory waarin het bestand wordt aangemaakt; maar dit is systeemafhankelijk. $ ls -l NGL.sgml -rw-r--r-- 1 sameer users 10565 Jun 1 08:59 NGL.sgml In bovenstaande uitvoer zien we naast andere informatie de eigenaar van het bestand. Dit bestand behoort toe aan de gebruiker ``sameer'' op het systeem en het is ook toegankelijk voor de groep ``users''. _________________________________________________________________ Bestandspermissies Aan elk bestand is onder Linux een lijst met permissies gekoppeld, die het type toegang specificeert die de verschillende gebruikers voor dat bestand hebben. De bestandspermissies worden ook de toegangsmodi ervan genoemd. Hier is het voorbeeld dat we eerder gebruikte: $ ls -l NGL.sgml -rw-r--r-- 1 sameer users 10565 Jun 1 08:59 NGL.sgml De allereerste kolom in bovenstaande uitvoer definieert de toegangsmodi voor het bestand. Hun betekenis wordt duidelijk wanneer we kijken naar de wijze waarop toegangsmodi worden voorgesteld. Deze kunnen worden uitgedrukt als octale getallen of een mnemonische naam. Toegangsmodi of permissies Leestoegang (mnemonische naam: r, binair gewicht: 4) Permissie om het bestand te lezen; voor directory's betekent dit de permissie om de inhoud van het bestand weer te geven. Schrijftoegang (mnemonische naam: w, binair gewicht: 2) Permissie om het bestand aan te passen; voor directory's betekent de permissie om bestanden aan te maken of te verwijderen. Uitvoertoegang (mnemonische naam: x, binair gewicht: 1) Permissie om het bestand uit te voeren; voor directory's betekent de permissie om bestanden in de directory te benaderen. In bovenstaande uitvoer verschijnen deze permissies in groepen van drie, het allereerste teken verwerpend. Dus elk drietal is samengesteld uit ``rwx'' en de afwezigheid van een permissie wordt gemarkeerd door het streepje ``-''. De drie drietallen stellen respectievelijk permissies voor de eigenaar van het bestand, de groep van het bestand en de overige groepen voor. De volgende interpretaties kunnen dus over het bestand worden gemaakt: De eigenaar van het bestand ``sameer'' heeft lees- en schrijfpermissies. De groep van het bestand ``users'' heeft alleen leespermissies. De andere groepen hebben alleen leespermissies. Laat ons nu eens kijken naar het concept octale waarde. Bij het manipuleren van de permissies geassocieerd met een bestand, is het een algemeen gebruik om ze in octale getallen te specificeren. Hiervoor wordt elk drietal geïnterpreteerd als een octaal getal, met de drie modi ``r-w-x'' die hun respectieve binaire waarden hebben. In bijvoorbeeld bovenstaande uitvoer zijn de permissies voor de eigenaar: `rw-'. Dit heeft de octale waarde (4+2+0=)6. En alle permissies kunnen worden uitgedrukt als het octale getal 644. _________________________________________________________________ Bestandspermissies beheren Een set opdrachten is beschikbaar om de diverse permissies of toegangsmodi geassocieerd met een bestand te manipuleren. Een gedetailleerde behandeling van deze opdrachten zou overbodig zijn. Deze worden allen gedistribueerd in een enkel package genaamd `fileutils'' wat onderdeel uitmaakt van het GNU-systeem. Meer informatie kan worden verkregen uit de relevante documentatie zoals manpages en infopages. References 1. mailto:sam_buddhe@yahoo.com 2. mailto:bokkie@nl.linux.org 3. file://localhost/tmp/NGL-NL/NGL-NL.html#ABOUT 4. file://localhost/tmp/NGL-NL/NGL-NL.html#INTRO 5. file://localhost/tmp/NGL-NL/NGL-NL.html#DOCRES 6. file://localhost/tmp/NGL-NL/NGL-NL.html#CREDITS 7. file://localhost/tmp/NGL-NL/NGL-NL.html#FEEDBACK 8. file://localhost/tmp/NGL-NL/NGL-NL.html#VERSIONS 9. file://localhost/tmp/NGL-NL/NGL-NL.html#AEN73 10. file://localhost/tmp/NGL-NL/NGL-NL.html#LINTRO 11. file://localhost/tmp/NGL-NL/NGL-NL.html#DOS 12. file://localhost/tmp/NGL-NL/NGL-NL.html#MUNIX 13. file://localhost/tmp/NGL-NL/NGL-NL.html#DESKTOP 14. file://localhost/tmp/NGL-NL/NGL-NL.html#GNU-LINUX 15. file://localhost/tmp/NGL-NL/NGL-NL.html#GNU-FSF 16. file://localhost/tmp/NGL-NL/NGL-NL.html#AEN150 17. file://localhost/tmp/NGL-NL/NGL-NL.html#COMMUNITY 18. file://localhost/tmp/NGL-NL/NGL-NL.html#LRES 19. file://localhost/tmp/NGL-NL/NGL-NL.html#FILEHANDLING 20. file://localhost/tmp/NGL-NL/NGL-NL.html#FILESYSTEMS 21. file://localhost/tmp/NGL-NL/NGL-NL.html#DIRECTORIES 22. file://localhost/tmp/NGL-NL/NGL-NL.html#PARTITIONS 23. file://localhost/tmp/NGL-NL/NGL-NL.html#MOUNTPARTS 24. file://localhost/tmp/NGL-NL/NGL-NL.html#OTHER-FS 25. file://localhost/tmp/NGL-NL/NGL-NL.html#INSTALL-PARTS 26. file://localhost/tmp/NGL-NL/NGL-NL.html#THEGUI 27. file://localhost/tmp/NGL-NL/NGL-NL.html#HARDWARESETUP 28. file://localhost/tmp/NGL-NL/NGL-NL.html#DISPLAY 29. file://localhost/tmp/NGL-NL/NGL-NL.html#SNDCONFIG 30. file://localhost/tmp/NGL-NL/NGL-NL.html#X-WINDOWS 31. file://localhost/tmp/NGL-NL/NGL-NL.html#THEDE 32. file://localhost/tmp/NGL-NL/NGL-NL.html#THEWM 33. file://localhost/tmp/NGL-NL/NGL-NL.html#THEWS 34. file://localhost/tmp/NGL-NL/NGL-NL.html#DE-OPTIONS 35. file://localhost/tmp/NGL-NL/NGL-NL.html#PACKAGING 36. file://localhost/tmp/NGL-NL/NGL-NL.html#TARBALLS 37. file://localhost/tmp/NGL-NL/NGL-NL.html#RPMS 38. file://localhost/tmp/NGL-NL/NGL-NL.html#DEB 39. file://localhost/tmp/NGL-NL/NGL-NL.html#APT 40. file://localhost/tmp/NGL-NL/NGL-NL.html#APT-GET 41. file://localhost/tmp/NGL-NL/NGL-NL.html#USERINFO 42. file://localhost/tmp/NGL-NL/NGL-NL.html#USERS 43. file://localhost/tmp/NGL-NL/NGL-NL.html#SUPERUSER 44. file://localhost/tmp/NGL-NL/NGL-NL.html#USERADD 45. file://localhost/tmp/NGL-NL/NGL-NL.html#USERDEL 46. file://localhost/tmp/NGL-NL/NGL-NL.html#USERMOD 47. file://localhost/tmp/NGL-NL/NGL-NL.html#GROUPS 48. file://localhost/tmp/NGL-NL/NGL-NL.html#GROUPCMD 49. file://localhost/tmp/NGL-NL/NGL-NL.html#PDGROUPS 50. file://localhost/tmp/NGL-NL/NGL-NL.html#PRIVILEGES 51. file://localhost/tmp/NGL-NL/NGL-NL.html#OWNER 52. file://localhost/tmp/NGL-NL/NGL-NL.html#FILE-PERMS 53. file://localhost/tmp/NGL-NL/NGL-NL.html#FILEUTILS 54. file://localhost/tmp/NGL-NL/NGL-NL.html#DU-HMS 55. file://localhost/tmp/NGL-NL/NGL-NL.html#FDISK-L 56. file://localhost/tmp/NGL-NL/NGL-NL.html#MOUNT 57. file://localhost/tmp/NGL-NL/NGL-NL.html#MTAB 58. file://localhost/tmp/NGL-NL/NGL-NL.html#AEN508 59. file://localhost/tmp/NGL-NL/NGL-NL.html#AEN524 60. http://www.linuxdoc.org/ 61. http://www.linuxdoc.org/ 62. http://www.linux.org/ 63. http://www.unix-systems.org/what_is_unix.html 64. http://www.tuxedo.org/~esr/faqs/linus/ 65. http://www.gnu.org/gnu/linux-and-gnu.html 66. http://www.gnu.org/ 67. http://www.stallman.org/ 68. http://www.fsf.org/ 69. http://www.fsf.org/ 70. http://www.opensource.org/ 71. http://www.gnu.org/gnu/the-gnu-project.html 72. http://www.linux.org/ 73. http://www.gnome.org/ 74. http://www.kde.org/ 75. http://www.linuxgames.com/ 76. http://www.tuxgames.com/ 77. http://www.linuxdoc.org/ 78. http://www.gnu.org/ 79. http://www.tuxedo.org/~esr/ 80. http://www.mozilla.org/ 81. http://www.opensource.org/ 82. http://www.opensource.org/halloween/ 83. http://www.xfree86.org/ 84. http://www.xfree86.org/ 85. http://www.rpmdp.org/rpmbook/ 86. file://localhost/tmp/NGL-NL/NGL-NL.html#GROUPS 87. file://localhost/tmp/NGL-NL/NGL-NL.html#SUPERUSER 88. file://localhost/tmp/NGL-NL/NGL-NL.html#USERADD 89. file://localhost/tmp/NGL-NL/NGL-NL.html#USERMOD 90. file://localhost/tmp/NGL-NL/NGL-NL.html#USERADD