Dateisysteme

Aus LinuxUser 12/2002

Dateisysteme

Teile und herrsche

In der File System Table (fstab) steht, welche Partitionen und Datenträger beim Systemstart in den Verzeichnisbaum eingehängt werden. Die Tabelle bietet dem Administrator die Möglichkeit, die Sicherheit des Mehrbenutzersystems durch verschiedene Optionen zu stärken.

Die Datei /etc/fstab wird während des Boot-Vorganges von einem Init-Skript durch das Kommando mount eingelesen und Zeile für Zeile umgesetzt. Hier finden sich Einträge für Gerätedateien, CD-ROM-Laufwerke und Festplattenpartitionen, auf die Sie sofort nach gelungener Systeminitialisierung zugreifen können.

Durch die Konfiguration in der Datei weist der Administrator den Laufwerken und Partitionen die entsprechenden Mount-Points zu, bestimmt das Dateisystem oder reguliert über die Zugriffsbits die Rechte der Anwender. Schauen wir uns die Einstellungen in Listing 1 einmal aus der Nähe an.

Listing 1

# Die folgenden beiden Zeilen erläutern und helfen bei der Zuordnung
# (fs_spec)     (fs_file) (fs_vfstype) (fs_mntops) (fs_freq) (fs_passno)
# [1]           [2]       [3]         [4]           [5]      [6]
/dev/hda1       /boot     ext2        defaults       1        2
/dev/hda2       /         ext2        defaults       1        1
proc            /proc     proc        defaults       0        0

Zuerst springt die Gliederung in sechs Spalten ins Auge. Die erste Spalte (fs_spec) zeigt den Namen der Gerätedatei, die zur Partition gehört. In der zweiten Spalte (fs_file) steht der Mount-Point. Er bezeichnet den Ort, an dem das Medium im Verzeichnisbaum eingehängt wird.

Mit der dritten Spalte (fs_vfstype) definieren Sie den Typ des Dateisystems. In Tabelle 1 haben wir eine Auswahl der zur Verfügung stehenden Systemtypen zusammengefasst.

Dateisystemtypen

auto Dateisystem automatisch zuordnen
ext2 ext2-Dateisystem
ext3 ext3-Dateisystem
reiserfs Reiser-Dateisystem
jfs IBMs Journaling Filesystem
minix Minix-Dateisystem
vfat Windows-95-, Windows-98- oder DOS-Dateisystem
ntfs Windos-NT/2000/XP-Dateisystem
msdos MS-DOS-Disketten/Partitionen
umsdos MS-DOS mit Unix-Zusätzen
hpfs OS/2-Dateisystem
xiafs Xia-Dateisystem
swap Swap-Dateien/Partitionen
usbdevfs USB-Geräte-Verwaltung
devpts Pseudo-Terminals
proc Prozessverwaltung
iso9660 DVDs/CD-ROMs
udf Universal Disk Format (DVDs)
nfs Network File System
smbfs Server Message Block Protokoll
ignore (ignoriert Partition)

Die Angaben der vierten Spalte (fs_mntops) legen den Zugriff auf den Datenträger fest. Wie Sie in Listing 1 sehen, dürfen Sie mehrere Optionen, durch Kommata getrennt, in dieser Spalte angeben.

Auch in der Kommandozeile behalten diese Anweisungen ihre Gültigkeit, wenn Sie sie dem Befehl mount als Parameter mit auf den Weg geben. Die Manual-Seiten dieses Befehls liefern Ihnen zudem detaillierte Informationen zu den unterschiedlichen Parametern. Einen ersten Überblick der Mount-Optionen liefert Tabelle 2.

Mount-Optionen

