next_inactive up previous be.comp.os.linux FAQ Inhoudsopgave * [1]1 Inleiding en algemene vragen * [2]2 Distributies * [3]3 Configuratie + [4]3.1 Internet + [5]3.2 Systeeminstellingen + [6]3.3 Softwareinstallatie + [7]3.4 Hardwareinstallatie * [8]4 Gebruik + [9]4.1 Grafische omgevingen + [10]4.2 Shells + [11]4.3 Office-suites en dergelijke + [12]4.4 Multimedia + [13]4.5 Internet applicaties * [14]5 Documentatie + [15]5.1 Online + [16]5.2 Boeken * [17]6 Beveiliging + [18]6.1 Algemeen + [19]6.2 Toegepast 1 Inleiding en algemene vragen 1.0.1 Wat is bcol? bcol staat voor be.comp.os.linux, de Belgische nieuwsgroep die zich toespitst op GNU/Linux. Zo heb je ook nog talloze andere afkortingen, zoals ncol (nl.comp.os.linux), cola (comp.os.linux.advocacy), coln (comp.os.linux.networking), cols (comp.os.linux.security) enz... 1.0.2 Links hoor ik versie 10.0, rechts 2.6.x en daartussen ergens 7.1. Wat is nu de laatste Linux-versie? Je moet het onderscheid maken tussen (de) Linux(-kernel) en een GNU/Linux-distributie. De Linux-kernel is het hart van het systeem: ze zorgt o.a. voor het aanspreken van de hardware en het organiseren en controleren van de processen. De laatste stabiele versie van Linux heeft als versienummer 2.6.x of 2.6.x.y waarbij x en y getallen zijn. Op [20]http://www.linux.org kan je de laatste versie vinden. Het derde cijfer wordt geincrementeerd wanneer nieuwe mogelijkheden beschikbaar zijn, het vierde cijfer is een kleine update en wordt niet altijd gebruikt. Een GNU/Linux-distributie is een collectie van tools en softwaretitels samen met de Linux-kernel. Samen zijn ze wat ingewijden GNU/Linux noemen, het eigenlijke systeem waar je als gebruiker mee in contact komt. GNU/Linux-distributies zijn er in overvloed. Voor meer informatie over de distributies verwijs ik je naar de sectie Distributies. 1.0.3 Hoe stel ik mijn probleem op bcol? Het is zeer belangrijk dat je je vraag goed stelt met voldoende bijkomende informatie. Zo is het gewoon vermelden dat je een probleem hebt met een bepaald onderwerp verre van voldoende. Indien je een probleem tegenkomt, formuleer dan duidelijk: * Wat er gebeurt (het probleem) * Wanneer het gebeurt (wat je deed toen het probleem de kop op stak) * Of het reproduceerbaar is (komt het probleem telkens als je bovenstaande doet of niet) * Foutmelding (wat er op het scherm komt te staan) * Log-inhoud (bv regels die in /var/log/messages staan welke betrekking kunnen hebben tot het probleem). * Omgeving (distributie + versie, versie van de programma(s) die betrekking hebben tot het probleem, systeem-apparaten die betrekking hebben tot het probleem, ...) 1.0.4 Hoe werkt het GNU/Linux ontwikkelmodel? Een distributie, zoals al eerder aangehaald, bevat verschillende softwarecomponenten. Deze componenten worden onafhankelijk van elkaar ontwikkeld en het samenbrengen van deze componenten in een distributie gebeurt tevens op verschillende manieren, afhankelijk van de distributie die je bekijkt. Algemeen geldt dat de software componenten op een gelijkaardige manier ontwikkeld worden. Er is een publieke mailinglist waarop men discussies houdt en waar bijdragen gepresenteerd worden zodat andere ontwikkelaars en geinteresseerden deze kunnen testen. Wanneer een dergelijke bijdrage aanvaard wordt wordt ze aan de broncode van de software component toegevoegd door een officiele ontwikkelaar van het project. Een dergelijke officiele ontwikkelaar kan een vrijwilliger zijn maar tevens een werknemer die actief bijdraagt aan het ontwikkelproces. De broncode wordt meestal centraal beheerd op een server waarvan ontwikkelaars steeds de laatste versie kunnen afhalen. Dergelijke servers draaien meestal specifieke software die toelaten om de software parallel te ontwikkelen, aanpassingen ongedaan te maken en dergelijke meer. Af en toe zal de hoofdontwikkelaar van de software de broncode in zijn huidige toestand vastleggen en, na wat laatste aanpassingen, voor het brede publiek ter beschikking stellen. Dit wordt dan een release genoemd en wordt met een versienummer geidentificeerd. Als voorbeeld van een dergelijk ontwikkelproces nemen we de Linux kernel onder de loupe. De Linux kernel De kernel, het hart van elk GNU/Linux systeem, wordt ontwikkeld door enkele honderden ontwikkelaars, zowel vrijwilligers als werknemers in dienst. Zo bevat de upgrade tussen 2.6.8 en 2.6.9 bijdragen van ongeveer 667 mensen. De ganse ontwikkeling van de Linux kernel gebeurt hoofdzakelijk op een specifieke (publieke) mailinglist. Het zal je niet verbazen wanneer ik je vertel dat deze zeer druk is. Op deze mailinglist komen bijdragen terecht die dan door tientallen, zoniet honderden anderen getest worden alvorens ze ook maar in aanmerking komen voor toevoeging aan de öfficiele" kernel. Wanneer een dergelijke bijdrage in aanmerking komt om in de officiele kernel opgenomen te worden wordt de bijdrage door een hoofdontwikkelaar in de kernel broncode opgenomen. Dit kan Linus Torvalds zelf zijn, de geestelijke vader van Linux, of een van de ontwikkelaars die Linus' zegen hebben gekregen om rechtstreeks code aan te passen. Wanneer er voldoend grote aanpassingen gebeurd zijn aan de broncode wordt een nieuwe release gemaakt en aangekondigd door Linus Torvalds. Deze release is dan voor publiek gebruik en wordt door een versienummering aangegeven (zoals bv 2.6.9). Elke bijdrage moet wel duidelijk afgetekend zijn door de ontwikkelaar zelf zodat men later kan terugvinden van wie een bepaalde bijdrage komt en hoe deze in de broncode is terecht gekomen (via welke andere tussenpersonen). Dit ßign-offproces wordt nu recent toegepast om toekomstige discussies betreffende intellectueel eigendom eenvoudiger te kunnen beslechten. Voorts komen er enkel GPL- of GPL-compatibele bijdragen in de kernel zodat deze altijd vrij blijft. Documentatie en distributie ontwikkelingen Software is echter niet het enige dat ontwikkeld wordt. Bijna elk software project heeft een actieve documentatie-ontwikkeling. Dit ontwikkelproces loopt meestal analoog aan het software proces alhoewel aanpassingen aan documentatie sneller publiek gemaakt worden. Verder heb je ook de ontwikkeling van een GNU/Linux distributie. Aangezien een distributie meer is dan simpelweg de CD die je downloadt of de software die je installeert kan je dit niet vergelijken met het voorgaande ontwikkelproces. Distributies hebben onderling vaak verschillende ontwikkelprocessen. Sommige distributies worden niet op een publieke manier ontwikkeld, anderen dan weer volledig open. De ene distributie wordt door een zeer selecte groep van mensen onderhouden, soms zelfs door 1 enkel individu. De andere dan weer door een groep van meer dan honderd ontwikkelaars. Om het ontwikkelproces van een distributie te doorgronden verwijzen we u dan ook liever door naar de website van de distributie zelf. 1.0.5 Hoe kan ik bijdragen aan de ontwikkeling van [projectnaam]? De meeste projecten hebben een zogenaamde Ïssue Tracker" website. Dit is een website waarop speciale software draait waardoor u via webforms problemen kan signaleren of bijdragen leveren aan het project. Zeer vaak vragen de ontwikkelaars van een project om al uw bijdragen via een dergelijke issue tracker te laten passeren. Meestal heeft een project tevens een mailinglist ter beschikking waarop men bijdragen of ideeën kan bespreken. U vindt ongetwijfeld meer informatie over de beschikbare mailinglists en hun doel op de website van het project. Wanneer u frequent bijdragen levert of wil leveren kan het zijn dat men u toegang geeft tot de server waarop de broncode van het project staat, meestal via CVS of soortgelijke software. In dat geval kan u rechtstreeks uw bijdragen in de broncode steken. Dit gebeurt ofwel direct, ofwel via een serie van tests en revisies om de kwaliteit van de code te garanderen. 1.0.6 Is alles nu gratis? Wie verdient er geld met GNU/Linux? Niet alles is gratis. Sommige distributies bevatten niet-vrije, licentiegebonden software waarvoor u moet betalen. Dit is echter meer uitzondering dan regel en de meeste distributies bevatten uitsluitend vrije software of leveren de mogelijkheid om enkel vrije software te installeren zonder hierdoor je systeem te beperken in zijn mogelijkheden. We gebruiken de bewoording vrij om duidelijk te maken dat we hier over meer dan juist "gratisßpreken. Met vrij bedoelen we 1. de vrijheid om de software uit te voeren voor eender welk doel 2. de vrijheid om de software te bestuderen en aan te passen 3. de vrijheid om de software te kopieren en verdelen 4. de vrijheid om aanpassingen publiek te maken Bijna alle software wordt met een licentie verdeeld. Een licentie is een document waarin de persoon of personen die het auteursrecht hebben vastleggen wat de gebruikers, indien zij de licentie aanvaarden, mogen doen met de software. In het geval van vrije software staat er in deze licentie dat de gebruiker bovenstaande vrijheden krijgt. Er bestaan verschillende voorgemaakte licenties. De GPL en de BSD licentie zijn twee zeer bekende vrije licenties. De GPL (General Public License) wordt gebruikt door software componenten zoals de Linux kernel en verschillende GNU software en bevat, naast bovenstaande vrijheden, tevens de verplichting dat je elke aanpassing die je maakt terug moet beschikbaar stellen onder de GPL licentie wanneer je deze niet enkel voor persoonlijk gebruik houdt. Sommige mensen zien dit als een beperking in plaats van een vrijheid; het doel van deze verplichting is om te garanderen dat de software en zijn verbeteringen vrij blijven. De BSD licentie bevat bovenstaande vrijheden zonder meer en is heel wat eenvoudiger. Maar ze laat tevens toe dat dergelijke vrije software aangepast wordt en onder totaal andere voorwaarden (zoals bv betalend) verdeeld wordt. Veel mensen vragen zich af of en hoe een dergelijk model economisch haalbaar is. Immers, als deze software "gratisöntwikkeld en verdeeld wordt, dan kan ze toch onmogelijk doorbreken in de ëchte" wereld? Wat blijkt, niets is minder waar. Allereerst is er niets dat mensen verbiedt om aan deze software toch geld te verdienen. Er bestaan verschillende firma's die zich uitsluitend bezig houden met het verkopen van dergelijk vrije software. Deze bedrijven hebben succes, want niet iedereen kan of wil een grote hoeveelheid software downloaden en de bijhorende documentatie afprinten. Het kunnen aanschaffen van een CD of DVD set met bijhorende, professioneel gedrukte documentatie tegen een prijs die nog steeds heel wat lager ligt dan bij de niet-vrije software is een pluspunt voor menig liefhebbers. Vaak koop je niet enkel de software (eigenlijk de software licentie) maar tevens de belofte van het bedrijf dat ze je zal bijstaan bij het installeren en onderhouden van de software op je systeem, een zogenaamd support contract. Afhankelijk van de diepgang van dit contract zal een bedrijf hier meer of minder geld voor vragen. Zo zal een support contract waarbij het bedrijf 30 dagen telefonische hulp aanbiedt goedkoper zijn dan een support contract waarbij het bedrijf gedurende een gans jaar binnen de 8u bij jou thuis kan staan in geval van een probleem. Dergelijke support contracten vallen onder de noemer dienstverlening en dit is waar vrije software het economisch zeer goed doet. Je betaalt hier immers niet voor de software maar voor de kennis van het bedrijf en het toepassen van zijn expertise bij jou thuis (of in jouw bedrijf). Dienstverlening is niet enkel een support contract, maar tevens opleiding van mensen, gepriviligeerde toegang tot speciale servers (waarop men bijvoorbeeld zeer snel software updates kan downloaden), uiteenzetten van oplossingen, op-aanvraag implementeren van extra mogelijkheden, enzovoort. 2 Distributies 2.0.1 Wat is de beste distributie? Een distro kiezen is als meubels uitzoeken. De ene wil een comfortable tv-stoel, de ander koopt liever een kruk die hij zelf in elkaar wil zetten, de derde wil helemaal geen meubels en de vierde wil een kompleet driedelig bankstel zelf in elkaar zetten. Er is niet zoiets als `de beste distributie'. Elk persoon heeft hieromtrent een eigen smaak. De beste distributie voor jou is dus mogelijk verschillend van die van iemand anders. Het beste is dat je zelf enkele distributies probeert en deze die je het beste bevalt neemt. Ben je echter wat onwennig t.o.v. GNU/Linux en je weet echt niet waarmee je moet beginnen, dan is het aangeraden om een distributie te nemen die je (beste) vriend(in) gebruikt. Zo kan je, bij problemen, gemakkelijk hulp vragen bij die persoon. Een lijst met distributies vind je op [21]http://www.distrowatch.com. Op diezelfde site vind je links naar de websites van de distributies, uitleg over de distributies, links naar reviews van die distributies en een korte lijst software die in de distributie aangeboden is. 2.0.2 Bestaat er een Nederlandstalige versie van GNU/Linux? Veel applicaties zijn beschikbaar in het Nederlands, inclusief de populaire grafische omgevingen Gnome en KDE. Meestal biedt je distributie de mogelijkheid om een taal in te stellen voor je gehele installatie. Mocht u niet direct de nodige ondersteuning voor je taal vinden in je distributie kan je de volgende stappen ondernemen om je systeem in het Nederlands te verkrijgen. KDE instellen Indien KDE nog niet in het Nederlands staat gaat u naar de KDE Control Center, selecteert u Regional & Accessibility gevolgd door Country/Region & Language. Daar kan u Nederlands (Belgie) kiezen. Mogelijk moet u eerst de ondersteuning voor KDE in het Nederlands installeren. Dit doet u het best via uw distributie's softwarebeheer. Waarschijnlijk heet het pakket dat u moet installeren kde-i18n-nl. Opgelet: dit verandert enkel de taal voor KDE en de KDE applicaties. Om de rest van uw systeem naar het Nederlands te brengen moet u tevens de omgevingsvariabelen instellen. Omgevingsvariabelen instellen Indien u enkel voor uw gebruiker de taal wenst aan te passen moet u bepaalde regels in ~/.bashrc plaatsen. Als dat systeem-wijd mag gebeuren doet u dit best in /etc/profile alhoewel uw distributie waarschijnlijk een eenvoudigere manier heeft. Daarvoor kijkt u best eens in de handleiding van uw distributie. Om de taal naar het Nederlands aan te passen moet u twee variabelen instellen, namelijk LANG en LANGUAGE: export LANG=nl_BE@euro export LANGUAGE=nl_BE@euro Gnome's Display Manager instellen De Gnome Display Manager, de applicatie die toelaat dat u grafisch kan inloggen, kan je tevens in het Nederlands gebruiken. Mocht dit nog niet het geval zijn kunt u dit als volgt instellen. Open het bestand /etc/gdm/gdm.conf (of /etc/X11/gdm/gdm.conf) en zoek de regel DefaultLocale=. Pas deze aan naar: DefaultLocale=nl_BE@euro Mocht je deze regel niet vinden dan voeg je ze zelf toe onder [greeter]. 2.0.3 Ik zou graag een oude machine opzetten als router. Zijn er speciale linux-distributies voor dat doel? Ja. Er zijn een aantal floppy-distributies (zo genoemd omdat je ze kunt installeren op een floppy) die speciaal voor dat doel ontwikkeld zijn. We overlopen er enkele. FreeSCO FreeSCO ([22]http://www.freesco.org), welke niets te maken heeft met SCO UNIX, functioneert als Ethernet, dial-up en dial-in router en ondersteunt, naast reguliere netwerkkaarten, tevens PPPoE en PPtP. Bij FreeSCO zit tevens een time server, dhcp server, http server, ftp server, dns server en een print server alsook een firewall. Je kan FreeSCO via een webinterface configureren/beheren. Coyote GNU/Linux Coyote ([23]http://www.coyotelinux.com/) functioneert als Ethernet en dial-up router en ondersteunt, naast reguliere netwerkkaarten, tevens PPPoE. Bij Coyote GNU/Linux zit tevens een dhcp server en een firewall. Een grondige FAQ vind je op [24]http://rzero.com/coyote/faq.html. FloppyFW FloppyFW ([25]http://www.zelow.no/floppyfw/) functioneert als een Ethernet en dial-up router en ondersteunt, naast reguliere netwerkkaarten, tevens PPPoE. Bij FloppyFW kan je additionele packages installeren zodat je een dhcp server krijgt, een dns server, een http server, een proxy server, een ntp server, een telnet server, een vpn server, etc. SmoothWall SmoothWall ([26]http://www.smoothwall.org/) functioneert als een Ethernet en dial-up router en ondersteunt, naast reguliere netwerkkaarten, tevens PPP, (USB) ISDN en PPPoE. Bij SmoothWall vind je tevens UPS support, een syslog server, DHCP server, DNS proxy en een firewall. IPCOP IPCOP ([27]http://ipcop.sourceforge.net/) functioneert als een Ethernet en dial-up router en ondersteunt, naat reguliere netwerkkaarten, tevens PPP, PPPoE en ISDN. Je kan IPCOP via een webgebaseerde interface configureren. Bij IPCOP vind je tevens een vpn server, ssh server, snort, squid, dhcp server en een firewall. 2.0.4 Ik heb nog een oude 486 liggen, die ik wil gebruiken om GNU/Linux op te installeren, en te vergelijken met Windows. Welke resultaten kan ik verwachten? Dat hangt er van af wat je wil uitproberen. Verwacht in ieder geval geen wonderen; je zou in principe op die 486 ook Win95 met Office XP kunnen testen - daar verwacht je toch ook geen wonderen van? Een vergelijking met Windows op je Pentium IX/5Ghz zal dan ook steeds mank lopen. Als je toch eens GNU/Linux wil proberen, kunnen we je wel geruststellen : het kan, maar je zal je wel van de zwaardere window/desktopmanagers moeten wegblijven en ook de office pakketten zullen te traag lopen om werkbaar te zijn, maar je kan steeds knappe documenten maken met L^ATEX en er zijn nog talloze voorbeelden van programma's die wel werken en goede resultaten afleveren. Je kan die 486 natuurlijk steeds ook als server gebruiken. Nog een laatste tip voor je begint te experimenteren op je 486 : je zou wel eens vast kunnen lopen als je de nieuwste versie van een flashy distributie (RedHat, Mandrake, SuSE) probeert te installeren. Probeer een vorige versie van die distributies of probeer Debian, Slackware of Gentoo. Aangezien je beperkte resources hebt, zal je waarschijnlijk geen `standard install' kunnen uitvoeren, maar zal je moeten selecteren wat je gaat uitproberen. Er bestaan distributies die specifiek gericht zijn naar zogenaamde low-resource systemen (zoals een 486). Enkele voorbeelden: * muLinux ([28]http://mulinux.sunsite.dk/) * DeliLInux ([29]http://delilinux.berlios.de/) 2.0.5 Kan ik GNU/Linux installeren op een kleinere harde schijf? Ja dat kan. Gebruik een installatie zonder grafische toeters en bellen, en selecteer met een `expert' installatie-mode enkel dat wat je nodig hebt. 2.0.6 Hoe installeer ik [distributie naar keuze] of hoe moet ik dit of dat doen bij [distributie naar keuze]? Het merendeel van de distributies hebben een `Online Installation Guide' en/of een `Online User Manual' staan waarin alles stap voor stap uitgelegd wordt. Het is dan ook aangeraden eerst deze documentatie te raadplegen. * Ubuntu: [30]https://help.ubuntu.com/ * RedHat: [31]http://www.redhat.com/docs/manuals/linux/ * Mandrake: [32]http://www.mandrakelinux.com/en/fdoc.php3 * Debian: [33]http://www.debian.org/doc/ * Gentoo: [34]http://www.gentoo.org/doc/en/index.xml * Fedora: [35]http://fedora.redhat.com/docs/ * SuSE: [36]http://www.novell.com/documentation/, zoeken naar ``SUSE'' Links naar andere distributies vind je via [37]http://www.distrowatch.com. 2.0.7 Hoe verwijder ik GNU/Linux van mijn systeem? Als je niet bang bent van een Engelse uitleg is deze van Microsoft zeer geschikt: [38]http://support.microsoft.com/default.aspx?scid=KB;EN-US;q247804& GNU/Linux verwijderen omvat 2 stappen: eerst verwijder je de Linux-partities, daarna installeer je de Windows bootloader. Linux partities verwijderen vanuit Linux Verwijder de partities met bv fdisk. Doe dit voor elke schijf die je hebt (/dev/hda, /dev/hdb, ...). ~# fdisk /dev/hda The number of cylinders for this disk is set to 79408. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) We kijken welke partities fdisk allemaal vindt op /dev/hda: Command (m for help): p Disk /dev/hdb: 16 heads, 63 sectors, 79408 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 20805 10485688+ 82 Linux Swap /dev/hdb2 20806 79408 29535912 5 Extended /dev/hdb5 20806 50000 14714248+ 83 Linux /dev/hdb6 50001 56197 3123256+ 83 Linux /dev/hdb7 56198 79408 11698312+ 83 Linux We zien dat er een extended partitie is. Alle partities onder de Extended partitie zijn Linux partities. We kunnen dus deze ganse boel direct verwijderen door de Extended partitie te verwijderen: Command (m for help): d Partition number (1-7): 2 We kijken nu welke partities er nog overschieten: Command (m for help): p Disk /dev/hdb: 16 heads, 63 sectors, 79408 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 20805 10485688+ 82 Linux Swap Er is nog 1 partitie over: ook die verwijderen we... Command (m for help): d Partition number (1-7): 1 Nu moeten we deze aanpassingen nog doorvoeren en fdisk afsluiten... Command (m for help): w Linux partities verwijderen vanuit Windows Indien je Windows NT, 2k of XP gebruikt kan je de Linux-partities verwijderen vanuit Windows. Voor Windows NT ga je naar Start, Programs, Administrative tools, disk administrator. Voor Windows 2000 ga je naar Start, Settings, Control Panel, Administrative tools, Computer Managment. Voor Windows XP zal iets soortgelijks werken. Van daaruit klik je op Disk Managment onder de groep Storage. Bootloader Verwijderen Wanneer je een bootloader van je systeem verwijdert zal je niet meer je systeem kunnen booten. Het verwijderen van een bootloader komt meestal gepaard met de installatie van een nieuwe bootloader, waarschijnlijk de Windows bootloader. Boot in Windows en voer, afhankelijk van je Windows versie, het volgende uit: * Windows 9x: start een commandoregel op en type fdisk /mbr in * Windows XP: start een commandoregel op en type FIXBOOT in 2.0.8 Wat zijn de verschillen tussen al deze distributies? Alles wat een beetje anders kan zijn tussen 2 GNU/Linux-systemen. * Optimalisatie en beschikbaarheid Distributies kunnen ervoor zorgen dat hun binaire packages (voor zover de distributie binaire pakketten levert) geoptimaliseerd of beschikbaar zijn voor een bepaalde architectuur. Zo heb je o.a. + RedHat (i386) + Mandrake (i586) + Yellow Dog GNU/Linux (PPC) + Gentoo (i486, i586, i686, Pentium3, Pentium4, Athlon-XP, ...) * Bijgeleverde packages Er zijn distributies die 100 meg innemen op je HD als je ze volledig installeert, en je hebt distributies die meer dan 3 gig op je HD zetten als je ze volledig installeert. Ook de versies van de programma's kunnen verschillen. Verder kunnen bepaalde distributies zich met hun keuze van packages ook richten tot bepaalde niches (server, workstation, SOHO, router, ...). Distributies kunnen ook niet-vrije software bijleveren terwijl anderen dat beleidsgewijs weigeren. * Internationalisering Sommige distributies zijn eenvoudig internationaal inzetbaar wegens goede ondersteuning voor andere talen, internationale layouts, etc. Andere distributies blijven dan weer bij de localiseringsmogelijkheden die de pakketten aanbieden en niet meer. * Manier van installeren en onderhouden van programma's Behalve de nu al verouderde discussies over DEB vs RPM heb je ook ebuilds, gewone tarballs of nog andere manieren van installeren. Ook hierin kunnen distributies verschillen. * Distributie-afhankelijke aanpassingen Sommige distributies laten hun packages zoals ze zijn, anderen gaan er zelf aanpassingen in maken zodat ze meer geïntegreerd zijn (of om andere redenen). Meestal handelt dit over de menustructuur, maar dit kan ook ingrijpender (zoals extra plugins, modules, ...). * Installatie van distributie Elke distributie heeft een bijna unieke manier van installeren. Een installatieprogramma kan uitgebreider, moeilijker, minder/meer grafisch, beter/slechter gedocumenteerd, niet/wel geautomatiseerder zijn dan een andere, Engels of ook anderstalig, ... * Distributie-afhankelijk beleid Sommige distributies zijn er niet om zo veel mogelijk gebruikers te verkrijgen, maar om een compleet werkend systeem uit de grond te stampen dat gebaseerd is op een bepaald beleid. Debian is gekend voor zijn Debian Policy, een set al-dan-niet strenge `regels' waaraan het systeem moet voldoen, maar ook andere manieren van beleid (zoals sterke veiligheid, hoge snelheid van updates, 100% ondersteuningsmogelijkheden) kunnen gebruikt worden. * Configuratie van het systeem Sommige distributies houden van de manier zoals elke package dat individueel wenst (nl editeren van de nodige configfiles), anderen hebben weer graag wizard-achtige toestanden, nog anderen hebben liever 1 tool die de ganse systeemconfiguratie omvat. * Doelgroep van de distributie Sommige distributies richten zich expliciet naar de Desktop-markt, anderen weer naar de Server-markt. Er zijn zelfs distributies die zich richten naar Computing Power Servers (clusters, grids e.d.). 3 Configuratie 3.1 Internet 3.1.1 Kabel-Internet (Telenet/Chello/...): Hoe raak ik op Internet? Je moet DHCP instellen, daarna gaat alles vanzelf. Indien je wil kan je tevens de proxy instellen (dit is echter optioneel) in je browser(s). (manueel: proxy.pandora.be, poort 8080, of automatisch: pac.pandora.be, poort 8080.) Denk er ook aan dat sommige providers vereisen dat je bij een herstart van het ene besturingssysteem naar het andere, je DHCP-lease released voor je herstart. Onder Windows kan dit door het programma winipcfg uit te voeren en op `release all' te klikken, of door in een commandobox ipconfig /release in te geven. Onder GNU/Linux doe je daarvoor ifdown eth0 (of eth1, als dat je netwerkkaart is die aan het Internet verbonden is). Je kan tevens instellen dat Windows dat zelf doet. Uitleg daarover vind je op [39]http://support.microsoft.com/?kbid=217035. DHCP instellen kan als volgt: * SuSE: gebruik Yast. Zie ook [40]http://handboek.linuxbelgium.net/kabelmodem.html * RedHat: gebruik neat. * Debian: installeer dhcp-client of dhcpcd, en tik het volgende in /etc/network/interfaces: iface eth0 inet dhcp * Mandrake: gebruik de Mandrake Control Center (DrakConf) * Slackware: in /etc/rc.d/rc.inet1 pas je volgende regel aan: DHCP="no" naar DHCP="yes" * Gentoo: in /etc/conf.d/net stel je de volgende variabelen in: config_eth0=( "dhcp" ) # Gebruik DHCP dhcpcd_eth0="-t 10" # Timeout van 10 seconden Indien je tevens met Windows werkt, vergeet dan niet je IP vrij te geven door middel van ``ipconfig /release''. Anders krijg je mogelijk geen internetconnectie gedurende de eerste uren onder GNU/Linux. 3.1.2 ADSL: Hoe verbind ik mijn computer met Internet? Tegenwoordig mag je geen problemen meer verwachten met het aankoppelen van je ADSL model met het Internet. De meeste ISPs leveren een externe router/modem die de connectie voor jou afhandelt - het enige wat je moet doen is je netwerkkaart met deze router/modem verbinden, naar het configuratie-IP adres surfen en je bent vertrokken. Sommige mensen moeten echter nog met een externe ADSL modem werken (zonder netwerk-aansluiting). Hiervoor moet je de volgende zaken in gedachten houden: * Zorg er voor dat je een externe ADSL-modem gebruikt. De interne en de USB-versie worden niet zo goed ondersteund. * met het programma rp-pppoe kan je een verbinding opzetten. Je vindt dit programma op [41]http://www.roaringpenguin.com[42]^1. Op de website van Easynet Belgie ([43]http://www.easynet.be) kan je een vrij duidelijke uitleg vinden over hoe je rp-pppoe moet configureren. * Een andere mogelijkheid is om een ADSL-modem te gebruiken die een ingebouwde PPPoE-client heeft. Een tweetal voorbeelden van zo'n modems zijn de Eicon Diva 2430 SE en de Sagem F@st IP 1600, maar waarschijnlijk zijn er nog meer. Omdat zo'n modems zelf voor de pppoe zorgen is het enige wat je hierbij moet doen de modem met een netwerkkaart verbinden en de netwerkkaart in te stellen om DHCP te gebruiken. Op [44]http://eciadsl.flashtux.org/index.php?lang=en vind je informatie over de ECI ADSL-modems onder GNU/Linux (e.g. Eicon Diva), inclusief documentatie over hoe je bepaalde problemen kan oplossen. Op [45]http://vdmjoris.be/web/linux/speedtouch/index.html vind je meer uitleg over de Alcatel Speedtouch ADSL USB. 3.1.3 Ik heb een mailbox, maar verschillende mailaliassen. Is er een manier om die verschillende mailaliassen terug uit te splitsen naar lokale gebruikers? Ja: gebruik fetchmail. Een voorbeeld voor een Telenet Internet-mailaccount: Stel dat je 2 aliassen hebt, jan.janssen@pandora.be en an.janssen@pandora.be, die vertaald moeten worden naar jan en an op de lokale machine, dan doe je dit: In je .fetchmailrc in je home-directory tik je het volgende: poll mail-in.pandora.be aka telenet.be envelope "Delivered-To" user there with pass to jan.janssen=jan an.janssen=an here Daarna moet je er nog voor zorgen dat de mail periodiek opgehaald wordt. Je kunt dit door af en toe manueel het commando fetchmail uit te voeren, door dat in een cron-taak te doen, of door fetchmail -d uit te voeren. Om dit te vertalen naar een andere provider moet je de `envelope' optie aanpassen. De envelope-optie geeft aan naar welke header fetchmail moet kijken om uit te maken wie de bestemmeling is. Deze header moet het volledige emailadres van de bestemmeling bevatten. Een andere mogelijkheid is het gebruik van procmail. Deze werkt met een .procmailrc in je home-directory. Een voorbeeld: :O * ^Delivered-To: .*alias@telenet.be.* mail/alias Je hebt dan nog steeds fetchmail nodig om de mail op te halen (tenzij je mail niet via POP3 binnenkomt), het is dan gewoon een ander programma dat de mail uitsplitst. Tip: gebruik indien mogelijk niet de ``To'' header om je emailadres te bepalen, omdat in geval van mailinglists de mail dan niet correct uitgesplitst wordt. 3.1.4 Mijn klok heeft de neiging om voor/achter te lopen. Kan ik op de een of andere manier er voor zorgen dat die automatisch terug juistgezet wordt? Ja. Er zijn verschillende mogelijkheden: * ``the easy way'': gebruik ntpdate. Dit programma is heel gemakkelijk te gebruiken: als je het aanroept als volgt: ~# ntpdate -s time.nist.gov dan wordt je interne klok meteen gelijkgezet met de tijd van de server time.nist.gov. Om de zaak te automatiseren kan je best gebruikmaken van cron; zie man cron, man crontab en man 5 crontab voor details. * ``the hard way'': gebruik een ntp daemon. Het voordeel van ntpd tegenover ntpdate is dat ntpd statistieken bijhoudt van het verschil tussen de systeemtijd van het systeem waarop ntpd draait en het systeem waarmee gesynchroniseerd wordt. Op die manier kan ntpd indien nodig elke vijf seconden de tijd terug juist zetten; daardoor is het veel nauwkeuriger. Nadeel hiervan is dat de configuratie van ntpd wat ingewikkelder is; zie de documentatie van ntpd voor details. Een interessante NTP daemon is [46]http://www.openntpd.org. Het gebruik is zeer eenvoudig, je moet gewoon een /etc/ntpd.conf aanmaken met daarin de volgende regel: server ntp1.kuleuven.net 3.1.5 Ik hoor dikwijls dat ik geen telnet of rlogin mag gebruiken; waarom niet eigenlijk? Omdat deze communicatie-protocols je paswoord niet-geencrypteerd over het netwerk sturen, en dus gemakkelijk onderschept kunnen worden door packet sniffers. Gebruik in plaats daarvan de ``secure shell'' tools: ssh (terminal), scp (kopieren van bestanden), ... (URL: [47]http://www.openssh.org/). 3.2 Systeeminstellingen 3.2.1 Onder de console kan ik geen back-tick (`) typen. Gebruik keymap be2-latin1 i.p.v. be-latin1. De documentatie van je distributie zal je op weg helpen om dit standaard in te stellen. 3.2.2 Ik heb hier een ISA plug-and-play kaartje, maar ik krijg dat niet aan de praat. Wat moet ik doen? Je hebt 2 mogelijkheden: ofwel schakel je de Plug and play uit (de meeste van zulke kaartjes ondersteunen dat, ofwel door het verzetten van een jumper, ofwel door het gebruik van een (DOS/Windows) programmaatje), ofwel maak je gebruik van het `isapnptools'-pakket. De configuratie daarvan is simpel: je voert een keer pnpdump uit, wat een voorstel voor een configuratie-bestand zal aanmaken. Je moet dat bestand dan bekijken en opslaan als /etc/isapnp.conf; daarna kan je het programma isapnp gebruiken om de ISA-kaartjes te configureren voor gebruik. Als je met een meer recente kernel (2.4.x) werkt, dan kan je ook kernel-support voor isapnp inschakelen. 3.2.3 Hoe moet je onder GNU/Linux en een IDE-CD-Writer een CD-ROM schrijven? Er is een uitgebreide HOWTO geschreven over dit onderwerp: de CD-Writing-HOWTO. Er zijn twee manieren om een CD-brander te configureren: via ide-scsi (2.4 kernels) of native IDE ATAPI burning (2.6 kernels). Voor de ide-scsi (2.4 kernels) komt het hier op neer: * Zorg dat je een kernel hebt met de volgende zaken ingecompileerd of als module: + CONFIG_SCSI + CONFIG_CHR_DEV_SG + CONFIG_BLK_DEV_IDESCSI Indien je niet weet wat hiermee aan te vangen: geen nood; de kernels die bij de meeste distributies meegeleverd worden hebben deze zaken al in de kernel of als module... * Je moet een extra opstartparameter aan je kernel meegeven. Indien je lilo gebruikt dan doe je dat door het bestand /etc/lilo.conf te bewerken. Je moet in het deel van een kernel-image een append-regel toevoegen of bewerken. Een voorbeeld: image=/boot/vmlinuz-2.4.18 label=Linux root=/dev/hda2 read-only append="hdc=ide-scsi" Daarna moet je /sbin/lilo opnieuw uitvoeren (als root) zodat deze de aanpassingen kan doorvoeren. Onder grub moet je in /boot/grub/grub.conf die tekst op dezelfde regel als je kernelimage plaatsen. Een voorbeeld: kernel /vmlinuz-2.4.18 ro root=/dev/hda3 hdc=ide-scsi Grub dient niet uitgevoerd te worden (itt lilo). * Hierna herstarten, en de zaak zou moeten werken. Controleer dit door het commando `cdrecord -scanbus' uit te voeren. Je zal ergens je CD-writer moeten zien met links daarvan 3 opeenvolgende cijfers (meestal 0,0,0). Onthoud deze cijfers goed, je hebt ze nodig om later CD's te branden. Voor IDE ATAPI burning (2.6 kernels) hoef je geen speciale ondersteuning in je kernel te steken. Als je een CD wil maken van de inhoud van een bepaalde directorie (laten we zeggen /home/jan/cd/ dan moet je daar eerst een ISO-bestand van maken. Een ISO-bestand bevat al de informatie nodig om een CD te branden, inclusief de data. Een ISO-bestand maak je als volgt: ~$ mkisofs -r -o cd.iso /home/jan/cd De optie -r zorgt ervoor dat de RockRidge Extensies gebruikt worden. Dat wil zeggen dat je lange bestandsnamen kan gebruiken en dat permissies ook opgeslagen worden. Als je een CD wil schrijven voor Windows-gebruikers zet je daar het best -J bij. Hiermee worden de Microsoft Joliet-extensies gebruikt die ook toelaten lange bestandsnamen te gebruiken. De optie -o geeft gewoon aan dat het iso-bestand de daaropvolgende bestandsnaam moet aannemen (in dit geval cd.iso). Eenmaal klaar brand je de CD, onder de console, als volgt: ~# cdrecord -v speed=$JOUWSNELHEID dev=$JOUWCIJFERS cd.iso Dus bij een 8-speed schrijver met als cijfers 0,0,0 (ide-scsi) wordt dit ~# cdrecord -v speed=8 dev=0,0,0 cd.iso Bij een 16-speed schrijver met ide native burning wordt dit: ~# cdrecord -v speed=16 dev=ATAPI:/dev/hdc cd.iso Je gaat op dezelfde manier tewerk om CD-RWs te schrijven. Staat er nog data op, dan moet je -blank=fast of, indien dat niet werkt, -blank=all eraan toevoegen. Hierdoor zal cdrecord je CD-RW eerst leegmaken alvorens hij die opnieuw beschrijft. CD's branden gaat niet enkel onder console. Er zijn talloze GUI front-ends beschikbaar: * XCDRoast ([48]http://www.xcdroast.org) * gcombust ([49]http://www.abo.fi/~jmunsin/gcombust/) * k3b ([50]http://k3b.sourceforge.net) * arson ([51]http://arson.sf.net) * ... Voor informatie over het gebruik van die front-ends verwijs ik naar de desbetreffende sites. 3.2.4 Ik heb maar amper programma's draaien, en toch zegt Linux dat bijna al mijn geheugen in gebruik is! Hoe kan dat? Dat is perfect normaal. Geheugen dat niet gebruikt wordt is nutteloos geheugen. Daarom probeert Linux zoveel mogelijk data te cachen in het geheugen. Dat wil zeggen dat er data staat die kan gebruikt worden, maar die niet noodzakelijk de ruimte in de RAM vereist: indien een ander programma geheugen nodig heeft zal de gecachede data verworpen worden of weggeswapped. Indien er echter een programma die data weer nodig heeft zal de gecachede data weer in gebruik zijn; wat het lezen van data van de harde schijf (traag!) vermijdt. 3.2.5 Hoe mount ik mijn Windows-partitie zodat ik er als gebruiker aan kan? Het FAT-bestandssysteem is niet gemaakt om gebruikersprivileges op op te slaan. Het NTFS-bestandssysteem is te onbekend (dank u microsoft) waardoor de gebruikersprivileges ervan niet op deze van Linux gemapped worden. Bijgevolg moet je, tijdens het mounten, meegeven met welke permissies deze partitie moet werken. Dit doe je als volgt: ~# mount -t vfat -o uid=1000,gid=100,umask=002 /dev/hda1 /mnt/windows Hoe weet je nu welke cijfers je moet meegeven bij uid=, gid= en umask=? Wel, voor uid= en gid= neem je de UserID en GroupID van de gebruiker die de partitie moet kunnen lezen/schrijven. Dit bekom je door id te gebruiken. Hier een voorbeeld voor de gebruiker swift: ~$ id swift uid=1000(swift) gid=100(users) groups=100(users),10(wheel),18(audio),250(portage ) Hier zie je dat de gebruiker swift uid=1000 en gid=100 heeft. Dat zijn dus al 2 cijfers. En wat nu met umask? De umask= kan je zien als datgene wat niet als permissies mag staan, en dit in cijfervorm. Elk cijfer komt overeen met een permissie voor de individuele gebruiker (eerste cijfer), groep (2e cijfer) en de rest (3e cijfer). Elk cijfer komt overeen met een combinatie van 3 permissies: 4 Read (Lezen) 2 Write (Schrijven) 1 Execute (Uitvoerbaar, of indien directorie: bruikbaar) De combinatie wordt gevormd door de individuele cijfers op te tellen. Maw de permissie rw-r--r-- komt overeen met (4+2+0)(4+0+0)(4+0+0) = 644. Komen we nu terug op de umask, dan stelt deze voor wat niet mag, of dus nog: umask=002 wil zeggen dat al de rest niet mag schrijven, umask=006 wil zeggen dat al de rest niet mag lezen en schrijven, 026 wil zeggen dat de groep niet mag schrijven en de rest niet lezen en schrijven. Komen we nu terug op ons eerste voorbeeld, en we willen deze in fstab plaatsen, dan zal de regel er als volgt uitzien: /dev/hda1 /mnt/windows vfat defaults,uid=1000,gid=100,umask=002 0 0 3.2.6 Hoe zorg ik ervoor dat Linux automatisch zomer- en winteruur onderscheidt? Indien je je PC instelt zodat hij GMT (= UTC) bijhoudt in zijn hardware klok (RTC) dan moet je niets anders doen dan je tijdzone juist zetten. Dit doe je door een symlink /etc/localtime aan te maken naar de tijdzone van je keuze in /usr/share/zoneinfo. Indien je echter je lokale tijd gebruikt, dan moet je de klok manueel aanpassen. 3.3 Softwareinstallatie 3.3.1 Hoe installeer ik software onder GNU/Linux? Bijna elke GNU/Linux distributie maakt gebruik van een software management systeem dat de installatie van software vereenvoudigt. Wanneer je een bepaalde software titel wil installeren, kijk dan eerst of je distributie deze niet levert via zijn software management systeem. Distributie Installatie van tool RedHat up2date -i tool Mandrake urpmi tool SuSE yast -i tool Debian apt-get install tool Gentoo emerge tool Ubuntu apt-get install tool aptitude install tool Voor sommige distributies zijn er ook niet-officiele softwarelijsten voorhanden. Deze bevatten software die ofwel niet in de officiele lijsten zit ofwel recenter is dan deze in de officiele lijsten. Ondersteuning voor deze secundaire lijsten is echter heel wat minder en de kans is groter dat je problemen tegenkomt wanneer je dergelijke lijsten gebruikt. Voor de volledigheid vermelden we toch enkele gekende niet-officiele softwarelijsten... Distributie Secundaire Lijst URL Gentoo BreakMyGentoo http://www.breakmygentoo.net Indien de software die je zoekt niet aanwezig is in een officiele of niet-officiele lijst, dan kan je op de website van de software zelf kijken of je deze in een voorgearchiveerde staat kan verkrijgen (bv als RPM of DEB bestand). Met wat geluk kan je deze installeren op je distributie. Je moet echter wel beseffen dat deze onafhankelijk gecreeerde bestanden meestal afhankelijkheidsinformatie bevatten die jou systeem zelf niet kan oplossen. Je zal dan manueel de nodige afhankelijkheden moeten afhandelen (de zogenaamde dependency hell) wat allerminst leuk is. Wanneer een dergelijk voorgearchiveerd pakket niet beschikbaar is of je wil deze niet gebruiken, dan kan je de tool nog steeds zelf compileren. Velen kijken hier tegenop, maar eigenlijk is het verre van moeilijk. Het bestaat nl in de meeste gevallen uit de volgende stappen (lees toch voor de zekerheid de bijgeleverde README en INSTALL bestanden): 1. Download de sources; deze zullen meestal in .tar.gz of .tar.bz2 formaat zijn. 2. Unpack de sources; meestal zal een map met als naam toolnaam-toolversie gemaakt worden. 3. Ga in de directorie en voer ./configure uit; dit kijkt of alle benodigde files, die nodig zijn om de software correct te compileren, op je systeem staan. 4. Voer make uit; dit zal je software compileren 5. Voer su -c make install uit; het systeem zal je naar je rootpaswoord vragen waarna de software zal geinstalleerd worden (meestal in /usr/local). Bijvoorbeeld voor een programma java2html (output is weggelaten): ~$ wget http://www.ibiblio.org/pub/Linux/apps/www/converters/java2html-0.9.2.tar .gz ~$ tar xvzf java2html-0.9.2.tar.gz ~$ cd java2html-0.9.2 ~$ ./configure ~$ make ~$ su -c "make install" 3.3.2 Er zijn verschillende package-tools: rpm, emerge en apt-get. Wat is nu eigenlijk het beste? Eerst en vooral: vergelijk de juiste tools met elkaar. Dus niet rpm met apt-get, maar rpm met dpkg. Beide tools hebben een aantal overeenkomsten en een aantal gelijkenissen. Verder is emerge iets totaal anders; ik leg dit later uit. Eerst de gelijkenissen tussen dpkg en rpm: * Beide pakken een aantal bestanden in in een binair bestand. * Beide voorzien de mogelijkheid om verschillende scripts te laten uitvoeren voor of na het installeren zowel als voor of na het verwijderen. * Beide houden een databank bij met daarin de geinstalleerde pakketten, en de bestanden die geinstalleerd worden. De verschillen tussen dpkg en rpm: * rpm wordt in meerdere distributies gebruikt die in sommige gevallen absoluut niet op elkaar lijken, en zelfs op andere besturingssystemen zoals Solaris * rpm noteert afhankelijkheden (dependencies) naar zowel bestanden, pckagenamen als `concepten'. Voordeel is dat een bestand theoretisch te gebruiken valt in verschillende distributies zolang de bestanden dezelfde naam hebben. Nadeel hiervan kan zijn dat het moeilijker is om het juiste package te zoeken. dpkg noteert dependencies naar andere packages. Voordeel is dat je direct weet welk package je moet installeren, nadeel is dat het minder portable is. * rpm gebruikt een binaire databank voor de geinstalleerde rpm's (db3 formaat), dpkg gebruikt tekstbestanden. Binaire bestanden zijn doorgaans sneller, maar meestal moeilijker te lezen door andere programma's. * De mogelijke statussen die een geinstalleerd rpm-package kan aannemen zijn kleiner in aantal. dpkg kent ook een aantal `half-*' statussen, zoals `half-installed', wat aangeeft dat het package nog niet helemaal geinstalleerd was. Bij de volgende run kan dat dan verholpen worden. rpm kent dit niet. * rpm heeft ingebouwde functionaliteit om rpm's te authenticeren d.m.v. cryptografische handtekeningen. * rpm's moeten standalone geinstalleerd kunnen worden, er kan de gebruiker niets gevraagd worden. dpkg heeft de mogelijkheid om een aantal vragen te stellen en zodoende het package al bij de installatie te configureren. * dpkg heeft meerdere niveaus van afhankelijkheden. Bij rpm moet een bestand er zijn, mag het er niet zijn of is er geen vermelding. Bij dpkg moet het er zijn, kan het er best wel zijn maar moet dat niet absoluut, is het wel interessant dat het er eventueel is, mag het er niet zijn, of is er geen vermelding. Dit laatste laat meer flexibiliteit toe. Daarnaast wordt vooral het programma apt-get veel gebruikt in combinatie met dpkg, maar er is ook een apt-get voor rpm, gemaakt (op basis van apt-get voor dpkg) door Conectiva GNU/Linux. emerge is de package-tool die door Gentoo gebruikt wordt. In tegenstelling tot dpkg en rpm focust emerge zich op broncode ipv binaire bestanden. Ze laat voor de rest gelijkaardige zaken toe als dpkg en/of rpm: * Ze voorziet tevens in het uitvoeren van scripts voor of na het installeren (en zelfs tijdens). * Ze houdt ook een databank bij met geinstalleerde packetten/bestanden. * Ze noteert afhankelijkheden naar packages, maar de afhankelijkheden zijn dynamisch (i.e. een package kan ofwel afhangen van een andere package, ofwel mogelijk afhangen van een package indien de gebruiker ondersteuning voor een bepaald concept wenst) * Ze gebruikt tekstbestanden om alle informatie op te slaan * Ze onthoudt md5sums van de geinstalleerde bestanden * Ze kan (maar dit wordt door Gentoo niet toegepast) de gebruiker vragen naar informatie tijdens de installatie van een pakket Verder laat emerge wel toe om binaire packetten te installeren (net zoals rpm en dpkg toelaten om broncodebestanden te gebruiken), maar ligt de nadruk daar niet echt op. Wat is het beste? Maak dat voor jezelf uit ;-) 3.3.3 Welk gedeelte van de uitvoer van ``make'' moet ik posten opdat men mij kan helpen in geval van een fout bij manuele compilatie? De laatste regels van een foutmelding bij make hebben meestal de volgende vorm: ... make[1]: *** [] Error make: *** [] Error Ditzijn sub-make's die hun falen bekendmaken aan de oproepende make's. De opdrachtregel en uitvoer van het proces dat de uiteindelijke foutmelding heeft veroorzaakt is hetgeen je nodig hebt als je wil dat men je kan helpen :-) Indien het de uitvoer van een gcc-oproep betreft, dan kan je ervan uitgaan dat de eerste foutmeldingen van het laatste opgeroepen proces significanter zijn dan de latere foutmeldingen van dit proces. Bijvoorbeeld: 1 g++ -Wall -ansi -pedantic -c -o liblparser.o liblparser.cpp 2 liblparser.cpp:8:22: LSystemo.h: No such file or directory 3 liblparser.cpp: In function `int main(int, char**)': 4 liblparser.cpp:20: error: `strcpy' undeclared (first use this function) 5 liblparser.cpp:20: error: (Each undeclared identifier is reported only once for 6 each function it appears in.) 7 liblparser.cpp:22: error: `LSystem' undeclared (first use this function) 8 liblparser.cpp:22: error: parse error before `;' token 9 liblparser.cpp:23: error: `the_system' undeclared (first use this function) 10 make: *** [liblparser.o] Error 1 Hieruit zou je dus minstens de opdrachtregel (regel 1) en de eerste foutmelding (regel 2) moeten posten. De andere foutmeldingen (regels 3 tot 9) zijn in dit geval veroorzaakt door de eerste fout, dus zijn hier niet echt significant. De laatste regel (regel 10) is niet echt informatief omdat uit de foutmelding al volgtover welk bestand het gaat. Je kan natuurlijk beter teveel posten dan te weinig. 3.4 Hardwareinstallatie 3.4.1 Ondersteunt Linux mijn hardware wel? Als vuistregel kan je stellen dat zo goed als alle open hardware wordt ondersteund. `Open hardware' houdt in dat de fabrikant basisinfo voor het ontwikkelen van een stuurprogramma voor zijn hardware vrijelijk beschikbaar stelt. Indien de fabrikant niet zelf ondersteuning biedt voor Linux moet je natuurlijk wel wachten totdat de hardware beschikbaar is alvorens een hacker zich kan bezig houden met het schrijven van drivers. Hardware waarvan de fabrikant de nodige info weigert vrij te geven, gesloten hardware, wordt in de meeste gevallen slecht of niet ondersteund. Berucht zijn bijvoorbeeld een groot deel van de goedkope Lexmark inkjet-printers. Uitzonderingen vormen natuurlijk de verschillende hardwarefabrikanten die gesloten, binaire modules leveren voor de Linux kernel. Hou er steeds rekening mee dat een gesloten driver je heel erg afhankelijk maakt van de grillen van de fabrikant! De ingewanden van Linux verbeteren zeer snel. Het is daarom dikwijls nodig dat drivers aangepast worden. Bij gesloten hardware is dat dikwijls problematisch. Als de markt klein is en vrijwilligers kunnen er niets aan kunnen doen... En indien je eens wil testen of Linux je hardware nu wel ondersteunt kan je de installatie-CD van de distributie die je wil gebruiken eens proberen. De meeste distributies hebben tegenwoordig een LiveCD of LiveDVD versie waarmee je de distributie kan uittesten alvorens je deze op de schijf installeert. 3.4.2 Waar vind ik de nodige informatie om mijn hardware werkende te krijgen? * Printers: [52]http://www.linuxfoundation.org/en/OpenPrinting, [53]http://hplipopensource.com (HP-specifiek), [54]http://solutions.brother.com/linux/en_us/index.html (Brother-specifiek) * Scanners: [55]http://www.sane-project.org/, [56]http://hplipopensource.com (HP-specifiek) * Digitale Camera's: [57]http://www.teaser.fr/~hfiguiere/linux/digicam.html of [58]http://www.gphoto.org/proj/libgphoto2/support.php * Geluid: [59]http://www.alsa-project.org/main/index.php/Main_Page * Netwerk: Hiervoor moet je niet zoeken, niet-ondersteunde kaarten moeten we nog vinden :) * Windows-modems: [60]http://www.linmodems.org * Multimedia-keyboards: [61]http://lineak.sourceforge.net/index.php * TV-kaarten: [62]http://pvrhw.goldfish.org/tiki-pvrhwdb.php * Wireless kaarten: [63]http://linux-wless.passys.nl * Vanalles: [64]http://linuxcompatible.org/, [65]http://www.ubuntuhcl.org Er zijn echter ook al een groot aantal bedrijven die zelf Linux-ondersteuning bieden voor de hardware die zij produceren. In het ene geval heb je deze bedrijfseigen drivers nodig omdat je hardware niet 'out of the box' werkt onder linux, m.a.w. jouw distributie biedt geen ondersteuning voor jouw hardware. In het andere geval kan het zijn dat je hardware wel werkt 'out of the box', maar dat je om alle mogelijkheden van je hardware te benutten die bedrijfseigen drivers moet installeren (dit is vaak het geval bij moderne videokaarten, om bv. de 3D mogelijkheden te benutten). Indien de ondersteuning van jouw hardware out-of-the-box volstaat wordt aangeraden je te houden bij deze ondersteuning, wat het onderhouden van je software makkelijker zal maken. 4 Gebruik 4.1 Grafische omgevingen 4.1.1 Ik heb gehoord dat GNU/Linux geen GUI heeft. Klopt dit? Neen. Het is inderdaad zo dat GNU/Linux niet zo de nadruk legt op de GUI als Windows, maar er zijn zeker en vast wel GUI's verkrijgbaar voor GNU/Linux. Meervoud, want je kunt kiezen: Van de overladen desktop van KDE via de onderdelenfreaks van Gnome en de overfeaturing van Enlightenment tot de minimalistische lelijkheid van twm. Zo is er voor ieders wat wils; iemand die ``iets windows-achtigs'' wil kiest meestal voor KDE, terwijl iemand met een 386 eerder naar twm moet grijpen. Enzovoort... Heel veel distributies leveren met hun software ook een hoop configuratietools mee die meestal ook grafisch werken, maar je kunt perfect die configuratietools negeren en alles via de commandline doen; Op die manier kan je routine-taken gemakkelijker automatiseren, wat een grotere flexibiliteit met zich meebrengt. Wat in elk geval wél waar is, is dat de overstap niet simpel is: GNU/Linux en Windows zijn twee totaal verschillende besturingssystemen, dus je zult eventjes tijd nodig hebben om het te leren. In elk geval is het, als je een doorzetter bent, zeker en vast de moeite waard. 4.1.2 Wat zijn de beste windowmanagers voor systemen met weinig geheugen? Meestal zijn oudere windowmanagers zuiniger met systeemresources zoals geheugen en processortijd, terwijl nieuwere daar wat spilzieker mee omspringen. De aller- allerkleinste heet twm, maar die heeft bijna geen `leuke' functionaliteit. Er zijn echter verschillende windowmanagers die weinig resources innemen. Voorbeelden zijn fluxbox, IceWM en XFCE4, maar zie dit zeker niet als een short-list ! Verder is het ook mogelijk om een slim-down versie van XFree86 te gebruiken die een heel wat kleinere memory-footprint heeft. Informatie over deze slim-down versie (TinyX of smallX) vind je op [66]http://www.superant.com/cgi-bin/smalllinux.pl?smallX. 4.1.3 Wat is de beste wm? Dat hangt compleet af van je eigen smaak. De ene heeft graag een goed uitgeruste grafische omgeving (die dus ook veel zaken bevat die je niet nodig hebt), de andere heeft dan weer graag een klein dingetje die hij zelf tot de puntjes configureert. Probeer ze eens allemaal, of gebruik ze gewoon allemaal. Op [67]http://themes.freshmeat.net vind je themes voor de verschillende wm's alsook screenshots. Dat kan een interessante leidraad zijn voor je zoektocht naar je lievelings-wm :-) 4.2 Shells 4.2.1 Ik heb een applicatie `foo' die ik altijd de optie `-bar' wil meegeven. Kan ik op een bepaalde manier er voor zorgen dat die optie altijd meegegeven wordt? Natuurlijk. Gebruik je favoriete editor om het bestand ~/.bash_profile of ~/.profile (afhankelijk van de shell die je gebruikt) te bewerken, en voeg daar de volgende regel toe: alias foo='foo --bar' Als je dan terug uit- en aanlogt, of eerst die regel op je commandprompt ingeeft, dan zal vanaf dan `foo' voor GNU/Linux gelijk zijn aan `foo --bar'. 4.2.2 Kan ik bepaalde acties binden aan functietoetsen? Natuurlijk. Open met je favoriete editor het bestand ~/.inputrc en zet daar bijvoorbeeld in: "\e[[B":"mutt\C-M" "\e[[C":"slrn\C-M" "\e[[D":"links www.google.com\C-M" Log uit en opnieuw in. Als je nu op F2 drukt zal mutt opstarten (een e-mailclient), als je op F3 drukt slrn (een newsclient) en als je op F4 drukt zal de site [68]http://www.google.com laden in de tekstbrowser links ([69]http://links.browser.org). 4.2.3 Ik wilde via de shell het een en het ander uitvoeren, maar dat lukt niet; een aantal karakters worden blijkbaar niet aanvaard door mijn commando. Het probleem is dat de shell met onder andere de volgende tekens of tekenreeksen gaat lopen: ( ) [ ] { } $ \ " ' * ? < > & || && ;; ; | Deze tekens worden allemaal door de shell voor speciale tekens aanzien: * ``?'': één karakter, eender wat: bv be? matcht de bestanden ``ben'', ``bed'', ``bek'' * ``*'': meerdere karakters, eender wat: bv. be* matcht de bestanden ``ben'', bennen, ben-de-rydten, ben.gz, ... * ``[a-z]'': één karakter uit de reeks a-z: bv [bd]e matcht ``be'' en ``de''. De shell expandeert deze karakters altijd, voor eender welk argument, tenzij er geen bestand is dat aan de wildcards voldoet. Een programma krijgt dus nooit een ``*'' teken te zien, maar altijd hetgeen de shell daarvoor invult. Wens je de tekens te behouden dan kan je ze escapen door er een backslash voor te zetten (bv. \* voor een letterlijke ``*''). De shell doet die backslash weer weg. Je kan ook je hele argument tussen enkele aanhalingstekens zetten. (bv 'be*?' om deze tekens letterlijk mee te geven). Wat er dus gebeurde met \[bla\] was dat dit aan het programma werd meegegeven als [bla]. Je kan altijd checken wat de shell doet door ~$ echo be* in te typen, of ~$ echo \[bla\] Een ook vaak voorkomend probleem zijn bestandsnamen die beginnen met een -: het programma zal deze interpreteren als programma-optie. Om dit te vermijden moet je duidelijk maken dat je geen programma-opties meer zal gebruiken. Dit doe je door -- na al je argumenten te zetten. Een voorbeeld: * Bestandsnaam: -foo * Fout: rm -foo * Juist: rm -- -foo 4.3 Office-suites en dergelijke 4.3.1 Kan ik onder GNU/Linux ook met Microsoft Office werken ? Kan ik zonder probleem mijn Microsoft Office-files lezen onder GNU/Linux ? Zoals je wel kunt begrijpen heeft Microsoft geen Office-versie uitgebracht voor haar grootste concurrent. Dus, Microsoft Office is niet beschikbaar onder GNU/Linux, en zal dat waarschijnlijk nog niet meteen zijn ook (sommigen slaken hier zelfs een zucht van verluchting). Indien je deze compatibiliteit echt wenst met Microsoft Office, kan je bijvoorbeeld Sun's StarOffice installeren (te downloaden via de site van Sun). In welke mate je probleemloos files kunt uitwisselen, hangt in sterke mate af hoe complex je bestanden zijn die je wilt uitwisselen (macro's,...). Een andere mogelijkheid is OpenOffice.org, wat je vindt op de gelijknamige website. OpenOffice.org is een zeer uitgebreid Office pakket dat zeer goed de Microsoft formaten aankan. Wat je echter niet moet verwachten is dat OpenOffice.org Microsoft's VBA taal ondersteunt - OpenOffice.org heeft een eigen macro-taal. Je kan altijd proberen MS Office te draaien onder een Windows emulator (VMWare - [70]http://www.vmware.com of een programma dat de Windows APIs overneemt (Wine - [71]http://www.winehq.com, WineX - [72]http://www.transgaming.com, CrossOver - [73]http://www.codeweavers.com/products/crossover). Vergeet echter niet dat het emuleren van deze programmas risico's inhoudt: * Het programma zal waarschijnlijk trager draaien dan dat je het onder Windows zelf draait. * Het programma zal waarschijnlijk nog onstabieler draaien dan dat je Windows zou gebruiken. Daarnaast zijn er een aantal kleinere applicaties beschikbaar die vooral handig kunnen zijn als je alleen bestanden wilt kunnen uitwisselen met Word-gebruikers: * Antiword: [74]http://www.winfield.demon.nl/ * Wordview (wv): [75]http://www.wvWare.com/ Beide kunnen Word-bestanden op het scherm weergeven. * libwmf: dit stelt je in de mogelijkheid om wmf-bestanden om te zetten naar een aantal andere bestandformaten, zodat je ze onder GNU/Linux kunt bekijken. [76]http://www.wvWare.com/libwmf.html * Ted: aanmaken van .rtf-bestanden, wat door Word gelezen kan worden. [77]http://www.nllgg.nl/Ted/ * latex2rtf: ook aanmaken van .rtf-bestanden, maar dan dmv L^ATEX, een veelgebruikte opmaaktaal onder GNU/Linux. Verkrijgbaar op CTANs, bijvoorbeeld [78]http://ftp.dante.de/Welcome_english.html Een portaal met links naar verschillende convertortools kan je vinden op [79]http://tug.org/utilities/texconv/index.html 4.3.2 Wat is L^ATEX en waar is het goed voor? L^ATEX is, zoals men in het Engels zegt, een `text processor', terwijl Word, WP, StarOffice en dergelijke daar de naam `word processor' krijgen. Het verschil zit hem in de manier waarop de tekst opgemaakt wordt: waar Word en dergelijke met een WYSIWYG-interface werken (die ook zijn nadelen heeft - zie verder), werkt L^ATEX met een aantal codes die tussen de gewone tekst geschreven worden, waarna de tekst-met-codes geconverteerd wordt naar PostScript om afgedrukt te worden. Deze methode lijkt op het eerste zicht minder gebruiksvriendelijk, maar dat hoeft niet zo te zijn: * L^ATEX heeft geen grafische omgeving nodig, wat tot gevolg heeft dat je ook aan `text processing' kunt doen via een telnet- of ssh-sessie, of op minder goed bedeelde hardware. * L^ATEX neemt alle details van de opmaak uit je handen, zodat jij je op de tekst kunt concentreren in plaats van op de opmaak. * WYSIWYG werkt niet altijd even goed. Regelmatig zie je mensen die 37 keer een nieuwe regel vragen aan de computer om naar de volgende pagina te gaan. In L^ATEX is zoiets niet mogelijk, zodat je verplicht bent om de computer het te laten doen. Op deze manier leren mensen beter met de computer om te gaan. Echte die-hards zullen zelf in een editor zoals vi of emacs de L^ATEX-tekst intikken, maar als je daar zelf nogal tegenop ziet, dan kan je eventueel gebruik maken van de WYSIWYM-editor (What You See Is What You Mean) LyX, die eigenlijk niet meer is dan een front-end voor L^ATEX. Je hebt trouwens ook nog kile ([80]http://kile.sf.net). 4.4 Multimedia 4.4.1 Hoe converteer ik een (of meerdere) multimediabestand(en) naar een ander formaat? Indien we spreken over grafische bestanden, dan is convert, van ImageMagick, de tool die je nodig hebt. Om bijvoorbeeld een ganse directorie aan jpg's te converteren naar eps's doe je het volgende in die directorie: ~$ for file in *.jpg; do convert "$file" "${file%.jpg}.eps"; done Met de 'for'-lus wordt aan de variabele file telkens en bestandsnaam toegekend. Die gebruik je dan op de plaats van de bestandsnaam in het commando dat je wil uitvoeren. De "{file%.jpg}.eps" is een bash-feature die je in de manpage van bash vindt. ${file%.jpg} zal de bestandsextensie '.jpg' verwijderen. Daarna voeg je er '.eps' aan toe. Zo weet convert naar welk beeldformaat het moet converteren. Indien je met subdirectories wil rekening houden is het volgende misschien meer aangeraden: find -name '*.jpg' | while read file; do convert "$file" "${file%.jpg}.eps"; don e Het find-commando genereert een lijst met de gewenste bestandsnamen (een naam per regel) die het dan doorgeeft (|) aan het while-commando. Die leest lijn per lijn (en dus naam per naam) in en past het commando toe. Indien we over geluidsbestanden spreken, dan is sox een leuke keuze, alhoewel die niet alle bestandstypes aankan. Om specifiek naar mp3 of ogg te encoderen is het misschien interessanter om lame respectievelijk oggenc te gebruiken. Deze tools zijn nl gemaakt om zo zuiver mogelijke geluidsbestanden te creeren. Voor videobestanden kan je convert gebruiken of http://www.transcoding.orgtranscode. Deze laatste ondersteunt alle MPEG-formaten, DivX en QuickTime. 4.5 Internet applicaties 4.5.1 Wat is de beste mailclient? Pine, elm, kmail, netscape messenger, mutt, mailx, balsa, sylpheed, columbo, evolution of misschien nog iets anders... Zoals je dus wel ziet zijn er veel mailclients. Wat jij de beste vindt hangt af van jouw voorkeur. Je vindt meer informatie over deze mailclients op [81]http://www.freshmeat.net. 4.5.2 Wat is de beste ICQ-client, MSN-client en/of Yahoo-client? De vraag die eigenlijk eerst moet gesteld worden is Wat is het beste Instant Messaging systeem (IM)? Dat is Jabber (meer info op [82]http://users.pandora.be/cobnet/ict/jabber.html) die ook overweg kan met oa. ICQ, MSN en Yahoo. Jabber is wel niet de beste na-aper voor ICQ, MSN en/of Yahoo. Betere na-apers zijn de plugins/programma's van Kopete, Gaim, aMSN, centericq, cicq, Eicq, Gicq, Gnomeicq, Micq, Licq, gtkicq, icqnix, Kicq,... Op de vraag ``Wat is de beste client?'' kan als antwoord een simpele vraag gegeven worden: ``Wat is jouw favoriete gerecht?''. Het enige wat hier als tip meegegeven kan worden is om een client te gebruiken die jouw vrienden/vriendinnen ook gebruiken, zodat zij je kunnen helpen, daarna kun je je eigen smaak ontdekken. Toch enkele mogelijkheden ter volledigheid: * pidgin - [83]http://www.pidgin.im * amsn - [84]http://amsn.sourceforge.net * kopete - [85]http://kopete.sourceforge.net * licq - [86]http://licq.sourceforge.net * kicq - [87]http://kicq.sourceforge.net * ... 5 Documentatie 5.1 Online 5.1.1 Is er documentatie te vinden op het net, die specifiek voor Belgische gebruikers bedoeld is? Ja: de Belgian-HOWTO, door Dag Wieërs. Je kunt deze downloaden op [88]http://dag.wieers.com/howto/. 5.1.2 Waar vind ik GNU/Linux-documentatie? Er is heel wat documentatie. Probleem is alleen dat de documentatie niet altijd de development volgt. Gelukkig kan je de meeste dingen goed begrijpen als je het volgende in je achterhoofd houdt: * Distributie-guides bevatten algemene uitleg over hoe je met die distributie omspringt. De meeste distributies hebben online documentatie staan waaronder zogenaamde `Install guides', die stap voor stap uitleggen hoe je de distributie installeert, en `User guides' die verschillende aspecten van je vers-geinstalleerde GNU/Linux-systeem aan de man brengen - maar op een inleidende manier. Meer informatie vind je bij Distributies. * HOWTO's (bijvoorbeeld de Samba-HOWTO) bevatten de meeste achtergrondinformatie en de duidelijkste uitleg, maar zijn meestal het minste up-to-date (omdat ze gewoonlijk niet door de developers zelf geschreven worden). Ze zijn wel de documentatie die je (desnoods diagonaal) moet doorlezen om te begrijpen hoe de software werkt. * Manpages (bijvoorbeeld man smbclient) bevatten vrij recente informatie, maar minder background-informatie; ze zijn meer toegespitst op een commando. Deze documentatie bekijk je om te zien waarvoor een bepaald commando dient, en hoe je het dan moet gebruiken. * commandline-help (bijvoorbeeld smbclient -help) bevat de allerrecentste informatie (deze wordt geschreven door de ontwikkelaar zelf). De achtergrondinformatie die je daar meekrijgt is gewoonlijk echter nihil. Op het net: * Eén adres: [89]http://www.tldp.org Er zijn tevens online cursussen te vinden op het internet: * [90]http://www.nongnu.org/glms (NL) * [91]http://users.skynet.be/bluedigit/cursus/ (NL) 5.1.3 Waar vind ik Nederlandstalige GNU/Linux-documentatie? Er zijn talloze sites die zich met GNU/Linux-documentatie naar de internet-gemeenschap profileren: * nl.linux.org - [92]http://nl.linux.org/doc/ * LinuxBelgium Handbook - [93]http://handboek.linuxbelgium.net * Linux4You - [94]http://www.linux4you.be * BartEnDavid - [95]http://www.bartendavid.be/ 5.2 Boeken 5.2.1 Wat zijn goede GNU/Linux-boeken? Vrije online boeken: kijk eens naar de Guides van het Linux Documentation Project op [96]http://www.tldp.org. Er zijn er een aantal vertaald naar het Nederlands. Deze kan je vinden op [97]http://nl.linux.org/doc. Papieren boeken: * `Running Linux', door Matt Welsh en Lar Kaufman. * Als je weinig geld wil besteden zijn de boeken in de reeks `Snel leren: XXXX' nog wel te doen. Ze vallen wel uit elkaar na een half jaar. 6 Beveiliging 6.1 Algemeen 6.1.1 Als je de broncode vrijgeeft kan je toch veel sneller fouten vinden, en deze uitbuiten? * Je kan deze bug ook sneller repareren. Anders gezegd: je kunt ze desgewenst zelf repareren, en de fix opsturen. Zo ontwikkelt uw lievelingsprogramma zich sneller en ben jij er zeker van dat het sneller is (of wordt). * Je kan ook fouten in programma's vinden zonder de broncode te bezitten. * `Security through obscurity' werkt op termijn niet. Als het mechanisme geheim gehouden wordt, blijft het slot maar onbreekbaar tot iemand het geheim ontfutselt. Als het mechanisme bekend is, maar het slot blijft onbreekbaar, heb je een veel beter slot. Er zijn al verschillende documenten en artikels hieromtrent geschreven. Een greep uit de enorme keuze: * [98]http://www.networkmagazine.com/article/NMG20020826S0005 * [99]http://www.dwheeler.com/oss_fs_why.html * [100]http://www-106.ibm.com/developerworks/linux/library/l-oss.html 6.1.2 Is GNU/Linux veiliger dan ...? Ja en nee. De mate van de beveiliging van een computersysteem is rechtstreeks afhankelijk van de competentie van de beheerder van het systeem. Sommige systemen zijn echter niet gemaakt om in een bedreigende omgeving ingezet te worden, of zijn te complex. Houd je bij datgene wat je goed beheerst, en probeer op de hoogte te blijven. 6.2 Toegepast 6.2.1 Hoe blijf ik op de hoogte? In willekeurige volgorde: * Abonneer je op de security-mailinglist van je distributie. * Installeer alle updates voor je systeem. * Check regelmatig [101]http://lwn.net/daily/ (overigens de moeite voor alle GNU/Linux-nieuws). * Abonneer je op bugtraq. 6.2.2 Waar vind ik info en de security-mailinglist voor mijn distributie? * Gentoo: + [102]http://www.gentoo.org/security/en/ + [103]mailto:gentoo-announce-subscribe@gentoo.org (de gentoo-security mailinglist houdt diepere discussies over veiligheid) * Ubuntu: + [104]http://www.ubuntu.com/usn + [105]https://lists.ubuntu.com/mailman/listinfo/ubuntu-security -announce * RedHat: + [106]http://www.redhat.com/support/errata/ + [107]http://www.redhat.com/mailing-lists/redhat-watch-list/ind ex.html * Debian: + [108]http://bugs.debian.org/ + [109]http://lists.debian.org/ (zoek naar debian-security-announce@debian.org) + [110]http://security.debian.org/ * S.u.S.E.: + [111]mailto:suse-security@suse.com + [112]mailto:suse-security-announce@suse.com + (abonneren: [113]mailto:suse-security-subscribe@suse.com) * Mandrake GNU/Linux: + [114]http://www.linux-mandrake.com/en/security/ + [115]http://www.linux-mandrake.com/en/flists.php3 + [116]mailto:security-announce@linux-mandrake.com (abonneren op bovenvermelde URL) * Conectiva GNU/Linux: + [117]http://distro.conectiva.com/seguranca/ + [118]mailto:seguranca@distro.conectiva.com.br (abonneren op bovenvermelde URL; de security-mailinglist is in het Portugees, maar de updates-mailinglist is in het Engels en bevat altijd de updates van de packages die in de security-mailinglist zijn besproken.) * Slackware: + [119]http://www.slackware.com/lists/ + [120]mailto:slackware-security@slackware.com (abonneren op bovenvermelde URL). (Aanvullingen voor andere distributies zijn welkom) 6.2.3 Hoe deel ik een internetverbinding en stel ik een firewall op onder GNU/Linux? Als het een GNU/Linux-computer is die is aangesloten op het internet, en wiens verbinding je wilt delen met andere computers in een lokaal netwerk, dan is het `IP Masquerading', ook gekend als `Network Adress Translation' wat je zoekt. Vele beginners-distributies leveren een eenvoudige configuratie-tool om je NAT alsook firewall te configureren, en wij raden dan ook aan deze te gebruiken (e.g. ipmasq van Debian). Voor andere distro's kan je best de howtos [121]http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/index.htmlen [122]http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html lezen. Een andere interessante site (Nederlandstalig!) is [123]http://www.nedlinux.nl/~bart/index.php?page=3. Toch een korte uitleg om je op weg te zetten... De meest algemene manier om je internetverbinding te delen is d.m.v. iptables. Open een console, wordt root en type het volgende in (verondersteld is dat je intern netwerk het IP-nummer 192.168.0.XXX gebruikt): /bin/echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables --flush /sbin/iptables -A POSTROUTING -t nat -o $external_interface -j MASQUERADE /sbin/iptables -A FORWARD -i $internal_interface -o $external_interface -s 192.1 68.0.0/24 -d ! 192.168.0.0/24 -j ACCEPT /sbin/iptables -A FORWARD -o $internal_interface -i $external_interface -d 192.1 68.0.0/24 -s ! 192.168.0.0/24 -j ACCEPT Hierin is $internal_interface de interface van je netwerk (e.g. eth1). Hiermee heb je geen firewalling, terwijl dat vaak ook gewenst is. Een rudimentaire firewall zet je als volgt op: ~# iptables -A INPUT -i $external_interface -m state --state INVALID -j DROP ~# iptables -A INPUT -i $external_interface -m state --state RELATED,ESTABLISHED -j ACCEPT Hierin is $external_interface de interface die de verbinding met het internet maakt (e.g. eth0). Nu moet je wel nog de poorten die je wel wil gebruiken (bv ssh, maar ook deze die gebruikt worden om bv via DHCP je ip te verkrijgen) open zetten. Als voorbeeld deze voor DHCP (poort 68): ~# iptables -A INPUT -i $external_interface -p tcp --dport 68 -j ACCEPT ~# iptables -A INPUT -i $external_interface -p udp --dport 68 -j ACCEPT en dan ten slotte (het werkelijk negeren van alle andere verbindingen) ~# iptables -A INPUT -i $external_interface -m state --state NEW -j DROP Het beveiligen tegen IP spoofing doe je als volgt: ~# echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter Best voeg je nog ondersteuning toe voor passive ftp in de firewall: ~# modprobe ip_conntrack_ftp Om dit automatisch te laten uitvoeren zet je de commando's in rc.local of maak je een eigen initscript aan (bv /etc/init.d/firewall) die de nodige acties verricht. Veel distributies hebben /etc/sysctl.conf waarin je de nodige parameters zet zodat je al die echo 1 > ... niet meer hoeft uit te voeren. Er bestaan ook programma's waarmee je (al dan niet) snel een internetconnectie kan delen of een firewall kan instellen. * Firestarter ([124]http://firestarter.sourceforge.net) * PMFirewall ([125]http://www.pointman.org/PMFirewall/) * ... Over dit dokument ... be.comp.os.linux FAQ This document was generated using the [126]LaTeX2HTML translator Version 2008 (1.71) Copyright © 1993, 1994, 1995, 1996, [127]Nikos Drakos, Computer Based Learning Unit, University of Leeds. Copyright © 1997, 1998, 1999, [128]Ross Moore, Mathematics Department, Macquarie University, Sydney. The command line arguments were: latex2html -split 2 -local_icons -no_images -show_section_numbers -math svn/trunk/bcol.tex -dir bcol The translation was initiated by on 2009-03-01 __________________________________________________________________ * [129]Inhoudsopgave * [130]1 Inleiding en algemene vragen + [131]1.0.1 Wat is bcol? + [132]1.0.2 Links hoor ik versie 10.0, rechts 2.6.x en daartussen ergens 7.1. Wat is nu de laatste Linux-versie? + [133]1.0.3 Hoe stel ik mijn probleem op bcol? + [134]1.0.4 Hoe werkt het GNU/Linux ontwikkelmodel? + [135]1.0.5 Hoe kan ik bijdragen aan de ontwikkeling van [projectnaam]? + [136]1.0.6 Is alles nu gratis? Wie verdient er geld met GNU/Linux? * [137]2 Distributies + [138]2.0.1 Wat is de beste distributie? + [139]2.0.2 Bestaat er een Nederlandstalige versie van GNU/Linux? + [140]2.0.3 Ik zou graag een oude machine opzetten als router. Zijn er speciale linux-distributies voor dat doel? + [141]2.0.4 Ik heb nog een oude 486 liggen, die ik wil gebruiken om GNU/Linux op te installeren, en te vergelijken met Windows. Welke resultaten kan ik verwachten? + [142]2.0.5 Kan ik GNU/Linux installeren op een kleinere harde schijf? + [143]2.0.6 Hoe installeer ik [distributie naar keuze] of hoe moet ik dit of dat doen bij [distributie naar keuze]? + [144]2.0.7 Hoe verwijder ik GNU/Linux van mijn systeem? + [145]2.0.8 Wat zijn de verschillen tussen al deze distributies? * [146]3 Configuratie + [147]3.1 Internet o [148]3.1.1 Kabel-Internet (Telenet/Chello/...): Hoe raak ik op Internet? o [149]3.1.2 ADSL: Hoe verbind ik mijn computer met Internet? o [150]3.1.3 Ik heb een mailbox, maar verschillende mailaliassen. Is er een manier om die verschillende mailaliassen terug uit te splitsen naar lokale gebruikers? o [151]3.1.4 Mijn klok heeft de neiging om voor/achter te lopen. Kan ik op de een of andere manier er voor zorgen dat die automatisch terug juistgezet wordt? o [152]3.1.5 Ik hoor dikwijls dat ik geen telnet of rlogin mag gebruiken; waarom niet eigenlijk? + [153]3.2 Systeeminstellingen o [154]3.2.1 Onder de console kan ik geen back-tick (`) typen. o [155]3.2.2 Ik heb hier een ISA plug-and-play kaartje, maar ik krijg dat niet aan de praat. Wat moet ik doen? o [156]3.2.3 Hoe moet je onder GNU/Linux en een IDE-CD-Writer een CD-ROM schrijven? o [157]3.2.4 Ik heb maar amper programma's draaien, en toch zegt Linux dat bijna al mijn geheugen in gebruik is! Hoe kan dat? o [158]3.2.5 Hoe mount ik mijn Windows-partitie zodat ik er als gebruiker aan kan? o [159]3.2.6 Hoe zorg ik ervoor dat Linux automatisch zomer- en winteruur onderscheidt? + [160]3.3 Softwareinstallatie o [161]3.3.1 Hoe installeer ik software onder GNU/Linux? o [162]3.3.2 Er zijn verschillende package-tools: rpm, emerge en apt-get. Wat is nu eigenlijk het beste? o [163]3.3.3 Welk gedeelte van de uitvoer van ``make'' moet ik posten opdat men mij kan helpen in geval van een fout bij manuele compilatie? + [164]3.4 Hardwareinstallatie o [165]3.4.1 Ondersteunt Linux mijn hardware wel? o [166]3.4.2 Waar vind ik de nodige informatie om mijn hardware werkende te krijgen? * [167]4 Gebruik + [168]4.1 Grafische omgevingen o [169]4.1.1 Ik heb gehoord dat GNU/Linux geen GUI heeft. Klopt dit? o [170]4.1.2 Wat zijn de beste windowmanagers voor systemen met weinig geheugen? o [171]4.1.3 Wat is de beste wm? + [172]4.2 Shells o [173]4.2.1 Ik heb een applicatie `foo' die ik altijd de optie `-bar' wil meegeven. Kan ik op een bepaalde manier er voor zorgen dat die optie altijd meegegeven wordt? o [174]4.2.2 Kan ik bepaalde acties binden aan functietoetsen? o [175]4.2.3 Ik wilde via de shell het een en het ander uitvoeren, maar dat lukt niet; een aantal karakters worden blijkbaar niet aanvaard door mijn commando. + [176]4.3 Office-suites en dergelijke o [177]4.3.1 Kan ik onder GNU/Linux ook met Microsoft Office werken ? Kan ik zonder probleem mijn Microsoft Office-files lezen onder GNU/Linux ? o [178]4.3.2 Wat is L^ATEX en waar is het goed voor? + [179]4.4 Multimedia o [180]4.4.1 Hoe converteer ik een (of meerdere) multimediabestand(en) naar een ander formaat? + [181]4.5 Internet applicaties o [182]4.5.1 Wat is de beste mailclient? o [183]4.5.2 Wat is de beste ICQ-client, MSN-client en/of Yahoo-client? * [184]5 Documentatie + [185]5.1 Online o [186]5.1.1 Is er documentatie te vinden op het net, die specifiek voor Belgische gebruikers bedoeld is? o [187]5.1.2 Waar vind ik GNU/Linux-documentatie? o [188]5.1.3 Waar vind ik Nederlandstalige GNU/Linux-documentatie? + [189]5.2 Boeken o [190]5.2.1 Wat zijn goede GNU/Linux-boeken? * [191]6 Beveiliging + [192]6.1 Algemeen o [193]6.1.1 Als je de broncode vrijgeeft kan je toch veel sneller fouten vinden, en deze uitbuiten? o [194]6.1.2 Is GNU/Linux veiliger dan ...? + [195]6.2 Toegepast o [196]6.2.1 Hoe blijf ik op de hoogte? o [197]6.2.2 Waar vind ik info en de security-mailinglist voor mijn distributie? o [198]6.2.3 Hoe deel ik een internetverbinding en stel ik een firewall op onder GNU/Linux? * [199]Over dit dokument ... __________________________________________________________________ next_inactive up previous 2009-03-01 References 20. http://www.linux.org/ 21. http://www.distrowatch.com/ 22. http://www.freesco.org/ 23. http://www.coyotelinux.com/ 24. http://rzero.com/coyote/faq.html 25. http://www.zelow.no/floppyfw/ 26. http://www.smoothwall.org/ 27. http://ipcop.sourceforge.net/ 28. http://mulinux.sunsite.dk/ 29. http://delilinux.berlios.de/ 30. https://help.ubuntu.com/ 31. http://www.redhat.com/docs/manuals/linux/ 32. http://www.mandrakelinux.com/en/fdoc.php3 33. http://www.debian.org/doc/ 34. http://www.gentoo.org/doc/en/index.xml 35. http://fedora.redhat.com/docs/ 36. http://www.novell.com/documentation/ 37. http://www.distrowatch.com/ 38. http://support.microsoft.com/default.aspx?scid=KB;EN-US;q247804& 39. http://support.microsoft.com/?kbid=217035 40. http://handboek.linuxbelgium.net/kabelmodem.html 41. http://www.roaringpenguin.com/ 43. http://www.easynet.be/ 44. http://eciadsl.flashtux.org/index.php?lang=en 45. http://vdmjoris.be/web/linux/speedtouch/index.html 46. http://www.openntpd.org/ 47. http://www.openssh.org/ 48. http://www.xcdroast.org/ 49. http://www.abo.fi/~jmunsin/gcombust/ 50. http://k3b.sourceforge.net/ 51. http://arson.sf.net/ 52. http://www.linuxfoundation.org/en/OpenPrinting 53. http://hplipopensource.com/ 54. http://solutions.brother.com/linux/en_us/index.html 55. http://www.sane-project.org/ 56. http://hplipopensource.com/ 57. http://www.teaser.fr/~hfiguiere/linux/digicam.html 58. http://www.gphoto.org/proj/libgphoto2/support.php 59. http://www.alsa-project.org/main/index.php/Main_Page 60. http://www.linmodems.org/ 61. http://lineak.sourceforge.net/index.php 62. http://pvrhw.goldfish.org/tiki-pvrhwdb.php 63. http://linux-wless.passys.nl/ 64. http://linuxcompatible.org/ 65. http://www.ubuntuhcl.org/ 66. http://www.superant.com/cgi-bin/smalllinux.pl?smallX 67. http://themes.freshmeat.net/ 68. http://www.google.com/ 69. http://links.browser.org/ 70. http://www.vmware.com/ 71. http://www.winehq.com/ 72. http://www.transgaming.com/ 73. http://www.codeweavers.com/products/crossover 74. http://www.winfield.demon.nl/ 75. http://www.wvWare.com/ 76. http://www.wvWare.com/libwmf.html 77. http://www.nllgg.nl/Ted/ 78. http://ftp.dante.de/Welcome_english.html 79. http://tug.org/utilities/texconv/index.html 80. http://kile.sf.net/ 81. http://www.freshmeat.net/ 82. http://users.pandora.be/cobnet/ict/jabber.html 83. http://www.pidgin.im/ 84. http://amsn.sourceforge.net/ 85. http://kopete.sourceforge.net/ 86. http://licq.sourceforge.net/ 87. http://kicq.sourceforge.net/ 88. http://dag.wieers.com/howto/ 89. http://www.tldp.org/ 90. http://www.nongnu.org/glms 91. http://users.skynet.be/bluedigit/cursus/ 92. http://nl.linux.org/doc/ 93. http://handboek.linuxbelgium.net/ 94. http://www.linux4you.be/ 95. http://www.bartendavid.be/ 96. http://www.tldp.org/ 97. http://nl.linux.org/doc 98. http://www.networkmagazine.com/article/NMG20020826S0005 99. http://www.dwheeler.com/oss_fs_why.html 100. http://www-106.ibm.com/developerworks/linux/library/l-oss.html 101. http://lwn.net/daily/ 102. http://www.gentoo.org/security/en/ 103. mailto:gentoo-announce-subscribe@gentoo.org 104. http://www.ubuntu.com/usn 105. https://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce 106. http://www.redhat.com/support/errata/ 107. http://www.redhat.com/mailing-lists/redhat-watch-list/index.html 108. http://bugs.debian.org/ 109. http://lists.debian.org/ 110. http://security.debian.org/ 111. mailto:suse-security@suse.com 112. mailto:suse-security-announce@suse.com 113. mailto:suse-security-subscribe@suse.com 114. http://www.linux-mandrake.com/en/security/ 115. http://www.linux-mandrake.com/en/flists.php3 116. mailto:security-announce@linux-mandrake.com 117. http://distro.conectiva.com/seguranca/ 118. mailto:seguranca@distro.conectiva.com.br 119. http://www.slackware.com/lists/ 120. mailto:slackware-security@slackware.com 121. http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/index.html 122. http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html 123. http://www.nedlinux.nl/~bart/index.php?page=3 124. http://firestarter.sourceforge.net/ 125. http://www.pointman.org/PMFirewall/ 126. http://www.latex2html.org/ 127. http://cbl.leeds.ac.uk/nikos/personal.html 128. http://www.maths.mq.edu.au/~ross/