5.14. Hvor finder jeg konfigurationsfilerne ?

Dette afsnit vil beskrive, hvilke filer der er relevante at kende i et Linux system. Det er normalt at gemme konfigurationsfiler i /etc, så du kan have glæde af at læse de enkelte filer igennem, når du er blevet lidt erfaren i at styre Linux. Vi vil i dette afsnit give dig et overblik over de vigtigste konfigurationsfiler, så du selv kan forstå, hvad der foregår.

5.14.1. /etc/passwd

Filen /etc/passwd indeholder en linje per bruger, som har login på maskinen. Brugeren root har også en linje her. Kun hvis man kører NIS (tidligere kendt som yellow pages), kan man lade ekstra brugere være styret af andre servere.

Et eksempel på en linje af passwd filen er

daisy:x:500:501::/home/daisy:/bin/bash
Der står, at brugeren daisy er bruger nummer 500 på maskinen (ikke, at der faktisk er 500). Daisy er med i gruppe nummer 501, hvilket er styret af /etc/group. Brugeren daisy har hjemme-katalog i /home/daisy og starter med /bin/bash som login-shell. Det lille x betyder, at man kører med shadow-passwords, dvs. at password står i /etc/shadow, og denne fil kan ikke læses af andre end root - dvs. shadow passwords er en sikring af dine passwords.

5.14.2. /etc/shadow

Formatet af shadow filen følger passwd-filen, en linje per bruger. Et eksempel er

daisy:$1$/hbYueDa$46ggNKFugoDABWOJZ3xvz0:10784:0:99999:7:::       
For brugeren daisy står der det krypterede password. For Red Hat er det længere end for SuSE, idet Red Hat anvender en bedre krypteringsmåde. Derefter vises antal dage siden 1/1-1970 for sidste ændring af password. Antal dage siden sidste ændring af password. Antal dage før udløb af password skal der sendes en advarsel (her 99999). Sidste anvendte felt (7) er antal dage siden 1/1 1970 til kontoen bliver lukket. Endelig er der et felt som ikke anvendes.

Hvis dn maskine ikke kører shadow passwords, og vil du dette, så kør /usr/sbin/pwconv som brugeren root. Tilsvarende findes /usr/sbin/pwunconv til at få passwords gemt i selve password filen og ikke shadow-filen.

5.14.3. /etc/group

Hver person er med i en eller flere grupper, og dette bruger man til at udskille, hvem der har adgang til hvilke dataområder. Kommandoen chmod g+w fil vil f.eks. gør, at andre brugere, som er i sammen gruppe som ejeren af filen, kan skrive i fil. Hver linje i /etc/group svarer til en gruppe. Et eksempel på en gruppe kan være

kongeh:x:1000:daisy,henri,dykker,landmand
Dvs. gruppen "kongeh" har gruppe ID nummer 1000, og "x" betyder, at et eventuelt password for gruppen (anvendes ved skift til ny gruppe med newgrp) findes i shadowfilen /etc/gshadow. Hvis "x" blev fjernet anvendes gruppe password ikke. Til sidst på linjen står der de login-navne (fra password-filen) som er medlemmer af gruppen.

5.14.4. /etc/gshadow

Filen /etc/gshadow følger nøje /etc/group med en linje per gruppe.

5.14.5. /etc/fstab

Filen /etc/fstab indeholder information om de disk-partitioner, som skal eller kan mountes ved systemopstart. Et eksempel kan være

/dev/hdb2               /                       ext2    defaults        1 1
/dev/hda1               /dosc                   vfat    defaults        0 0
/dev/hdb3               /home                   ext2    defaults        1 2
/dev/hdb1               swap                    swap    defaults        0 0
/dev/fd0                /mnt/floppy             vfat    noauto,user,rw  0 0
/dev/cdrom              /mnt/cdrom              iso9660 noauto,user,ro  0 0
none                    /proc                   proc    defaults        0 0
none                    /dev/pts                devpts  mode=0622       0 0  
De to sidste linjer er noget, Red Hat automatisk selv har sat op, det ser vi bort fra. Dernæst kan vi se, at der er to harddiske i maskinen hda og hdb. Den sekundære harddisk på første IDE controller, dvs. hdb har tre partitioner. Swap partitionen er sat op på den første partition /dev/hdb1 og de to næste partitioner på hdb, dvs. /dev/hdb2 og /dev/hdb2 er af typen ext2 (Linux type), og de mountes i rækkefølge som vist yderst til højre, dvs /dev/hdb2 (roden) før /dev/hdbb (brugerens hjemmekatalog i /home). De to sidste linjer viser, at en almindelig bruger (user) kan mounte CDROM og floppy, men at det ikke gøres automatisk (noauto) under opstart. CDROM vil efter mount /mnt/cdrom kunne findes under /mnt/cdrom. Se i øvrigt afsnit 5.1, og brug man mount.

