Linux als Dateiserver: Tanze Samba mit mir!
Die Software Samba macht aus Linux einen Dateiserver, der ein NT-System voll ersetzen kann. Lesen Sie, wie Sie mit schnell Freigaben erzeugen, auch kniffligere Probleme meistern und sogar einen kompletten NT-Domänenserver aufs Altenteil schicken.
Um per Linux aus einem normalen PC einen starken Fileserver zu bauen, muss man kein Crack sein. In Suse-Linux ist das das Paket mittlerweile so komfortabel zu verwalten, dass sich mit nur wenig Aufwand ein einfacher Server auf die Beine stellen lässt. Das Konfigurationsprogramm Yast bietet dabei eine Schnittstelle zu Samba 3.0, die das direkte Editieren der Datei smb.conf überflüssig macht, was früher noch notwendig war. Auch den Neustart nach Änderungen in der Konfiguration übernimmt das Programm für Sie.
Samba installieren
Nach der Installation von Suse 9.1 auf einem PC kann gleich das Nachrüsten mit Samba folgen. Dazu Yast aufrufen, "Software/Software installieren oder löschen" starten und dort mit der Suchfunktion nach "Samba" fahnden. Aus den Fundstellen wählt man als Administrator die Einträge "samba" und "yast2-samba-server" aus. Gleich danach sollten Sie in Yast den "Online Update" starten. Damit kommen die neuesten Samba-Patches auf den Server.
Mit der Auswahl von "Netzwerkdienste/Samba-Server" geht es weiter. Dort wählen Sie die Option "Samba-Server aktivieren" und tragen in "Domain oder Arbeitsgruppe" den Namen der lokalen Arbeitsgruppe ein. Anschließend geben Sie eine kurze Beschreibung des Servers ein und legen für ihn mit einem einen Netbios-Namen fest. Unter dieser Bezeichnung erscheint er dann in der Netzwerkumngebung von Windows-Computern. Als "Freigabe-Typ" bleibt zunächst "Freigabe von Dateien und Druckern" stehen.
Nach einem Klick auf "Weiter" bietet der Server in "Freigegebene Ressourcen" an, die Heimatverzeichnisse aller User freizugeben. Zusätzlich lassen sich unter "Wählen" lokal angeschlossene Drucker zur Freigabe aussuchen.
Wer gleich noch einen weiteren Ordner freigeben möchte, beispielsweise ein öffentliches Verzeichnis zum Datenaustausch, erledigt dies mit einem Klick auf "Erweitert". Dort erscheinen zunächst alle frei gegebenen Ordner. Nach einem Klick auf "Hinzufügen" geben Sie zunächst einen Namen für die Freigabe in "Name des Shares" ein – zum Beispiel "public". Optional nimmt das Dialogfenster eine kurze Beschreibung auf, wie "Verzeichnis für alle".
Im "Pfad für Share" muss schließlich das entsprechende Linux-Verzeichnis eingetragen werden. Mit einem Klick auf "Durchsuchen" stöbern Sie Verzeichnis auf der Festplatte auf oder erzeugten per Klick auf das Symbol "Create New Folder" einen neuen Ordner. Nun noch "Ok" und "Beenden" die Dialoge schließen und der Samba-Server ist schon fast. Denn zuvor müssen noch die Samba-Nutzer eingetragen werden. Das geht nur über die Linux-Kommandozeile. Als Benutzer root geben Sie dazu den Befehl
smbpasswd -a username
ein und verpasst dem neuen Nutzer danach ein Kennwort. (Statt username muss der tatsächliche Benutzername eingesetzt werden.) Wichtig: Dieser Benutzer muss auf Linux-Ebene ebenfalls existieren.
Idealerweise stimmen Benutzernamen und Kennwörtern der Samba-User mit denen auf ihren Windows-Computern überein. Falls nicht, müssen die Benutzer beim Öffnen eines Ordners noch Benutzernamen und Passwort extra eingeben.
Rechte vergeben
Nach dem Einrichten von Samba mit Yast haben alle Benutzer volle Zugriffsrechte auf ihre Heimatverzeichnisse. Ein eventuell eingerichtetes öffentliches Verzeichnis steht allerdings nur zum Lesen zur Verfügung. Das lässt sich jedoch leicht mit einem kleinen Eingriff auf der Shell beheben.
Mit dem Befehl
chgrp users /home/public
wird das in diesem Beispiel frei gegebene Verzeichnis /home/public zunächst der Gruppe "users" zugeordnet. In dieser Gruppe sind per Standard auch alle mit Yast eingetragenen Benutzer und damit auch unsere Samba-User.
Damit die Samba-Nutzer auch in den Ordner hinein schreiben dürfen, verpassen Sie dem Verzeichnis mit
chmod 770 /home/public
die richtigen Lese- und Schreibrechte: Der Besitzer "root" und die zuvor zugeordnete Gruppe "users" dürfen sowohl das Verzeichnis öffnen wie auch darin Dateien lesen und ändern. Alle anderen Benutzer dürfen gar nichts.
Nach dieser Änderung lässt sich der öffentliche Ordner von jedem angeschlossenen Windows-PC aus öffnen und mit Dateien bestücken.
Feintuning durchführen
Mit Samba 3.0 kam eine Neuerung, die alle Administratoren lieben werden: Beim Speichern von Dateien verwendet Samba Unicode. Sprich, die Dateien werden auf Linux-Ebene mit korrekten Umlauten gespeichert und erscheinen auch beim Öffnen eines Samba-Ordners in Windows mit korrekten Schreibweisen. Bislang musste sich der Administrator mit der Angabe von Codepages und Zeichensätzen um dieses Problem kümmern. Nun ist selbst selbst das Eurozeichen im Dateinamen ist für Samba kein Problem mehr.
Dennoch schadet ein wenig Feintuning nicht. Denn nach wie vor haben alle Dateien, die ein User in sein Heimatverzeichnis oder einen anderen Ordner kopiert, einen Makel. Denn auf Linux-Ebene haben all diese Files für den Eigentümer das Flag "ausführen" gesetzt, was in Linux-Dateimanagern merkwürdig aussieht, weil sich diese Dateien von normalen Datendateien optisch abheben. Das verhindert Sie als Administrator ebenfalls in Yast. In "Freigegebene Ressourcen" klicken Sie dazu auf "Erweitert". Dann die entsprechende Freigabe auswählen und dort auf "Bearbeiten" klicken.
Es folgt ein Klick auf "Hinzufügen". In der danach erscheinenden Auswahl, wählen Sie "create mask". Nach dem "Ok" folgt die Eingabe von 0600. Die Benutzerrechte aller neu in einen Ordner kopierten Dateien werden dann so gesetzt:
- der Besitzer darf die Dateien lesen und ändern
- weder Mitglieder der Gruppe noch irgendein anderer Benutzer dürfen die Datei sehen.
Diese Dateirechte werden auf Linux-Ebene gesetzt, gelten damit aber auch für Samba -- denn eine Datei, die Linux nicht hergibt, darf auch ein Samba-Nutzer nicht anschauen -- außer sie gehört ihm. Mehr zu den Benutzerrechten unter Linux lesen Sie im Kasten auf Seite ###.
Im öffentlichen Verzeichnis sieht alles ein wenig anders aus. Sollen die Dateien dort auch von anderen Benutzern geändert werden, setzt man die "create mask" auf 0660. Damit haben Besitzer sowie die Gruppenmitglieder das Recht, die neu angelegten Dateien zu lesen und zu ändern.
Damit auch die Rechte für neu erzeugte Ordner richtig gesetzt werden, braucht der Samba-Administrator den Parameter "directory mask". Doch der ist in der Parameter-Auswahlliste von Yast nicht vorhanden. Kein Problem. Einfach auf "Hinzufügen" klicken und dann den vorgeschlagenen Eintrag "available" markieren. An Stelle der Markierung "directory mask" schreiben. Dann auf "Ok" klicken und die entsprechenden Rechte festlegen. Für das öffentliche Verzeichnis ist "0770" sinnvoll. Damit dürfen Besitzer und Mitglieder einer Gruppe ein neu erzeugtes Verzeichnis öffnen, lesen und darin neue Dateien erzeugen. Im privaten Ordner ist "0700" sinnvoller. Dann darf nur der Besitzer Neues erzeugen, sonst darf niemand an die Daten.
Wichtig: Damit "create mask" und "directory mask" funktionieren, muss der Parameter "inherit permissions" doppelt angeklickt und auf "no" gesetzt werden.
Sind die Ordner angelegt und mit den entsprechenden Parameter ausgestattet, geht es mit "Ok" und "Beenden" zu Ende. Danach werden die Konfigurationsdateien geschrieben und Samba startet neu. Danach steht der Server im Netz zur Verfügung.
Benutzer in Gruppen organisieren
Kein ernsthafter Server kommt ohne Zugangsbeschränkungen für das eine oder andere Verzeichnis aus. Diese Beschränkungen sollten möglichst fein einstellbar sein -- je nach Benutzer gelten andere Berechtigungen. Auch das unterstützt Samba. Allerdings muss der Netzwerker zuvor ein wenig an den Parametern drehen und auf Linux-Ebene Gruppen und Benutzer zusammenbringen.
Zunächst also wird eine Gruppe angelegt. Im Beispiel heißt sie "pubusers". Allein Mitglieder dieser Gruppe sollen Dateien im Verzeichnis "public" ansehen und öffnen dürfen. Wer nicht dieser Gruppe angehört, darf nichts. Die Gruppe erzeugen Sie in Yast unter "Sicherheit und Benutzer/Gruppen bearbeiten und anlegen". Dort auf "Hinzufügen" klicken und unter "Name der Gruppe" den Namen eingeben - in diesem Beispiel "pubusers". Rechts unter "Mitglieder dieser Gruppe" wählt man gleich die Benutzer aus, die zu der Gruppe gehören sollen. Danach "Weiter" und "Beenden" anklicken und wieder die Samba-Konfiguration aufrufen.
Dort den gewünschten Ordner anwählen und "Bearbeiten" anklicken. Mit einem Klick auf "Hinzufügen" erzeugt man einen neuen Parameter: "valid users". Der bekommt in diesem Beispiel den Wert "@pubusers". Das vorangestellte @ bedeutet, dass es sich hier um eine Gruppe handelt. Fehlt das Zeichen, geht Samba davon aus, dass ein Benutzername eingegeben wurde. "valid users" sorgt dafür, dass nur Benutzer aus der dahinter stehenden Liste eine Freigabe öffnen dürfen. (Mehrere Einträge lassen sich mit Kommata getrennt angeben.)
Wer zusätzlich zur Angabe von "valid users" den Parameter "read only" auf "true" setzt, sorgt dafür, dass die Mitglieder der Gruppe "@pubusers" im Ordner nur lesen dürfen. Danach fehlen nur noch die Administratoren des Ordners, die dort auch Files hineinkopieren dürfen. Die werden nach demselben Muster angelegt: Zunächst eine Gruppe definieren und ihr die Benutzer zuordnen. Danach wieder die Samba-Konfiguration öffnen und der Freigabe den Parameter "write list" hinzufügen. In diese Liste kommen wieder Benutzernamen oder in diesem Beispiel der Name der Gruppe "@pubadmin". Wichtig ist, dass "read only" auf "true" gesetzt bleibt. Und natürlich müssen die Mitglieder der Gruppe oder die Gruppe selbst die entsprechenden Rechte haben, Dateien zu erzeugen, wenn sie in "write list" stehen.
So funktioniert das Domänenkonzept
Samba kann auf Wunsch als "Primary Domain Controller" (PDC) im Netzwerk agieren. Ein PDC spielt eine wichtige Rolle in der letzten Generation der Netzwerkwelt von Microsoft, die auf dem Konzept der Domänen basiert. Wenn auch mit Windows 2000 und seinen Active Directory Services bereits seit einiger Zeit ein Nachfolger dafür existiert, ist dieses Konzept für viele Unternehmen wegen seiner relativ geringen Komplexität immer noch empfehlenswert.
Kern des Ganzen sind Domänen, also Herrschaftsbereiche in einem Netzwerk. Wahrscheinlich genügt in Ihrem LAN eine einzige Domäne vollkommen. Der Meister über eine Domäne ist eben der PDC, eventuell von einem "Backup Domain Controller" als Sicherungssystem unterstützt.
Der PDC hält eine Domänen-weite Benutzerdatenbank. Es genügt also, die Benutzer und Ihre Kennwörter einmalig zentral einzutragen. Somit kann sich auch jeder Benutzer an jedem Rechner einloggen. In der normalen Variante wird dabei allerdings auf jedem Rechner für jeden Nutzer ein so genanntes Profil gehalten. Das speichert all seine persönlichen Informationen, wie die Systemeinstellungen, den Ordner "Eigene Dateien", die Browser-Bookmarks oder ähnliches. Loggt sich ein Benutzer beispielsweise erstmalig an einem Computer an, den er normalerweise nicht verwendet, dann legt das Betriebssystem für ihn dort ein neues Profil an, das mit dem auf seinem normalerweise verwendeten System nichts zu tun hat.
Um einen einfachen Wechsel von einem Computer zum anderen zu ermöglichen, wurde die Betriebsart der "Roaming Profiles" eingeführt. Dabei werden alle benutzerspezifischen Daten auf dem PDC gespeichert. Egal wo man sich anmeldet, die Einstellungen und die persönlichen Daten nimmt man dabei immer mit.
Servereinstellungen vornehmen
Der PDC-Modus wird ganz einfach im selben Yast-Schirm gewählt, in dem Sie anfangs die Grundkonfiguration von Samba durchgeführt haben. Als "Freigabe-Typ" wählen Sie nun aber "Primary Domain Controller". Im Feld "Domain oder Arbeitsgruppe" tragen Sie dann den Namen ein, den Ihre Domäne erhalten soll.
Auch hier muss für jeden Benutzer, der von einem Windows-PC auf den Samba-Server zugreifen soll, ein Linux-User angelegt werden. Das machen Sie auf der Kommandozeile mit folgenden Befehlen
useradd -s /bin/false myuser
smbpasswd -a myuser geheim
Das erste Kommando legt einen Linux-User an, der sich nicht auf Shell-Ebene einloggen darf. Die zweite Zeile gibt dem Benutzer sein Passwort für Samba.
Clients auf Domänenbetrieb umstellen
Die Windows-Clients müssen nun noch so konfiguriert werden, dass Sie schon bei der Anmeldung auf den PDC zugreifen. Einmalig ist dazu die Anmeldung jeder einzelnen Station am Samba-Server notwendig. Die folgenden Schritte funktionieren allerdings nur mit Windows 2000 oder XP in der Professional-Version. Die Home-Variante ist von Microsoft bewusst um die Domänen-Funktionalität beschnitten worden.
Dazu gehen Sie in Systemsteuerung/System auf den Reiter "Computername" und starten mit dem Button "Netzwerkkennung" den Assistenten für die verschiedenen Anmeldevarianten. Wählen Sie die Optionen für ein Firmennetzwerk und Domänenanmeldung.
Auf der ersten Seite zur Eingabe Benutzerdaten ist eigentlich nur das letzte Feld wichtig, das den vorher in der Samba-Konfiguration gewählten Domänennamen erhalten soll.
Auf der nächsten Seite wird der Assistent nochmals den Namen Ihrer Windows-Workstation und den Namen der Domäne abfragen, da der Samba-Server noch keinen Eintrag für Ihren Computer finden kann.
Damit nicht jeder Benutzer nach Belieben einfach Computer einer Domäne hinzufügen kann, erfolgt im nächsten Schritt die Abfrage eines Administrator-Kontos. Geben Sie hier die Anmeldedaten des Benutzers root ein. Nun fragt der Assistent noch, ob Sie ein neues Konto anlegen wollen, was Sie verneinen sollten.
Nach dem vom System geforderten Neustart haben Sie den von Windows 2000 bekannten Willkommensmeldung, die Sie zum Drücken der Tastenkombination [Strg]+[Alt]+[Entf] für den Anmeldedialog auffordert. Der hat nun – eventuell erst nach dem Klick auf "Optionen" eine Auswahlbox für die Anmeldung. Sie wählen zwischen der gerade verbundenen Domäne oder der bisherigen Option, der Anmeldung am lokalen Computer.
Bei der ersten Domänenanmeldung wird es ein wenig dauern, bis der PC alle notwendigen Vorbereitungen getroffen hat. Danach erscheint ein jungfräulicher Desktop.
Die Grundeinstellung ist dabei die Speicherung Ihrer persönlichen Daten auf dem Samba-Server innerhalb des Home-Verzeichnisses ihres Alter Ego auf Linux-Ebene. Sie können sich also auf einer beliebigen Workstation einloggen und Ihre Daten folgen Ihnen sozusagen auf Schritt und Tritt.
Sollten Sie das nicht wollen, sondern stattdessen die lokale Speicherung der Daten bevorzugen, rufen Sie Systemsteuerung/System auf. Unter dem Reiter "Benutzerprofile" können Sie hier die Speicherhaltung ihrer Profildaten auf "lokal" umstellen. Denn je nach der Geschwindigkeit des Netzwerks und dem Umfang des eigenen Profils kann der Zugriff auf die Server-gelagerten Daten die Reaktionszeiten ganz schön in die Höhe treiben. So genügt eine prall gefüllter E-Mail-Historie bei Outlook oder ein voller Papierkorb um die Geduld des Anwenders beim Ein- und Ausloggen ganz schön zu strapazieren. Der Grund dafür liegt darin, dass Teile des Profils auf dem lokalen System zwischengespeichert werden, was beim Eintritt in das System einen Transfer dieser Datenbereiche zum Client und beim verlassen das Zurückspeichern auf den Server nach sich zieht.
Bedingungen für die Kommentareingabe
Hinweis

Note:
3.25