defaults Voreinstellung: rw, suid, dev, exec, auto, nouser und async
exec Erlaubt die Ausführung von Binaries und Skripten
noexec Verbietet die Ausführung von Binaries und Skripten
user Gestattet jedem User das Mounten des Dateisystems
noauto Wird erst durch den Befehl mount eingehängt
ro Mount des Dateisystems als read-only
rw Mount des Dateisystems als read-write
umask= Inverse Bitmaske der Zugriffsrechte (z. B. für FAT-Dateisystem)
uid= User-Zugehörigkeit der Daten
gid= Gruppenzugehörigkeit der Daten
sync Synchrone IO-Operationen

Das Programm dump, das ein Backup der Daten auf einem Ext2-Filesystem anfertigt, nutzt die Angaben in der der fünften Spalte (fs_freq) zur Konfiguration. Einen Einblick in die Funktionsweise des Backup-Tools bietet die Manpage von dump.

Wie die fünfte Spalte wird auch die letzte von einem Programm ausgelesen. In diesem Fall sagt sie dem Kommando fsck, wie die Konsistenz des Dateisystems zu prüfen ist. Das Root-Verzeichnis wird mit einer 1 markiert, die restlichen Dateisysteme bekommen eine 2. Dateisysteme wie zum Beispiel CD-ROMs, bei denen sich eine Fsck-Kontrolle erübrigt, erhalten den Wert 0.

Machen wir uns nun daran, die rudimentäre /etc/fstab aus Listing 1 um einige Beispiele zu ergänzen.

Abbildung 1: Die LinuxUser-CD wird ein Teil des Verzeichnisbaums

Abbildung 1: Die LinuxUser-CD wird ein Teil des Verzeichnisbaums

CD-ROM und DVD

Anhand des Inhalts unserer zwei Tabellen ist die Zeile schnell gestrickt, um das CD-ROM-Laufwerk einzuhängen – zumindest für den Heimanwender mit einem Stand-Alone-PC –, wie wir sehen werden:

/dev/cdrom  /cdrom  auto  ro,noauto,user,exec 0 0

Nehmen wir die Zeile abschnittsweise auseinander. Der Eintrag /dev/cdrom bezeichnet den Device-Namen des Laufwerks. Dabei ist /dev/cdrom in diesem Fall ein symbolischer Link, der auf die eigentliche Gerätedatei (z. B. /dev/hdc) zeigt. Das Feld /cdrom gibt den Mount­Point im Verzeichnisbaum an.

Hier wird das Laufwerk direkt im Root-Verzeichnis unter /cdrom eingebunden. Manche Distributionen bündeln die Mount-Points für Wechselmedien beispielsweise unter /mnt oder /media.

Anstelle von auto könnten sie iso9660 wählen, falls Sie Probleme mit einigen DVDs haben. Die Option ro gestattet ausschließlich den lesenden Zugriff auf das gemountete Medium.

Der Eintrag noauto bindet das Laufwerk nicht nach dem Systemstart ein, sondern lässt es auf ein explizites mount /cdrom in der Shell warten. Durch die Option user ist der Mount-Befehl jedem Benutzer erlaubt. Ähnliches gilt für das Ausführen von Programmen auf der CD durch die Anweisung exec; ist noexec gesetzt, können Programme selbst dann nicht gestartet werden, wenn Sie die nötigen x-Attribute besitzen. Ob Sie die zwei zuletzt genannten Möglichkeiten ausschöpfen, liegt allein in Ihrer Vorstellung vom sicheren Administrieren.

Auf ähnliche Weise können Sie den Eintrag für ein Diskettenlaufwerk vornehmen:

/dev/fd0  /floppy  auto  noauto,user 0 0

In diesem Fall wurde die Option ro weg gelassen, weil die Diskette ja beschreibbar sein soll. Aber es wurde auch das exec entfernt, so dass Anwender von der Diskette keine Programme starten dürfen.

Von Prozessverwaltung bis USB

Viele Informationen aus der internen Verwaltung des Kernels bildet das System als Dateien ab. So verhält es sich mit dem proc-Dateisystem und den USB-Devices (usbdevfs). Basis für die Arbeit mit Pseudo-Terminals ist devpts.