5.14.6. /etc/hosts

Hosts-filen anvendes ofte på maskiner, som ikke har nameserver til rådighed. Man skriver en IP-adressse, det fulde netværknavn og et eventuelt alias. Et eksempel kan være:

127.0.0.1       localhost           localhost.localdomain
172.17.0.1      daisy.kongeh.dk     daisy
172.17.0.2      henri.kongeh.dk     henri
172.17.0.3      dykker.kongeh.dk    dykker
172.17.0.3      landmand.kongeh.dk  landmand
IP-adressen 127.0.0.1 er en speciel loopback adresse, som ikke anvendes til andet end, at Linux kernen hurtigt kan kommunikere med sig selv. De fire maskiner daisy, henri, dykker og landmand har fået IP adresser i 172.17.*.*, som er et lukket net - dvs. de adresser er garanteret ikke-eksisterende på Internettet.

Uden DNS (nameserver) bruger systemet automatisk hosts-filen ved ssh, telnet, ftp, ping osv.

5.14.7. /etc/resolv.conf

Resolver-filen viser, hvilken maskine der er nameserver, så man kan slå en vilkårlig adresse op på Internettet. Et eksempel kan være

search kongeh.dk
nameserver 129.142.6.64
nameserver 129.142.6.65
Første linje (search) viser domæne navnet for netværket. De to næste linjer er to nameservere (danpost-maskiner). Laver du Internet opkobling til din egen ISP, skal du have nogle andre IP-adresser end de viste. Se også afsnit 7.2.1.

5.14.8. /etc/inetd.conf

Denne fil er vigtig for din netværksikkerhed, idet den viser en stribe af de services, som Linux maskinen tilbyder netværket. Du vil f.eks. finde disse linjer:

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a    
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd  
som viser, at du modtager ftp og telnet logins. Hvis du kan undvære disse services, så udkommentér dem ved at sætte et # foran dem. Næste gang du genstarter maskinen (eller inet dæmonen), kan man ikke logge på den måde. Prøv man inetd for at læse mere.

5.14.9. /etc/rc.d/

I kataloget /etc/rc.d/ findes styringen af, hvilke programmer, der automatisk startes op, når maskinen startes. Der er lidt forskel mellem Red Hat og SuSE, men begge har samme struktur, kaldes SysV (udtales system fem), i modsætning til BSD.

5.14.9.1. Red Hats opstartsfiler

Red Hat har følgende indhold af /etc/rc.d/

init.d  rc.local    rc0.d  rc2.d  rc4.d  rc6.d
rc      rc.sysinit  rc1.d  rc3.d  rc5.d         
hvor rc0.d op til rc6.d er kataloger med links for hvert af de syv runlevels. Links laves til init.d, der indeholder script-filer, som starter programmerne. Se i øvrigt afsnit 5.4.

Filen rc.sysinit ændrer man oftest ikke, idet den styrer opstart af keyboard, check af filsystemer, mounter swap og andet basalt.

I filen rc.local kan man selv tilføje kommandoer, som skal startes efter de almindelige programmer.

Alle de ovenstående filer kan læses af alle på et Red Hat system, mens SuSE har valgt, at kun root kan læse de filer.

5.14.9.2. SuSE opstartsfiler

SuSE kan have følgende indhold af /etc/rc.d/

README      cron        kbd         random      rcS.d       skeleton
apmd        dummy       kerneld     rc          reboot      ssh
at          gpm         lpd         rc0.d       route       syslog
autofs      halt        network     rc1.d       routed      xdm
boot        halt.local  nfs         rc2.d       rpc
boot.d      inetd       nfsserver   rc3.d       rwhod
boot.local  init.d      pcmcia      rc4.d       sendmail
boot.setup  inn         pcnfsd      rc5.d       serial
cdb         ipfwadm     powerfail   rc6.d       single           
Som det ses, er der kataloger rcX.d (hvor X går fra 0 til 6), med links for hvert af de syv runlevels, ligesom Red Hat. I modsætning til Red Hat er der i SuSE intet init.d katalog, og script-filerne, der linkes til, findes direkte i /etc/rc.d/. Indhold af hver af opstarts filerne, f.eks. autofs, er kommandoer til at starte, stoppe, checke og genstarte den pågældende service. Man skriver således /etc/rc.d/autofs stop for at stoppe autofs og tilsvarende /etc/rc.d/autofs start for at starte den igen.

