/etc/fstab - fil system tabellen

tux

fstab (File System TABle) indeholder information om partitioner og volumener som skal indsættes i træ-strukturen under opstarts-processen. Tabellen tillader admin at forhøje sikkerheden i et flerbruger system, ved at tilføje forskellige parametre.

Under boot processen bliver /etc/fstab læst af mount kommandoen, og udført linie for linie. Fstab indeholder som regel linier for device filer, CD-Rom drev og harddisk partitioner, som vil være tilgængelig umiddelbart efter boot.

Systemadministratoren kan bruge konfigurations filen til at tildele "mount points" til drev og partitioner. Dvs. at admin manuelt kan fortælle systemet hvor og i hvilken mappe hans harddisk skal have tilgang fra. Han/hende kan også regulere hvem der har afgang til drevene. Lad os kigge lidt nærmere på fstab.


#Følgende er designet som eksempel, og kan ikke bruges direkte.
#(fs_spec) (fs_fil) (fs_type) (fs_mntm) (fs_freq) (fs_pass)
/dev/hda1 /boot ext3 defaults 1 2
/dev/hda2 / ext3 defaults 1 1
/dev/hdb1 /mnt/disk1 ext2 defaults 0 2
proc /proc proc defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,user 0 0
/dev/hdc1 /mnt/winxp ntfs ro,uid=999,user 0 0
/dev/hdc2 /mnt/win98 vfat auto, user 0 0

At listen er delt ind i 6 kolonner er umiddelbart synlig. Den første kolonne (fs_spec) indeholder drevets filnavn og partition. F.eks. hda1; harddisk a, første partition (det der svarer til C under konkurrentens system), det kunne også beskrives som primær harddisk på primær bus (ide 0), første partition.

Den anden kolonne (fs_fil) viser mount punktet for disken f.eks. /mnt/disk1. Det her her harddisken bliver sat ind i filstrukturen. Den tredje kolonne (fs_type) er typen få det filsystem der bliver brugt. F.eks. ext3. Der kommer senere en gennemgang af de forskellige typer.

Den fjerde kolonne (fs_mntm) er den måde der bliver mountet på. De forskellige parametre kan listes med komma. Disse parametre kan også gives fra kommandolinien. Se "man mount" manual siderne for mere detaljeret parametre.

Dump programmet der laver en backup af filsystemet kigger i den femte kolonne (fs_freq) for konfiguration. Kig i dump manual siderne for yderligere information herom.

Ligesom forgængeren er den sidste kolonne (fs_pass) også læst af et program. I dette tilfælde fortællers der hvordan "fsck" skal tjekke filsystemet. Root systemet ( / ) har et 1 tal. Andre filsystemer har 2. 0 gives som regel til cdrom og andre der ikke behøver at blive tjekket af fsck.

Lad os nu tilføje et par eksempler til fstab.

Cdrom og DVD.
Efter at have taget et hurtigt kig på vores tabel, så skulle det ikke være et problem at tilføje en linie der gør det muligt at mounte et cdrom drev.

/dev/cdrom /mnt/cdrom auto ro,nuauto,user,exec 0 0

Lad os kigge på syntaksen. /dev/cdrom specificerer drevet. I dette tilfælde er /etc/cdrom et symbolsk link til det rigtige device fil (f.eks. /dev/hdc). /mnt/cdrom er der hvor cdrommen bliver sat ind i filstrukturen (mappen /mnt/cdrom skal laves). Nogle systemer mounter cdrommer direkte i root f.eks. /cdrom og andre mounter i /media/cdrom. Dette er afhængig af systemet og i praksis ligegyldigt.

Der kunne vælges filsystemet iso9660 i stedet for auto, hvis der er problemer med at mounte DVDer.

ro; står for "read only" adgang til mediet.

noauto; kommandoen forhindrer at mediet mountes under boot, men skal mountes manuelt f.eks. med "mount /mnt/cdrom" i prompten.

user; tillader alle brugere at udføre "mount" kommandoen.

exec; er ligesom user, en parameter til mount om at brugeren må "execute" køre filer på drevet. noexec er det modsatte, også selvom attributten x er til stede.

Vi kunne lave en lign. entry for diskette drevet:
/dev/fd0 /mnt/floppy auto noauto,user 0 0

I dette tilfælde er ro undladt da vi ønsker både at læse og skrive. Læs mere herom senere.
Kommandoen exec er fjernet for at brugerne ikke starter programmer fra disketten.

Nogle distributioner har deres egne automount programmer. F.eks. ser Red Hats linie for cdrom sådan ud:

/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0

Her bruges programmet "kudzu" til at mounte med.

USB
Systemet gemmer flere interne kerne administration data i filer. Dette princip bruges både for "proc" og USB enheder (usbdevfs). "devpts" er nu base for pseudo terminal operationer.

Alle disse filer viser interfaces brugt af emulatorer, såsom xterm. For at tillade drev og processer at køre glat efter boot af systemet, skal du tilføje 3 virtuelle filsystemer i fstab:

