29.5Beispiel – Home- und Medien-Server
Dieser Abschnitt gibt ein einfaches Beispiel für die Konfiguration eines zentralen Samba-Servers. Ausgangspunkt ist ein computer-affiner Haushalt, in dem sich auf den drei Computern der Eltern bzw. der beiden Kinder immer mehr Daten anhäufen: Bilder von Digitalkameras, Audio- und Video-Dateien, Schuldokumente, die Buchhaltung etc. Die dezentrale Datenhaltung wirft einige Probleme auf:
-
Es gibt keine ordentlichen Backups. Was passiert, wenn ein Notebook auf dem Weg zur Schule verloren geht oder das Zeitliche segnet?
-
Es ist schwierig, auf gemeinsame Daten zuzugreifen. Oma soll zum nächsten Geburtstag ein Album der besten Familienfotos der letzten Jahre bekommen. Die digitalen Fotos sind aber über drei Rechner verteilt und in keiner Weise geordnet. Ähnliche Probleme gibt es auch bei Partys, wenn sich beim Abspielen von MP3-Dateien herausstellt, dass sich das gerade gewünschte Album auf einem anderen Rechner befindet.
-
Der Datenaustausch zwischen den Rechnern ist umständlich und erfolgt zumeist mithilfe eines USB-Sticks.
Der Linux-begeisterte Sohn schlägt schließlich vor, diese Probleme durch einen zentralen Home- oder Medien-Server zu lösen. Der Server kann via WLAN in das Heimnetz integriert werden und bei Bedarf auch weitere Funktionen übernehmen.
An dieser Stelle ist nur die Samba-Konfiguration von Interesse: Jedes Familienmitglied bekommt ein eigenes Netzwerkverzeichnis, in dem es allein Daten schreiben und lesen darf. Die dort gespeicherten Daten sind also privat, wobei natürlich allen Familienmitgliedern klar sein muss, dass der Sohn als Administrator letztlich jede Datei lesen und verändern kann ...
Zum gemeinsamen Datenaustausch gibt es außerdem noch fünf weitere Verzeichnisse. Die Eltern dürfen auf eltern zugreifen, die Kinder auf kinder und alle Familienmitglieder auf die Verzeichnisse familie, audio und fotos. Natürlich wäre es möglich gewesen, die Verzeichnisse audio und fotos einfach als Unterverzeichnisse von familie einzurichten, die Definition eigener Netzwerkverzeichnisse macht die Anwendung aber ein wenig intuitiver. Bei Bedarf können natürlich beliebige weitere Benutzer und Verzeichnisse eingerichtet werden.
Als Benutzernamen verwende ich im Folgenden mutter, vater, tochter, sohn. In der Praxis werden Sie hier natürlich richtige Namen verwenden – aber darauf habe ich hier verzichtet, damit Sie nicht auch noch die Namen einer fiktiven Familie lernen müssen.
Da useradd ohne Passwort ausgeführt wurde, werden die neuen Benutzer automatisch gesperrt, d.h., es ist kein Login möglich. Das ist beabsichtigt: Es ist weder erforderlich noch zweckmäßig, dass sich die Familienmitglieder direkt auf dem Server anmelden.
Zusammen mit jedem Benutzer wird automatisch auch eine neue, gleichnamige Gruppe erzeugt, die als Standardgruppe für den Benutzer gilt. Außerdem werden den neuen Benutzern auch die Gruppen familie und eltern oder kinder zugeordnet. vater gehört somit den Gruppen vater, eltern und familie an, mutter den Gruppen mutter, eltern und familie etc. Wenn Sie einem Benutzer später eine weitere Gruppe zuordnen möchten, verwenden Sie am einfachsten das folgende Kommando:
Als Nächstes werden die Samba-Benutzer eingerichtet, diesmal jeweils mit einem Passwort:
Beim Einrichten der Verzeichnisse für die gemeinsamen Dateien ist es wichtig, Besitzer und Zugriffsrechte richtig einzustellen – sonst funktioniert später der Datenzugriff nicht. Das erste Kommando chmod 770 bewirkt, dass nur Gruppenmitglieder das Verzeichnis lesen und verändern dürfen. Das zweite Kommando verbietet den Zugriff auf die Home-Verzeichnisse durch andere Benutzer.
Ein Vorteil des gemeinsamen Datei-Servers ist die Möglichkeit, zentrale Backups zu machen. Dabei müssen Sie lediglich die Verzeichnisse /home und shared-data sichern.
Die folgenden Zeilen zeigen die Konfigurationsdatei smb.conf. Die Passwort-Synchronisierung und jeglicher Samba-Zugriff durch Gäste sind deaktiviert. Die Einstellungen für die diversen Verzeichnisse sollten nach der Lektüre von Abschnitt 29.4, »Netzwerkverzeichnisse«, ohne weitere Erklärung verständlich sein.
Die Konfiguration hat einen kleinen Schönheitsfehler: Alle Benutzer sehen alle Freigaben, auch die, die nicht für sie bestimmt sind und die sie nicht nutzen dürfen. Zum Beispiel sehen die Kinder das Verzeichnis eltern, die Eltern das Verzeichnis kinder. Eine tatsächliche Nutzung dieser Verzeichnisse scheitert wie geplant an den Zugriffsrechten, aber noch eleganter wäre es natürlich, wenn diese Verzeichnisse gar nicht erst sichtbar wären.
Samba bietet hierfür leider keine Konfigurationsmöglichkeiten. Sie können zwar einzelne Verzeichnisse durch browseable = no verstecken, aber dann sieht niemand die Verzeichnisse mehr, auch nicht die rechtmäßigen Nutzer. Die Verzeichnisse bleiben weiter benutzbar, allerdings muss der richtige Pfad manuell angegeben werden. Auch die Optionen hide unreadable = yes und hide unwriteable = yes helfen nicht weiter: Damit werden innerhalb eines Netzwerkverzeichnisses alle Dateien versteckt, die ein Benutzer nicht lesen bzw. nicht verändern kann. Das Netzwerkverzeichnis an sich bleibt aber weiter sichtbar.