5.14.10. /etc/sysconfig/

I Red Hat er kataloget /etc/sysconfig/ vigtigt.

apmd   console  keyboard  network          sendmail   static-routes
clock  init     mouse     network-scripts  soundcard           
For Red Hat vil alle filer i dette katalog indeholde konfigurationsparametre og er koblede til filerne i /etc/rc.d/init.d. F.eks. vil mouse indeholde muse-type.

Et skridt længere nede i filtræet finder du kataloget /etc/sysconfig/network-scripts, som f.eks. kan indeholde

chat-ppp0   ifcfg-ppp0   ifdown-ppp    ifup-plip    network-functions
chat-ppp1   ifcfg-ppp1   ifdown-sl     ifup-post
chat-ppp2   ifcfg-ppp2   ifup          ifup-ppp
ifcfg-eth0  ifdown       ifup-aliases  ifup-routes
ifcfg-lo    ifdown-post  ifup-ipx      ifup-sl          
Her er alle skript filer til at starte PPP-forbindelser og netkort op og tilsvarende lukke ned. Har du en meget underlig opkobling til Internet, ender du med at skulle rette i filer her.

5.14.11. /etc/crontab

Crontab systemet og filstyring er forklaret i afsnit 5.12.

5.14.12. /etc/sendmail.cf

Sendmail er mail programmet til Linux - et stykke tid endnu. Konfigurationsfilen til sendmail er notorisk svær, og du bør ikke rette ret meget i din. Du kan dog med fordel rette feltet DS til

DSsmtp.ISP.dk
hvis du sender mail til din Internet-udbyder, og denne har en hurtig mailforwarder - ofte kaldet en SMTP maskine, i eksemplet kaldet "smtp.ISP.dk".

5.14.13. /etc/aliases

Hvis du har brug for at have nem adgang til at lave mail-aliaser, så emails til dronningen@kongeh.dk automatisk bliver videresendt (forwarded) til daisy@kongeh.dk, og måske vil du have at alle emails til root skal ende hos daisy, så kan du i /etc/aliases nemt anføre dette.

dronningen: daisy
root: daisy
Efter du har redigeret filen, skal du køre newaliases kommandoen.

5.14.14. /etc/printcap

For hver printer vil programmet printtool i Red Hat tilføje en linje til /etc/printcap med definition af printeren, såsom

##PRINTTOOL3## LOCAL POSTSCRIPT 600x600 a4 {} PostScript Default 1
lp:\
        :sd=/var/spool/lpd/lp:\
        :mx#0:\
        :sh:\
        :lp=/dev/lp0:\
        :if=/var/spool/lpd/lp/filter:
Her er "sd" spool-directory. Printeren sidder på /dev/lp0, og der printes med filter som vist med "if". Der er mere forklaring i afsnit 5.11.

5.14.15. /etc/conf.modules

Denne fil indeholder opsætning og parametre til de moduler, som kan læses ind og ud af systemet uden at reboote. Der er mere forklaring i afsnit 5.9.

5.14.16. /etc/exports

Hvis din maskine skal køre NFS, dvs. kunne være disk server for andre UNIX maskiner, skal du i /etc/exports skrive, hvilke kataloger du vil lade andre mounte. For at det virker, skal du have "portmap" og "nfs" kørende.

Desuden skal du anvende man exports for at lære syntaks af /etc/exports. Som eksempel viser vi, hvordan du lader alle maskiner læse (ikke skrive) fra din CDROM, som du her har mountet fast på /mnt/cdrom. Derudover lader vi maskiner i domænet kongeh.dk mounte hele /usr/local/ med både læse- og skrive-rettigheder, så alle maskinerne kan lægge ny software ind her og softwaren anvendes så på alle klient-maskinerne. Husk, at du måske også skal tænke over sikkerheden, når du distributerer data over netværket. Giv kun adgang til data til de personer, som skal have den adgang.

/mnt/cdrom      *(r)
/usr/local      *.kongeh.dk(rw)

5.14.17. /etc/X11/XF86Config - /etc/XF86Config

I Red Hat er den basale Xwindow-konfigurationsfil XF86Config lagt i /etc/X11/XF86Config, og tilsvarende i SuSE er den i /etc/XF86Config. Syntaksen findes ved at skrive man XF86Config, men der er mere hjælp i Appendiks A.