Articles

Verwenden von Samba zum Freigeben von Dateien zwischen Linux und Windows

Ihr Heimnetzwerk verfügt möglicherweise über einige Windows-Computer im Erdgeschoss, einen Mac in einem Schlafzimmer im Obergeschoss, einen PocketPC auf einem Nachttisch und eine oder zwei Linux-Boxen im Keller, die alle mit einem generischen Router vernetzt sind. Für alle Geräte in diesem vertrauten Familien-Setup oder sogar ein Szenario mit Tausenden von Benutzern ist die Samba Suite eine ideale Lösung für die Datei- und Druckfreigabe.

Es gibt mehrere plattformübergreifende Datei- und Druckfreigabelösungen, aber Samba und das SMB / CIFS-Protokoll sind möglicherweise am einfachsten in einer Heimnetzwerkumgebung zu implementieren. Windows-Maschinen und Macs kommen mit der Funktionalität mit Samba aus der Box zu arbeiten, und Sie sollten nur ein einziges Samba-Paket für Linux-Maschinen installieren müssen. GNOME und KDE bieten Samba-Client-Funktionen, die in ihre Standard-Dateimanager Nautilus bzw. Konqueror integriert sind.

Wir konzentrieren uns auf die Konfiguration und Verwendung von Samba für die Datei- und Druckfreigabe in einem typischen Heimnetzwerk mit Linux- und Windows-Computern. Sie können aus mehreren Samba-Konfigurations-GUIs wählen, aber wir gehen den altmodischen Weg und verweisen unsere Texteditoren auf smb.conf. Die Konfigurationsdatei befindet sich üblicherweise unter /etc/samba/smb.conf oder /usr/local/samba/lib/smb.conf. Beachten Sie, dass Sie root sein müssen, um diese zu bearbeiten, oder verwenden Sie sudo.

Samba läuft auf fast jedem Unix-ähnlichen System und ist in den Repositories fast jeder Linux-Distribution zu finden. Verwenden Sie zunächst den Paketmanager Ihrer Distribution, um sicherzustellen, dass er installiert ist.

Samba konfigurieren

Samba ist ein sehr ausgereiftes und komplexes Paket, daher kann seine Konfigurationsdatei lang und kompliziert sein. Sie müssen darauf vertrauen, dass Ihre Distribution Ihnen eine einigermaßen solide Standardkonfiguration zur Verfügung gestellt hat, und sich darauf konzentrieren, nur wenige Zeilen in smb zu ändern.conf, um sicherzustellen, dass sie für die Zwecke eines Heimnetzwerks geeignet sind. Wenn Sie mehr über eine Zeile erfahren möchten, lesen Sie man smb.conf .