All diese Dateien bilden eine Schnittstelle, an der Emulatoren wie z. B. xterm ansetzen. Damit nach dem Systemstart alle Geräte und Prozesse reibungslos funktionieren, müssen Sie die drei virtuellen Dateisysteme zuvor in die Konfiguration aufnehmen:

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

Gezähmtes Windows

Im nächsten Schritt kümmern wir uns um die Sicherheit der DOS- und Windows-Partitionen. Als erstes binden wir eine Windows-98-Partition ein. Jeder Anwender soll in diesem Teil der Verzeichnisstruktur lesen und schreiben können. Außerdem soll das Dateisystem erst auf das Kommando mount /win98 durch Root eingehängt werden:

/dev/hda3  /win98  vfat  noauto,umask=0 0 0

Neu in dieser Zeile ist der Punkt umask. Wie Tabelle 2 verdeutlicht, setzt die Option inverse Dateirechte. Was bedeutet das? Ähnlich zum Befehl chmod arbeitet umask mit Oktalzahlen. Die Zugriffsbits errechnen sich dabei durch eine Siebener-Formel: 7 minus gewünschtes Dateirecht ergibt den Wert für umask.

Das Recht für die Zugriffsmodi Lesen, Schreiben und Ausführen (oktal 7) ist demnach 0, r-x (oktal 5) ergäbe 2, rw- (oktal 6) wäre eine 1. Da Windows 98 keine Dateirechte unterstützt, zwingen wir dem System die Zugriffsbits auf.

In unserem konkreten Fall verwenden wir allerdings sehr lockere Rechte, denn durch umask=0 darf jeder Anwender alle Dateien lesen, schreiben und ausführen. Weitere Hinweise zum Umgang mit maskierten Dateirechten gibt Ihnen der Befehl man -P "less +'/^[ ]*umask'" bash.

Interessant wären in diesem Zusammenhang die Optionen quiet, iocharset= und uni_xlate. Sie bestimmen die Fehlerausgabe und den Umgang mit Zeichensätzen. Um den Rahmen dieses Artikels jedoch nicht zu sprengen, verweisen wir auf die Manpage von mount.

Kommen wir zu unserem nächsten Partitionskandidaten, mit dem wir etwas strenger umgehen: Windows XP.

/dev/hda4  /winxp  ntfs  ro,uid=999,gid=555,user 0 0

Da Windows XP, wie NT und 2000, das NTFS-Dateisystem verwendet, können Sie nur lesend (ro) darauf zugreifen. (Der Treiber beherrscht auch Schreibzugriff, dieser ist aber als experimentell gekennzeichnet und bei einem Standard-Kernel deaktiviert.) In dieser Konfiguration kommen die Optionen uid= und gid= zum Tragen. Die beiden Abkürzungen stehen für User Identification (UID) und Group Identification (GID).

Zur Erklärung: In der Datei /etc/passwd wird die Liste aller Benutzer geführt. Dort ist unter anderem notiert, welche Nummer einem User zugeordnet ist und zu welcher Gruppe er gehört. Die Werte können Sie außerdem durch den Befehl id oder id username ermitteln:

[andreas]~ > id
uid=500(andreas) gid=100(users)
Gruppen=100(users),[…],42(trusted)

Durch die UID-/GID-Optionen wird jede Windows-XP-Datei der angegebenen User- und Gruppen-ID zugeordnet. Wenn Sie nun noch umask mit hinzunehmen und eine entsprechende Gruppe erstellen, können Sie selbst bei Windows sehr genau reglementieren, wer auf welche Bereiche Zugriff erlangt.

Abbildung 2: Der Zugriff wird verweigert

Abbildung 2: Der Zugriff wird verweigert

Samba und NFS

Bleiben wir gleich bei Windows und sehen uns die Microsoft-eigene Variante eines Netzwerkverzeichnisses an. Der Gegenspieler zum unter Unix üblichen Network File System (NFS) ist SMB (Server Message Block). Über dieses Protokoll kann ein externer Windows-Server seine Daten zur Verfügung stellen.