devpts /dev/pts devpts defaults 0 0
usbdevfs /proc/bus/usb usbdevfs defaults 0 0
proc /proc proc defaults 0 0

Windows partitioner
Følgende ser lidt på sikkerheden i dos og windows partitioner. Først mounter vi en windows98 partition. Læs og skrive adgang er tilgængelig for alle brugere, og den bliver mountet under boot.

/dev/hdc2 /mnt/win98 vfat auto,umask=0 0 0

Vi kunne også have valgt at kun root kunne mounte og ikke under boot:

/dev/hdc2 /mnt/win98 vfat noauto, umask=0 0 0

"umask" i denne entry er ikke blevet beskrevet tidligere. Denne option sætter inverse fil privilegier. Ligesom "chmod" så virker "umask" med oktale tal. Adgangs bittene er beregnet ved at trække filprivilegierne fra 7, og dette er så "umask".
Derfor er privilegierne for læse, skrive og køre (oktal 7), som fås ved at give umask=0.
r+w (read+write) (octal 6) fås ved at taste 1, og r-x (read-execute) (octal 5) ved at taste 2.
Da Windows 98 ikke indeholder filprivilegier, kan vi bruge Linux adgangs bits for at tilføje ekstra sikkerhed.

Skriv "man -P´/^[ ]*umask" i "bash" for at få yderligere information om filprivilegier.

Lad os kigge på Win XP, der har lidt mere sikkerhed.

/dev/hdc3 /mnt/winxp_d ntfs ro,uid=999,user,gid=555,user 0 0

Da ntfs er alfa teknologi, supporteres kun ro "read only". RedHat (8.0) understøtter med standardkernen ikke ntfs. uid= og gid= er brugt her. UID (User Identification) og GID (Group Identification).
/etc/password indeholder en liste af alle brugere, samt hvilket gruppe og nr. ide de har. Prøv at taste "id" i konsollen for at se dine numre.
UID/GID tillader en bruger eller gruppe til hver Windows XP fil. Nu skal du bare starte "umask" for at lave en gruppe der har ret til Windows XP partitionen.

SAMBA
Lad os blive ved Windows og kigge lidt på Microsofts egen variant af netværk filsystem (NFS), SMB (Server Message Block).
En Windows maskine kan bruge denne protokol til at give adgang til dens filer. Du vil få brug for SAMBA, for at få adgang til Windows filer fra din Linux/UNIX (MAC også bruger SAMBA).
"smbclient" bliver brugt til at få adgang til Win mapper. Men det er meget lettere at mounte direkte ind i den lokale fil struktur.

//winserver/c /mnt/win smbfs user,noauto 0 0

Denne streng tillader mount af "winserver"s "c" mappe i /mnt/win i din lokale fil- struktur. Dog vil brugeren blive spurgt efter password til serveren.

//winserver/c /mnt/win smbfs user,auto,username="tux",password="pw" 0 0

Nu vil der blive logget på hver gang computeren starter og brugeren vil ikke længere blive spurgt efter password. Kommandoen "mount" styrer på denne måde "smbmount" og binder det til en lokal mappe.

Filsystemer supporteret er:
auto: Tilføj filsystem automatisk
ext2: ext2 filsystem
ext3: ext3 filsystem
reiserfs: reiser filsystem
jfs: IBM journaliserende filsystem
minix: Minix filsystem
vfat: Windows ME, 98, 95 og DOS filsystem
ntfs: filsystem
msdos: MS-DOS diskette filsystem
umsdos: MS-DOS med UNIX add-ons
hpfs: OS/2 filsystem
xiafs: XIA filsystem
swap: Swap filer/partitioner
usbdevfs: USB enhed administration
devpts: Pseudo terminaler
proc: Precess administration
iso660: DVD/CD-ROM
udf: Universal Disk Format (DVD'er)
nfs: Network File System
smbfs: Server Message Block protokol

ignore: ignorer partition

Oversigt over "mount" muligheder
defaults: standard indeholder: rw,suid, dev, exec, auto, nouser, og async
exec: tillader binær og scripst at blive kørt
noexec: tillader IKKE binær og scripst at blive kørt
user: tillader brugere at mounte filsystemer
noauto: skal mountes med "mount" kommandoen (f.eks. fra prompten)
ro: mounter filsystemet i "read only" (kun læse adgang)
rw: mounter filsystemet i "read write" (læse og skrive adgang)
umask= inverse bits for adgangs privilegier (f.eks. for FAT partitioner)
uid= User ID, bruger id på data
gid= Group ID, gruppe id på data
sync= synkroniser I/O operationer

Det er også muligt at begrænse brugeres forbrug af diskplads. Dette går dog udover denne artikels pensum, da denne option skal kompiles ind i kernen. Læs om Qoutas her:
http://www.tldp.org/HOWTO/mini/Quota.html

Projektets homepage findes her:
http://www.sourceforge.net/projects/linuxquota