Denken Sie daran, dass jede Zeile in der Konfigurationsdatei, der ein Semikolon (;) oder ein Hash-Zeichen (#) vorangestellt ist, ein Kommentar ist und nicht als aktive Einstellung erkannt wird. Um die Zeile zu aktivieren, entfernen Sie das Semikolon oder den Hash. Es empfiehlt sich, eigene Kommentare hinzuzufügen, denen eines dieser Zeichen vorangestellt ist, damit Sie sich beim nächsten Laden von smb an die Logik hinter Ihrer Konfiguration erinnern.conf.

Die erste zu berücksichtigende Option ist die Sicherheitsstufe von Samba. Diese Zeile wird unter dem Abschnitt von smb angezeigt.conf, wo die gesamte Samba-weite Konfiguration erfolgt. Die anderen Abschnitte, die später in diesem Artikel behandelt werden, beziehen sich auf bestimmte Samba-Dienste (gemeinsam genutzte Ressourcen). Die Sicherheitsstufe wird höchstwahrscheinlich auf den Wert user gesetzt und sieht folgendermaßen aus:

security = user

Für ein Heimnetzwerk sollten Sie dies auf share setzen. Der Hauptunterschied besteht darin, dass Sie sich mit der Einstellung user beim Samba-Server anmelden müssen, bevor Sie dessen Ressourcen durchsuchen können. Dies ist eine kluge Vorsichtsmaßnahme in nicht vertrauenswürdigen Netzwerken, ist jedoch unpraktisch, wenn Sie Ressourcen verwenden, auf die Ihr gesamter Haushalt zugreifen soll, z. B. einen Drucker. Wenn share aktiviert ist, können Sie weiterhin Benutzer auffordern, sich mit einem Kennwort zu authentifizieren, um auf bestimmte Ressourcen zuzugreifen.

Während wir uns noch im Abschnitt befinden, gehen wir zu den Druckern über. Wenn Sie das Common UNIX Printing System (CUPS) verwenden (das die meisten Distributionen standardmäßig verwenden), müssen Sie nur die folgenden Zeilen entsprechend einstellen, damit Samba Ihre Drucker erkennt:


printing = cups
printcap name = cups

Da Sie diese Drucker (und möglicherweise andere Ressourcen) möglicherweise so konfigurieren, dass sie ohne Benutzerauthentifizierung zugänglich sind, ist es sehr wichtig, dass Sie den Zugriff nur auf bekannte und vertrauenswürdige Hosts beschränken – die Computer in Ihrem Haushalt. Anweisungen zum Zuweisen bestimmter IP-Adressen zu jedem Computer in Ihrem Heimnetzwerk finden Sie im Handbuch Ihres Routers. Sobald Sie eine Liste vertrauenswürdiger Hosts haben, geben Sie diese in die folgenden Zeilen im Abschnitt ein:


hosts allow = computer1 computer2 computerN
hosts deny = ALL

Obwohl Sie angegeben haben, dass ALL Hosts verweigert werden, wird jedem Host, der in der Zeile hosts allow aufgeführt ist, weiterhin Zugriff gewährt. Das Format der IP-Adressen, die jedem Computer von Ihrem Router zugewiesen werden, variiert. Wenn beispielsweise Maschinen in Ihrem lokalen Netzwerk Adressen im Format 192.168.0.x erhalten, beschränken die folgenden Zeilen den Samba-Zugriff auf lokale Hosts:

hosts allow = 192.168.0.
hosts deny = ALL

Beachten Sie, dass die letzte Ziffer der IP-Adresse in der Zeile hosts allow weggelassen wurde. Dies gibt an, dass jede IP-Adresse in diesem Bereich zulässig ist. Um zusätzliche Sicherheit gegen externen Zugriff zu erhalten, sollten Sie Samba-Ports mit einer Firewall blockieren.

Verzeichnisse und Drucker freigeben

Es ist an der Zeit, über hinauszugehen und bestimmte freigegebene Ressourcen zu konfigurieren. Beginnen Sie mit dem Abschnitt . Standardmäßig ist dieser Abschnitt in Ihrer Distribution so konfiguriert, dass Benutzer auf ihr Home-Verzeichnis auf dem Computer zugreifen können, auf dem der Samba-Server ausgeführt wird.

Wenn Sie security = share eingestellt haben, funktioniert diese Funktion möglicherweise nicht wie erwartet und Benutzer werden möglicherweise mit Home-Verzeichnissen angezeigt, ohne sich anzumelden. Wenn Sie der einzige mit einem Home-Verzeichnis auf dem Rechner sind, auf dem der Samba-Server ausgeführt wird, was wahrscheinlich in einer Heimnetzwerkumgebung der Fall ist, ist es ratsam, den Abschnitt zu entfernen oder auszukommentieren (mit Hash-Zeichen oder Semikolons) und später alle nützlichen Verzeichnisse einzeln als freigegebene Ressourcen hinzuzufügen.

Jetzt können Sie bestimmte Verzeichnisse freigeben. Verwenden Sie dies als Vorlage für einen öffentlich freigegebenen Ordner, für den Benutzer nicht authentifiziert werden müssen:


path = /location/of/directory
guest ok = yes
browseable = yes
read only = no

Share Name ist der Titel, den Sie wählen (für den Client, der auf Ihren Server zugreift, scheint dies der Name des freigegebenen Verzeichnisses zu sein). Die Zeile guest ok = yes gibt diese Freigabe als öffentlich zugänglich an. Die Zeile browseable = yes lässt die Freigabe für alle Benutzer verfügbar erscheinen. Legen Sie browseable = no fest, um Benutzer zu zwingen, den Freigabenamen manuell einzugeben, um darauf zuzugreifen. Natürlich können Sie read only = yes festlegen, um Benutzer daran zu hindern, Änderungen am Verzeichnis aus der Ferne vorzunehmen.

Verwenden Sie dies als Vorlage für private Freigaben, für deren Zugriff Benutzer ein Kennwort eingeben müssen:


path = /location/of/directory
valid users = user
read only = yes
browseable = no

Hier ist user der Benutzername auf dem Computer, auf dem der Samba-Server ausgeführt wird, der Person mit Zugriffsrechten auf die Freigabe. Verwenden Sie diese beiden Vorlagen, um Freigaben für alle Dateien hinzuzufügen, auf die Benutzer möglicherweise vom Servercomputer aus zugreifen möchten.

Ihr Server sollte jetzt vollständig konfiguriert sein. Mit dem, was Sie zu den von Ihrer Distribution bereitgestellten Standardeinstellungen hinzugefügt haben, haben Sie smb fertiggestellt.conf sollte ungefähr so aussehen:

security = shareworkgroup = HOMEserver string = %h serverlog file = /var/log/samba/log.%mmax log size = 1000dns proxy = Nohosts allow = 192.168.0.hosts deny = ALLprinting = cupsprintcap name = cupspath = /var/spool/sambaprintable = Yesbrowseable = Nopath = /var/lib/samba/printerspath = /Public/Filesguest ok = yesread only = nobrowseable = yespath = /private/files/valid users = meread only = yesbrowseable = no

Bevor Sie den Server verlassen, haben Sie noch ein paar schnelle Aufgaben. Geben Sie zunächst alle Benutzer, die auf den Samba-Server zugreifen, in den folgenden Befehl ein:

smbpasswd -a user

Sie werden aufgefordert, für jeden Benutzer ein Samba-Passwort einzugeben. Sie können das Passwort jederzeit ändern, indem Sie sich als gewünschter Benutzer anmelden und smbpasswd . Starten Sie nun Ihren Samba-Server mit diesem Befehl neu:

/etc/init.d/samba restart

Zugriff auf Samba-Freigaben von Windows-Clients

Gehen Sie zu einem Windows-Computer, um Ihr neues Setup auszuprobieren. Ihr neuer Server sollte unter Windows ‚Mein Netzwerk‘ angezeigt werden (suchen Sie standardmäßig nach der Verknüpfung auf Ihrem Desktop). Alternativ können Sie das Startmenü öffnen und auf „Ausführen…“ klicken und dann Folgendes eingeben:

\server

Ersetzen von server durch den Namen oder die IP-Adresse des Computers, auf dem Ihr Samba-Server ausgeführt wird. Ein Windows Explorer-Fenster mit den durchsuchbaren Freigaben von Ihrem Server sollte sich öffnen. Wenn Sie eine nicht durchsuchbare Freigabe erstellt haben, greifen Sie über diesen Link darauf zu:

\servershare name

Es ist einfach, freigegebene Verzeichnisse zugänglicher zu machen. Klicken Sie in Windows XP mit der rechten Maustaste auf die Freigabe im Explorer und wählen Sie „Netzlaufwerk zuordnen …“ Sie können ihnen einen Laufwerksbuchstaben wie Z: zuweisen, damit sie auch nach einem Neustart problemlos in Arbeitsplatz gefunden werden können.

In meinen Tests unter Windows XP mit der Sicherheitsstufe share werden Drucker automatisch erkannt und können vom Windows-Computer aus verwendet werden. Mit user eingestellter Sicherheitsstufe war es notwendig, sich in einem Windows Explorer-Fenster beim Server anzumelden, bevor versucht wurde zu drucken. Ihre Erfahrung mit anderen Windows-Versionen kann variieren.

Zugriff auf SMB /CIFS-Freigaben von anderen Linux-Rechnern aus

Samba- und Windows-Freigaben können problemlos von den Standard-Dateimanagern von Gnome und KDE aus aufgerufen werden. Wir beginnen mit dem Zugriff auf Freigaben von Nautilus in Gnome. Öffnen Sie Nautilus und gehen Sie zu Datei -> Verbindung zum Server herstellen.

Wählen Sie „Windows share“ aus der Liste und geben Sie den Servernamen oder die IP-Adresse Ihres Samba-Servers ein. Sie können auch auf die Schaltfläche „Netzwerk durchsuchen“ klicken und im Verzeichnis „Windows Network“ nach dem Server manuell suchen. Klicken Sie auf „Verbinden“ und ein Nautilus-Fenster mit den durchsuchbaren Ressourcen Ihres Samba-Servers wird geöffnet.

Genauso einfach ist der Zugriff auf Samba-Freigaben mit Konqueror. Um nach Ihrem Server zu suchen, geben Sie die URL remote:/ in Konqueror ein. Geben Sie für den direkten Zugriff die URL des Servers direkt in diesem Format ein:

smb://user@server/share

Beachten Sie, dass Benutzer und Freigabe optionale Kriterien sind.

Die Konfiguration von Druckern über Samba ist in beiden Desktop-Umgebungen ähnlich einfach. Gehen Sie in Gnome zu System -> Administration -> Drucken. Wählen Sie in der Druckerkonfigurationsanwendung Drucker -> Drucker hinzufügen. Sie werden zur Eingabe Ihres Passworts aufgefordert. Wählen Sie im Assistenten zum Hinzufügen von Druckern „Netzwerkdrucker“ und dann „Windows-Drucker SMB“ aus dem Listenfeld. Sie werden aufgefordert, einen Benutzernamen und ein Kennwort für Ihren Samba-Server einzugeben. Identifizieren Sie Ihren Host und Drucker auf dem Samba-Server und fahren Sie mit dem nächsten Bildschirm fort. Wählen Sie Ihr Druckermodell aus und klicken Sie dann auf Anwenden.

Um dasselbe in KDE zu tun, öffnen Sie das Konfigurationscenter, indem Sie den Befehl kcontrol starten. Navigieren Sie zum Druckermodul und gehen Sie zu Add -> Add Printer/Class… Klicken Sie im resultierenden Dialogfeld auf Next und wählen Sie dann „SMB shared printer (Windows).“ Klicken Sie erneut auf Weiter und konfigurieren Sie den Benutzernamen und das Kennwort eines „Normalen Kontos“, wenn Sie die Sicherheitsstufe user verwenden. Klicken Sie ein anderes Mal auf Weiter und dann auf Scannen, um nach Ihrem Samba-Server zu suchen.

Alternativ können Sie die Serverdetails manuell eingeben. Wählen Sie im nächsten Bildschirm Ihr Druckermodell aus der Liste aus. Klicken Sie sich durch die nächsten Bildschirme und geben Sie Ihrem Netzwerkdrucker zum Abschluss einen Titel.

Fehlerbehebung

Wenn Sie Probleme haben, eine dieser Funktionen zum Laufen zu bringen, wenden Sie sich an die Samba-Checkliste zur Fehlerbehebung. Ein kurzer Trick aus diesem Dokument, um Ihre Samba-Konfigurationsdatei auf offensichtliche Fehler zu testen, besteht darin, den folgenden Befehl auszuführen:

testparm smb.conf

Wieder der genaue Pfad Ihres smb.conf kann je nach Verteilung variieren.

Wir haben hier nur grundlegende Samba-Funktionen untersucht, die auf ein Heimnetzwerk zugeschnitten sind. Extremere Nutzungsszenarien werden im Samba by example Guide ausführlich behandelt.