Um mit Linux auf einen externen Windows-Rechner zugreifen zu können, müssen Sie Samba installieren. Der Zugriff auf freigegebene Verzeichnisse unter Windows erfolgt über das Tool smbclient. Die weitaus einfachere Alternative besteht darin, das Verzeichnis in den lokalen Verzeichnisbaum einzugliedern:

//win/C  /winc  smbfs  user,noauto 0 0

Dieser Eintrag sagt uns: Das Verzeichnis C des Rechners win kann von jedem Nutzer im Linux-Verzeichnis /winc eingebunden werden.

Allerdings muss der Anwender nach dem Mount-Kommando eine Passwortabfrage über sich ergehen lassen. Obwohl er seine Nutzerdaten als Parameter an den Befehl mount hängen kann (-o username=tux,password=pw), dürfen Sie es ihm eine Spur einfacher machen:

//win/C  /winc  smbfs  user,noauto,username="tux",password="pw" 0 0

Vielleicht sind Sie etwas verwundert, weil Sie die Optionen username und password in man mount vergebens gesucht haben: Hier wird intern das Programm smbmount ausgeführt. In dessen Manpages finden Sie Hilfestellungen zu diesem Thema.

Ähnlich gestaltet sich auch die nötige Konfiguration, um ein Verzeichnis über das Network File System (NFS) zu mounten:

linux1:/out  /nfs  nfs  user,noauto 0 0

Hier exportiert der Rechner mit dem Namen linux1 das Verzeichnis /out. Auf diesem Rechner muss das entsprechende Verezichnis in die Datei /etc/exports eingetragen sein. Auf die weiteren Einzelheiten von NFS soll an dieser Stelle nicht weiter eingegangen werden.

User am Zügel

Dateien im MP3-Format sind eine feine Sache. Man kann sie hören, sehen, verwalten und sammeln. Und vor allen Dingen kann man eines damit tun: Speicherplatz auf der Festplatte verschwenden. Welche Hilfe gibt es, um als Administrator die sammelwütigen User im Zaum zu halten? Die Antwort lautet: Quota [1] einsetzen.

Quota erlauben es dem Systemverwalter, den verfügbaren Speicherplatz für Gruppen und einzelne Nutzer zu begrenzen. Diese Grenze kann fließend gezogen oder strikt festgelegt werden.

Quota überwachen jede Partition mit separaten Konfigurationsdateien und sind recht schnell eingerichtet. Im Netz finden Sie sowohl ein deutsches [3] als auch das Original-HOWTO in englischer Sprache [2]. Voraussetzung für die Verwendung von Quota ist freilich ein Kernel mit einkompilierter Quota-Unterstützung.

Da wir an diesem Ort nicht die komplette Konfiguration des Programmes erklären können, beschränken wir uns auf die Einträge in /etc/fstab. Um den verfügbaren Platz der Nutzer einzuschränken, wählen Sie die Option usrquota. Sie folgt der Option defaults und betrifft die /home-Partition:

/dev/hda5  /home  ext2  defaults,usrquota 1 1

Wenn Sie usrquota durch grpquota ersetzen, unterstützt Quota die Gruppenverwaltung:

/dev/hda6  /usr  ext2  defaults,grpquota 1 1

Sie können bei Bedarf beide Einstellungen auf eine Partition ansetzen:

/dev/hda6  /var  ext2  defaults,usrquota,grpquota 1 1

Durch die Aufteilung einer Linux-Installation auf verschiedene Partitionen erreichen Sie eine Trennung von System- und User-Daten. So sind administrative Eingriffe, vom Quota-Einsatz bis zum Wechsel der Distribution, ohne größere Probleme möglich. Zusätzlich schont ein durchdachter Aufbau der fstab die Nerven des Administrators – auch und gerade zur Weihnachtszeit.

LinuxUser 12/2002 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben