Systemadministration er alle de opgaver, som handler om at vedligeholde hardware og software på en computer.
I Unix-verdenen består systemadministration ofte i at rette i en masse forskellige opsætningsfiler. Opsætningsfilerne er rene tekstfiler, og det vigtigste værktøj til systemadministration er en tekst-editor såsom vi. Red Hat har lavet om på dette: Der findes nu administrationssoftware, som er grafisk. Under overfladen bruges dog stadig rene tekstfiler. Vi vil i dette kapitel primært benytte os af Red Hats grafiske værktøjer.
Systemadministration foretages af systemadministratoren, dvs. af brugeren root, som også kaldes for superbrugeren (eng. "super user"). Du kan enten logge ind som root eller skifte til denne med programmet su (ordet hemmelig vises ikke på skærmen).
[tyge@hven ~]$ su - root Passwd: hemmelig [root@hven /root]#
Ved at skrive "su - root" i stedet for blot "su root" sikrer vi os, at alt er glemt om brugeren (tyge), som skiftede til systemadministrator ("su" og "su root" er i øvrigt det samme). Typisk har en bruger en del opsætning, f.eks. omkring e-post, og denne opsætning bør du ikke "kende" til som root.
Bemærk også, at prompten ændrede sig, da du blev root. Dollar-tegnet blev til et hash-tegn. Da root har lov til alt på maskinen, bør du være meget omhyggelig med, om du er root eller almindelig bruger. Det kan være at din prompt ikke ser nøjagtig ud som vist ovenfor - den kan sættes som man selv ønsker det (se mere under "kommandofortolkere" i bogen "Linux - Friheden til at lære UNIX").
Måske tror du, at det er smart at være root og kunne alt - det er forkert! Som root kan du komme til at skrive rm -rf /, og så er hele dit Linux-system væk! For ikke at risikere at lave unødige fejl, bør du lave en brugerkonto til dig selv, også selv om du har root-adgangskoden. Skift kun til superbruger, hvis det er absolut nødvendigt, og skift tilbage til din almindelige brugerkonto hurtigst muligt.
Der eksisterer to varianter af Unix: System V (udtales "system fem") og BSD (Berkeley Software Distribution). For en almindelig bruger er der ikke den store forskel; den ligger hovedsagelig i, hvor de forskellige opsætningsfiler er placeret i filsystemet, og hvordan startsekvensen (engelsk: "boot") foregår. Red Hat (og de fleste Linux-distributioner) har valgt side og hører til System V familien, men låner lidt fra BSD.
For at kunne tilgå et filsystem under Linux skal det monteres (eng. "mount") som et katalog i det filtræ, som er blevet genereret af init-processen under opstarten.
rodfilsystemet monteres direkte mens kernen starter. Herefter vil systemet automatisk montere de filsystemer, der er angivet i filen /etc/fstab, og som har en parameter, der fortæller at filsystemet skal monteres under opstarten.
[root@hven /root]# mount -a
vil montere de relevante filsystemer i /etc/fstab. Denne kommando udføres under starten af et af de programmer, der findes i kataloget /etc/rc.d/. Derfor vil disse filsystemer være tilgængelige fra starten. Senere kan man så manuelt montere de ekstra filsystemer, der måtte være behov for.
Eksempel på /etc/fstab:
#device mountpoint(dir) type option dump fsck /dev/hda2 / ext2 default 1 1 /dev/hda3 /usr ext2 default 1 2 /dev/hda4 /home ext2 default 1 2 /dev/fdO /mnt/floppy ext2 noauto,rw,user,exec 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro,user,exec 0 0 none /proc proc default 0 0
Parameterforklaring:
defaults (rw, suid, dev, exec, auto, nouser, asunc)
rw (read-write)
ro (read-only)
user (tillader en alm. bruger at montere filsystemet - forudsætter noexec, nosuid, nodev)
noauto (kan kun monteres eksplicit, dvs. at mount -a vil ikke montere filsystemet).
De to sidste tal på linjen henviser dels til dump-kommandoen, der benytter tallet til at sammenligne med antallet af dage, siden der sidst blev taget backup af filsystemet, således at systemadministratoren kan informeres. Se i øvrigt online-manualen for kommandoen dump. Den sidste parameter på linjen benyttes af kommandoen fsck til at afgøre, om filsystemer kan tjekkes parallelt under opstarten (boot). Root-filsystemet ( dvs. / ) tjekkes altid først. De andre filsystemer kan tjekkes parallelt (multitasking er jo understøttet i Linux), men der er ingen fordel i at tjekke flere filsystemer på samme fysiske disk samtidig, da det vil resultere i overflødig flytning af læsehovedet og dermed slid og spild af tid. En parameter på nul (0) eller ingen parameter (f.eks. floppy og cd-rom) betyder, at filsystemet ikke tjekkes.
Se i øvrigt online-manualen for kommandoerne fsck, dump og mount (brug man fsck osv.)
Mount-kommandoen er generelt kun beregnet for systemadministratoren, med mindre der står "user" i device-feltet i filen /etc/fstab.
Formatet for mount-kommandoen er:
[root@hven /root]# mount -t type device mount-point
Eksempler:
1) Montering af harddisk:
[root@hven /root]# mount -t ext2 /dev/hda2 /mnt/disk
monterer diskafsnittet /dev/hda2 som kataloget /mnt/disk.
2) Montering af diskette til Linux-filer (med ext2-filsystem)
[root@hven /root]# mount -t ext2 /dev/fd0 /mnt/floppy
Alternativ 1:
[root@hven /root]# mount /dev/fd0
henter resten af oplysningerne fra /etc/fstab.
Alternativ 2:
[root@hven /root]# mount /mnt/floppy
henter ligeledes resten af oplysningerne fra /etc/fstab.
3) Montering af diskette til DOS-filer (msdos)
[root@hven /root]# mount -t msdos /dev/fd0 /mnt/floppy
4) Montering af diskette til Windows-filer (vfat)
[root@hven /root]# mount -t vfat /dev/fd0 /mnt/floppy
5) Montering af cd-rom (i iso9660-format)
[root@hven /root]# mount -t iso9660 /dev/cdrom /mnt/cdrom
Alternativ 1:
[root@hven /root]# mount /dev/cdrom
henter resten af oplysningerne fra /etc/fstab.
Alternativ 2:
[root@hven /root]# mount /mnt/cdrom
henter ligeledes resten af oplysningerne fra /etc/fstab.
Det omvendte af at montere et filsystem, er at afmontere (eng. "unmount") filsystemet. At afmontere et filsystem har to virkninger:
Det skriver alle data til den fysiske disk.
Derefter er filsystemet ikke længere til rådighed. fra dets mount point.
Afmontering af et filsystem sker med kommandoen "umount" (bemærk: kun med ét "n").
Eksempel:
[root@hven /root]# umount /dev/fd0 #(afmonterer disketten) [root@hven /root]# umount /mnt/floppy #(afmonterer disketten) [root@hven /root]# umount /dev/cdrom #(afmonterer cdrom) [root@hven /root]# umount /mnt/cdrom #(afmonterer cd-rom)
Vigtigt! Det er vigtigt at bemærke, at man ikke kan/skal fjerne diskette eller andre ydre medier, der er monteret, før umount er kørt, idet der så kan mangle dele af de data, der er skrevet til mediets filsystem, og det kan medføre store problemer. Man kan tvinge systemet til at foretage en synkronisering vha. kommandoen sync, idet alle filsystembuffere så skrives til mediet. Kommandoen umount gør det samme.
Kommandoen umount kræver, at der ikke er nogen, der arbejder på det filsystem man vil afmontere, dvs. hvis du står i /mnt/cdrom hvor din cd-rom er monteret, så kan du ikke afmontere den.
På samme måde vil kommandoen mount give fejlmeddelelsen "device already mounted", hvis man glemmer at afmontere et filsystem, når der forsøges med et nyt filsystem.
En meget vigtig pointe er at root-brugeren kan montere alt, mens den almindelige bruger kun kan montere de enheder, der specifikt er nævnt med et "user"-flag i /etc/fstab. Typisk vil man kun give brugere adgang til at montere løse enheder som diskette og cd-rom, og hvis man er forsigtig, giver man kun de brugere, der har fysisk adgang til maskinen lov til at læse og skrive disketter og cd-rom'er. Det gøres ved at lade disse enheder høre til en brugergruppe, der kun består af de lokale brugere, og så slå skrive- og læserettigheder fra for alle andre end enhedernes ejer og gruppe. Se man chgrp, man chmod og man usergrp for information om hvordan det gøres.
USB er ved at blive en populær måde at koble eksterne enheder på computeren, såsom printere, kameraer og memory-keys (fra 8MB og op til 1 GB nøgleringe).
Vi skal her se på hvordan man får adgang til en USB memory-key, og samme fremgangsmåde kan anvendes til kameraer såsom Olympus UZ2100 og HP Photosmart 610.
Jeg har på min laptop fat i min USB-nøglering ved at have følgende linje i min /etc/fstab
/dev/sda1 /mnt/usb auto noauto,owner,user,rw 0 0
Som root skrives mkdir /mnt/usb for at lave monteringspunktet.
Derefter vil kommandoerne mount /mnt/usb og umount /mnt/usb virke fint - og brugeren har nu læse og skriverettigheder til drevet.
Tip: I Afsnit 7.1.6 er vist hvordan man får monteret en eksterne USB-nøglering automatisk når dette er påkrævet.
Det kræver nok at din Linuxkerne kan se nøgleringen. Dette kan du se ved at skrive cat /proc/scsi/usb-storage-0/0 eller cat /proc/scsi/usb-storage-0/1. Dette skulle gerne vise at det er en "IBM USB memory key" (eller hvad der nu er det rigtige). Bemærk at det åbenbart kræver SCSI emulering - og det skal være en ret ny kerne. Det virker f.eks. ikke direkte i Red Hat 7.2, mens det virker fint med Red Hat 7.3.
Tip: For dem som selv vil oversætte Linux-kernen til at understøtte en "IBM USB memory key" så kræves modulerne "usbdevfs", "hub" og "usb-storage".
Det sidste spørgsmål er naturligt hvordan jeg så fandt ud af at det er /dev/sda1 som kan monteres. Til dette kan programmet hwbrowser anvendes (kræver at hwbrowser.*rpm er installeret). Start hwbrowser i et terminal-vindue og angiv root-adgangskoden for at detektere hardware i maskinen.
Under "Hard Drives" bør man nu kunne se at /dev/sda1 er en harddisk på 32 MB, hvis man har memory sticken inde.
Tip: Et andet trick med USB er at læse filer i /proc/bus/usb/devices - her skal man kunne se at USB-enheden er fundet.
Tip: Alternativt så sæt din USB-enhed på maskinen og kør dmesg. Typisk vi de nederste linjer sige at der er fundet en enhed /dev/sda, /dev/sda1, /dev/sdb1 eller /dev/sdc1. Prøv så at køre (som root) mount /dev/sda /mnt, mount /dev/sda1 /mnt, mount /dev/sda2 /mnt, mount /dev/sdb /mnt, mount /dev/sdb1 /mnt osv. indtil der er bid. Mange USB-enheder kan findes på denne måde - men det er ikke indlysende hvilken USB-devicefil den enkelte USB-enhed ender under.
Tip: Med KDE kan du trykke højre muse-tast på din baggrund og vælge "Create new" -> "CDROM device" eller på dansk "Opret ny" -> "CD/DVD-ROM-enhed" og under device/enhed vælges nu den enhed (/dev/sda1) som passer.
Først en gang Linux-gymnastik, som kun skal gøres én gang på din maskine. Skift til systemadministratorrettigheder ved at skrive su -. Kontrollér, at dit cd-rom-drev er fundet og tillad alle at læse fra det:
[root@hven /root]# ls -al /dev/cdrom lrwxrwxrwx 1 root root 3 Sep 4 14:31 /dev/cdrom -> hdd [root@hven /root]# chmod a+r /dev/hdd
Lad os tage en anden måde at opnå det samme for brugeren "tyge". Kontrollér, at dit cd-rom-drev er fundet, tillad alle i gruppen floppy at læse fra det og føj derefter "tyge" til gruppen floppy:
[root@hven /root]# ls -al /dev/cdrom lrwxrwxrwx 1 root root 3 Sep 4 14:31 /dev/cdrom -> hdd [root@hven /root]# chgrp floppy /dev/hdd [root@hven /root]# chmod g+r /dev/hdd [root@hven /root]# chmod o-rwx /dev/hdd [root@hven /root]# usermod -G floppy tyge
I eksemplerne er /dev/cdrom en henvisning til /dev/hdd, dvs. cd-rom-drevet sidder på den sekundære IDE-bus som slave (typisk situation). Se også Afsnit 4.2.3. Du skal ændre chgrp- og chmod-kommandoerne, så de svarer til den enhed dit cd-rom-drev sidder på, og usermod-kommandoen skal ændres, så det er dit brugernavn der bruges.
Redigér filen /etc/fstab med vi /etc/fstab eller lignende. Du har sikkert en linje, der starter med /dev/cdrom. Den skal du ændre til
/dev/cdrom /mnt/cdrom iso9660 noauto,ro,user,exec 0 0
Hvis du ikke finder en linje, som ligner ovenstående, kan det være fordi supermount er installeret, så du automatisk får adgang til dit cd-rom- og diskettedrev, hvilket bl.a. Mandrake benytter. I så fald skal du ikke ændre noget i /etc/fstab og gå videre til næste afsnit.
Første kolonne viser den enhed (/dev/cdrom), som du vil kunne tage fat i. Næste kolonne viser det sted i filtræet, hvor den skal kunne ses. I eksemplet har vi valgt /mnt/cdrom.
Tredje kolonne beskriver filformatet, her er det iso9960 til en cd-rom. Fjerde kolonne indeholder nøgleord, der beskriver egenskaber ved cd-rom-drevet. 'noauto' betyder, at cd-rom-drevet ikke automatisk monteres, når maskinen startes op. 'ro' betyder at man kun kan læse fra drevet (engelsk: "read-only"). 'user' gør det muligt at montere cd-rom'er som almindelig bruger. 'exec' gør det muligt at køre Linux-programmer fra cd-rom. Betydningen af de to nuller kan du finde frem til ved at udføre kommandoen man mount.
Nu er du klar til at afprøve det. Stop som root ved at trykke Ctrl-D i den terminal, du arbejder i. Læg f.eks. din Red Hat-cd-rom i dit cd-rom-drev, og skriv
[tyge@hven ~]$ mount /mnt/cdrom
Nu bør du kunne skrive df /mnt/cdrom for at se, hvor meget data der ligger på skiven. Du kan nu kopiere og læse fra din cd-rom. Når du er færdig med at læse din cd-rom, kan du ikke bare tage den ud. Du skal først skrive
[tyge@hven ~]$ umount /mnt/cdrom
Du skal også vide, at du sagtens kan bruge f.eks. /cdrom som stedet, du monterer din cd-rom. Du skal bare først lave biblioteket med mkdir /cdrom og gentage ovenstående med den nye sti. Endelig findes der systemer til Linux (Automount, Supermount og AMD), hvor du mere eller mindre direkte kan lægge din cd-rom i drevet og få adgang til data uden at skulle bruge specielle kommandoer, men det skal sættes op særskilt.
Tilsvarende, som med cd-rom-drevet, kan du automatisk føje dine DOS/Windows-diskdrev til Linux-filtræet, som f.eks. /dosc/ og/eller /dosd/. Start med at lave de kataloger, du skal bruge (her vises for disk C og D):
[tyge@hven ~]$ su Passwd: hemmelig [root@hven /root]# mkdir /dosc [root@hven /root]# mkdir /dosd
Redigér filen /etc/fstab med pico -w /etc/fstab eller lignende. Under installationen har du måske sat dine DOS/Windows-diskdrev ind, så de kan ses fra Linux, men her er alligevel et eksempel på /etc/fstab.
/dev/hda1 /dosc msdos defaults,umask=000 0 0 /dev/hda2 /dosd vfat defaults,umask=000 0 0
Den første linje tager /dev/hda1, dvs. første partition på den første IDE-disk, som her antages at være en MS-DOS-formateret partition, og lægger den ind som /dosc. Tilsvarende med /dev/hda2, dvs. anden partition på den første IDE-harddisk, som her antages at være en vfat-formateret partition, dvs. en Windows-partition, hvor der anvendes lange filnavne.
Vi har her skrevet umask=000, som vil gøre at alle brugere kan læse og skrive alle filer på /dosc og /dosd. Dvs. alle kan også slette systemet. Vurdér selv om dette er acceptabelt på dit system.
Når du genstarter computeren vil du automatisk have adgang til dine DOS/Windows-partitioner. Vil du prøve om det virker med det samme, behøver du ikke at genstarte computeren. Du kan bare skrive mount -a i et terminalvindue. Det er unødvendigt at genstarte Linux for at gennemføre en triviel ændring, som man typisk skal i Windows.
For at kunne læse dine DOS-disketter skal du gentage ovenstående med få ændringer (msdos i stedet for iso9660 og rw i stedet for ro). Der er dog en langt nemmere måde: Installér RPM-pakken mtools fra din Red Hat cd-rom (dette er nøjere beskrevet under RPM i næste afsnit).
[root@hven /root]# rpm -i mtools*.rpm
Giv læse- og skriveadgang til /dev/fd0:
[root@hven /root]# chmod a+rwx /dev/fd0
Med man mtools kan du se, at du reelt har fået de gamle MS-DOS-kommandoer, som bare har fået et m foran. Du kan bruge mdir, mcopy, mcd osv. Du kan endda bruge a: som i MSDOS. For at kopiere hele disketten til det bibliotek, du står i, skal du skrive:
[tyge@hven ~]$ mcopy a:* .
Med mtools har du også mulighed for at bruge lange filnavne, der passer med Windows 95, og du skal ikke tænke på mount og umount. Rigtig nyttige programmer.
I Red Hat og SuSE er der mulighed for automatisk at få monteret eksterne enheder, såsom cd-rom og diskettedrev. Det er nemt - du skal blot installere autofs-pakken. I Mandrake benyttes supermount, som er endnu smartere.
[root@hven /root]# rpm -ivh autofs-*.rpm
Sørg først for at autofs startes op i den "runlevel", du normalt arbejder i (oftest 3, hvilket i øvrigt står i /etc/inittab). Det gøres ved at starte control-panel og vælge ikonet med trafiklys på - eller direkte starte tksysv op. Du føjer blot autofs til runlevel 3.
Derefter skal du se i /etc/auto.master, der viser, at /misc nu er under kontrol af automontøren. Går du ned i /misc, bliver der monteret enheder automatisk. Der er et tidsudløb på 60 sekunder i standardopsætningen - dvs. 60 sekunder efter du har besøgt f.eks. din cd-rom, vil maskinen automatisk køre umount for dig. Filen /etc/auto.misc er så der, hvor du skriver hvilke af dine eksterne enheder der automatisk skal monteres. Filen kan f.eks. se ud som følger, for at din cd-rom og dit diskettedrev automatisk monteres i /misc/cdrom hhv. /misc/floppy
cdrom -fstype=iso9660,ro :/dev/cdrom floppy -fstype=auto,umask=0 :/dev/fd0 usb -fstype=auto,gid=401,umask=007 :/dev/sda1
Bemærk at filsystemet /misc/floppy på floppy-disken (dvs. /dev/fd0) detekteres automatisk (pga. auto), og at filsystemet monteres med læse og skrive rettigheder for alle (pga. umask=0). Tilsvarende er indsat adgang til en USB nøglering, men her har vi vist at gruppen af brugere i gruppe 401 (dette defineres i filen /etc/group) har fuld læse og skrive rettigheder (pga. umask=007), mens "others" har ingen adgang.
Der er mange muligheder her, og er du doven, kan du endda lave en lænke fra roden, så /cdrom peger på /misc/cdrom, og du kan så anvende /cdrom til at læse filer fra din cd-rom. Tilsvarende kan det gøres for /floppy. Har du problemer med rettigheder, læs lige de forrige afsnit.
Tip: SuSE 6.4 har via /etc/auto.net lavet mulighed for at man kan gå direkte ind på netværkets andre filservere (hvor dette er tilladt). Via /net/dykker.kongeh.dk/home/dykker får man adgang til kataloget /home/dykker på maskinen dykker.kongeh.dk, hvis dette er eksporteret korrekt.
Mange steder har man en Windows-filserver, eller en Linux-maskine med SAMBA (se bogen "Linux - friheden til systemadministration"), som eksporterer netværksdrev til Windows-maskiner. Denne kan Linux-maskinen sagtens anvende til at få adgang til data.
Brugeren root kan montere en SMB-share (SHARE_NAVN) fra maskinen SERVER_NAVN på Linux-maskinens katalog /mnt/smb_katalog ved at skrive følgende.
[root@hven /root]# mount -t smbfs -o username=BRUGERNAVN,password=MIT_PASSWORD //SERVER_NAVN/SHARE_NAVN /mnt/smb_katalog
Der findes også kommandoerne smbmnt og smbmount, som basalt set kan det samme, men de kan anvendes til at brugere selv kan montere Windows-shares (dette kræver dog at der køres chmod +s /usr/bin/smb*, hvilket svækker system-sikkerheden noget).