1903700

Tutorial: Netzwerken mit Samba - so geht's

02.06.2016 | 08:25 Uhr |

Wer im lokalen Netzwerk mit einem Linux-PC Daten tauschen will, braucht die Komponente Samba. Das gilt für den Zugriff auf Freigaben ebenso wie für eigene Freigaben. Hier folgt ein Samba-Crash-Kurs.

Der Name Samba stammt von Server Message Block-Protokoll (SMB). SMB ist ein ursprünglich von IBM entwickeltes Netzwerkprotokoll, das von Microsoft unter dem Namen CIFS (Common Internet File System) weiterentwickelt wurde. Es kommt zum Einsatz, wenn Sie im Netzwerk Speicherplatz oder Dateien für andere Nutzer bereitstellen oder auf diese zugreifen möchten. SMB/CIFS ist das Standardprotokoll für Netzwerkfreigaben unter Windows, es lässt sich aber auch unter Mac-OS X, Linux, Android und anderen Systemen verwenden.

PC-WELT XXL - Linux statt Windows!

PC-WELT XXL - Linux statt Windows - so nutzen Sie Ubuntu & Mint, Linux ohne Risiko neben XP, 7 & 8.1, alle Daten von Windows umziehen. Außerdem: Sieben komplette Windows-Alternativen auf DVD.

Samba besteht aus einem Client und einem Server. Der Client ist bei den meisten Linux-Distributionen standardmäßig installiert und erlaubt den Zugriff auf die Freigaben anderer Rechner. Den Server-Teil müssen Sie in der Regel nachinstallieren. Dann lassen sich unter Linux Freigaben einrichten, auf die andere Nutzer über das Netzwerk zugreifen können. Der Artikel erklärt, welche Software Sie benötigen und wie Sie diese konfigurieren.

Samba-Server installieren

Wenn Sie Ordner auf Ihrem Linux-PC dem Netzwerk zur Verfügung stellen möchten, müssen Sie das Software-Paket für den Samba-Server installieren. Unter Ubuntu wird die Installation automatisch angefordert, wenn Sie als Hauptbenutzer – das ist der bei der Installation zuerst angelegte Benutzer – die erste Freigabe einrichten. Dazu öffnen Sie den Dateimanager über das zweite Symbol von oben in der Unity-Seitenleiste. Klicken Sie den Ordner, den Sie freigeben möchten, mit der rechten Maustaste an, und wählen Sie im Kontextmenü „Freigabeoptionen“. Es öffnet sich ein Fenster, in dem Sie ein Häkchen vor „Diesen Ordner freigeben“ setzen. Es erscheint die Meldung „Dateifreigabe ist nicht eingerichtet“. Klicken Sie auf „Freigabedienst einrichten“, und folgen Sie den Anweisungen auf dem Bildschirm. Wenn Sie aufgefordert werden, das Paket „libpam-smbpass“ zu installieren, bestätigen Sie das mit Klick auf „Installieren“. Danach müssen Sie die Sitzung neu starten.

Windows-Freigaben auch mit Linux nutzen

Samba manuell installieren: Sie können den Samba-Server unter allen Linux-Systemen auch über die jeweilige Paketverwaltung einrichten. Suchen Sie hier nach „Samba“. Meist werden Ihnen mehrere Software-Pakete angeboten, die etwas mit Samba zu tun haben. Lesen Sie sich die Beschreibungen durch, um herauszufinden, was für den Samba-Server nötig ist. In der Regel genügt es, beispielsweise unter Fedora oder Open Suse, das Paket „samba“ für die Installation auszuwählen. Weitere benötigte Pakete werden dann automatisch für die Installation markiert.

Benutzerkonten und Samba-Freigaben

Samba verwaltet eine eigene Datenbank mit Benutzernamen und Kennwörtern. Da diese unabhängig von der Linux-Benutzerverwaltung arbeitet, müssen Sie für jeden Benutzer, der beispielsweise von einem Windows-PC aus auf die Freigabe zugreifen möchte, ein eigenes Passwort festlegen. Das geschieht auf der Kommandozeile mit

sudo smbpasswd -a smbuser

„smbuser“ steht für den Benutzernamen eines vorhandenen Linux-Kontos. Sie werden dann aufgefordert, das Passwort zweimal einzugeben. Es kann identisch mit dem Linux-Benutzerpasswort sein oder von diesem abweichen.

Einige Linux-Distributionen sehen jedoch vor, die System- und Samba-Benutzerkonten automatisch zu synchronisieren. Unter Ubuntu, Debian und Linux-Mint beispielsweise sorgt das Programmpaket „libpam-smbpass“ für eine vereinfachte Konfiguration. Der manuelle Aufruf von smbpasswd ist dann nicht nötig. Linux- und Samba-Passwörter werden synchronisiert, sobald sich der Benutzer nach Samba- Installation das erste Mal anmeldet.

Medien-Streaming mit Linux

Freigaben einrichten und konfigurieren

Viele Linux-Systeme bieten über den Dateimanager einen schnellen Zugriff auf die Freigabefunktion, ähnlich wie unter Punkt 2 beschrieben. Bei Ubuntu gibt es noch eine Besonderheit: Damit ein Benutzer eine Freigabe auf diese Weise einrichten kann, muss er zur Gruppe „sambashare“ gehören. Der Benutzer, den Sie bei der Installation des Systems angelegt haben, gehört bereits dazu. Weitere Benutzer nehmen Sie auf der Kommandozeile mit

sudo usermod -aG sambashare User

in die Gruppe auf, wobei Sie für User den Anmeldenamen des jeweiligen Benutzers eintragen. Die Gruppenzugehörigkeit gilt, sobald der Benutzer sich erneut anmeldet, oder nach einem Linux-Neustart.

Zugriffsrechte festlegen: Rufen Sie in Ubuntu über das Kontextmenü eines Ordners, den Sie freigeben möchten oder zuvor freigegeben haben, die „Freigabeoptionen“ auf. Sie können bei Bedarf den Freigabenamen ändern und einen Kommentar eintragen. Standardmäßig haben nur Sie selbst über das Netzwerk Lese- und Schreibzugriff auf den Ordner. Wenn Sie das ändern wollen, setzen Sie ein Häkchen vor „Anderen erlauben, Dateien in diesem Ordner zu erstellen und zu löschen“ oder „Gastzugriff (für Nutzer ohne Benutzerkonto)“und klicken auf „Freigabe erstellen“. Danach bestätigen Sie über die Schaltfläche „Die Zugriffsrechte automatisch setzen“ die Rechteänderung auf Dateisystemebene. „Anderen erlauben…“ meint hier alle Benutzer, die ein Konto auf dem System besitzen. Lediglich der Gastzugriff ermöglicht einen Zugang ohne Authentifizierung für jedermann.

Bitte beachten Sie: Eine differenzierte Rechtevergabe ist über den Ubuntu-Dateimanager nicht möglich. Außerdem werden die Rechte nicht zurückgesetzt, wenn Sie eine Freigabeoption ändern. Wird etwa zuerst der Gastzugriff aktiviert, gibt es nur Lesezugriff auf den Ordner. Wenn Sie danach den Lese- und Schreibzugriff für „Andere“ erlauben, gilt dieser auch für Gäste. Um das zu ändern, gehen Sie im Kontextmenü des freigegebenen Ordners auf „Eigenschaften“ und dann auf die Registerkarte „Zugriffsrechte“. Stellen Sie unter „Andere“ hinter „Zugriff“ beispielsweise die Option „Auf Dateien zugreifen“ ein. Dann erhalten Gäste und Benutzer mit Konto nur Leserechte. Denken Sie außerdem daran, den Gastzugriff zu deaktivieren, wenn Sie in fremden Netzwerken unterwegs sind.

Benutzerfreigaben über die Kommandozeile: Sollte der Dateimanager Ihres Systems keine Freigabeoption bieten, verwenden Sie Befehl net usershare auf der Kommandozeile. Rufen Sie ein Terminalfenster unter Ubuntu mit Strg-Alt-T auf. Mit der Zeile (Beispiel)

net usershare add Musik /home/te/ Musik "MP3"

erstellen Sie eine Freigabe des Ordners „home/te/Musik“ mit dem Freigabenamen „Musik“ und dem Kommentar „MP3“. Der Befehl

net usershare delete Musik

beendet die Freigabe wieder.

Der Befehl net usershare list zeigt an, welche Freigaben Sie eingerichtet haben. net usershare info liefert detailliertere Informationen. Ein Beispiel für die oben erstellte Freigabe sehen Sie in der nebenstehenden Abbildung. Daraus ersehen Sie, dass jeder Benutzer des Systems nur lesend auf die Freigabe „Musik“ zugreifen darf („usershare_acl=Everyone:R,“) und dass es keinen Gastzugriff gibt („guest_ok=n“). Auch Sie selbst, als Besitzer des Ordners, dürfen dort keine Dateien erstellen oder ändern. Um das zu ändern, setzen Sie die Rechte mit folgendem Befehl:

net usershare add Musik /home/te/ Musik "MP3" "Everyone:R,te:F"

Damit erhält jeder Benutzer Lesezugriff und der Benutzer „te“ Vollzugriff. Neben „R“ (nur lesen) und „F“ (lesen und schreiben) gibt es bei den Zugriffsrechten noch „D“ für „deny“ („verweigern“). Wenn Sie „Everyone:D,te:F“ anhängen, hat nur der Benutzer „te“ Lese- und Schreibrechte, allen anderen wird der Zugriff verweigert. Einen expliziten Befehl zum Ändern einer Freigabe gibt es nicht. Sie überschreiben mit einem net usershare add einfach alle bisherigen Regeln.

Bitte beachten Sie: Rechte, die Sie über „net“ festlegen, betreffen nur den Zugriff über das Netzwerk. Auf einer zweiten Ebene gelten auch die Zugriffsrechte im Dateisystem. Damit alle Benutzer Schreibzugriff haben, genügt es nicht, diesen mit „Everyone:F“ zu gewähren. Sie müssen zusätzlich etwa mit der Zeile

chmod 755 /home/te/Musik

den Zugriff auf die Freigabe für andere Benutzer im Dateisystem erlauben. Das Gleiche gilt auch für weitere Ordner und Dateien, die im freigegebenen Verzeichnis liegen. Wie sich die Rechte für alle Elemente in einem Order auf einmal ändern lassen, lesen Sie im Kasten „Rechte rekursiv setzen“.

So geht's: Linux über das Netzwerk booten

Allgemeine Freigaben und Einstellungen

Bisher ging es darum, wie Benutzer eigene Freigaben einrichten und konfigurieren. Das funktioniert jedoch nur mit den Ordnern, für die der jeweilige Benutzer volle Zugriffsrechte besitzt. In der Regel ist das nur im eigenen Home-Verzeichnis der Fall. Bei einem Datei-Server, etwa einem Media-Server zu Hause oder einem Netzwerkspeicher im Unternehmen, wollen Sie wahrscheinlich aber auch Ordner freigeben, die sich vielleicht auf einer zweiten großen Festplatte befinden. Um solche administrative oder allgemeine Freigaben zu erstellen, gibt es zwei Wege.

Möglichkeit 1: Installieren Sie unter Ubuntu zusätzlich das Paket „systemconfig-samba“. Damit erhalten Sie ein grafisches Tool namens „Samba-Server Konfiguration“, über das Sie Freigaben einrichten und Samba konfigurieren. Nach der Installation starten Sie das Tool, indem Sie über das Dash nach „samba“ suchen. Um eine neue Freigabe hinzuzufügen, gehen Sie auf „Datei -> Share hinzufügen“. Geben Sie hinter „Verzeichnis“ den Ordner an, den Sie freigeben möchten, und hinter „Freigabename“ die Bezeichnung für die Freigabe. Über die Klickboxen bestimmen Sie, ob die Freigabe beschreibbar und/oder sichtbar sein soll. Auf der Registerkarte „Zugang“ legen Sie fest, ob die Freigabe nur für bestimmte Nutzer oder für alle erlaubt sein soll.

Über „Einstellungen -> Server-Einstellungen“ lassen sich einige Parameter der Server-Konfiguration festlegen. Hier tragen Sie beispielsweise den Namen der Arbeitsgruppe ein, zu der der Server gehören soll. Vorgegeben ist „Workgroup“. Das ist jedoch keine notwendige Angabe, denn Windows 7 oder 8 zeigen ohnehin alle Server im Netzwerk unabhängig von der Arbeitsgruppenzugehörigkeit an. Die Dateimanager unter Linux zeigen die Arbeitsgruppen als Ordner an, und Sie können die gewünschte per Mausklick auswählen. Es sorgt daher für mehr Übersicht, wenn sich alle Rechner im Netzwerk in der gleichen Arbeitsgruppe befinden.

Möglichkeit 2: Samba verwendet als globale Konfigurationsdatei „/etc/samba/smb.conf“. Darin sind die allgemeinen Einstellungen für den Samba-Server und administrative Freigaben festgelegt. Änderungen, die Sie über das unter Möglichkeit 1 beschriebene Tool vornehmen, landen ebenfalls in der „smb.conf“. Sie können die Datei mit

sudo gedit /etc/samba/smb.conf

öffnen. Sie enthält viele auskommentierte – also nicht aktive – Beispiele und Beschreibungen für häufig genutzte Einstellungen. Bevor Sie etwas ändern, sollten Sie über den Befehl man smb.conf die Dokumentation einsehen. Eine neue Freigabe lässt sich beispielsweise über die vier Zeilen

[data1] path = /mnt/data1 writeable = yes guest ok = yes

erstellen. Hängen Sie diese am Ende der Datei an. In diesem Beispiel wird das Verzeichnis „/mnt/data1“ unter der Bezeichnung „data1“ freigegeben. Schreib- und Gastzugriff sind erlaubt. Die Änderungen werden erst wirksam, wenn Sie die Konfigurationsdatei über service samba reload neu einlesen.

Probleme mit Symlinks: Unter Linux lassen sich über Symlinks (symbolische Links) Verknüpfungen zu Ordnern oder Dateien herstellen, die sich wie normale Ordner und Daten verhalten. Dazu ein Beispiel: Sie möchten eine unter „/data2“ eingehängte Festplatte auch über eine Freigabe ansprechen, die Sie für den Ordner „/data1“ erstellt haben. Mit ln -s /data2 /data1 erstellen Sie dafür einen symbolischen Link. Dieser funktioniert dann zwar lokal auf dem PC, nicht jedoch über das Netzwerk. Um das zu ändern, tragen Sie in die Datei „smb.conf“ im Abschnitt „[global]“ und bei der jeweiligen Freigabe die Zeile unix extensions = no ein. Bei der Freigabe fügen Sie zusätzlich die Zeilen follow symlinks = yes und wide links =yes an.

Zugriff auf Netzwerkfreigaben

Die Verbindung zu Netzwerkfreigaben stellen Sie unter den verschiedenen Systemen am einfachsten über den jeweiligen Dateimanager her. Unter Ubuntu gehen Sie unter „Netzwerk“ auf „Netzwerk durchsuchen“. Klicken Sie dann den gewünschten Server oder die Arbeitsgruppe und die Freigabe an. Wenn Sie dazu aufgefordert werden, tippen Sie den Benutzernamen und das Kennwort ein. Verwenden Sie am besten auf allen PCs die gleiche Kombination aus Benutzernamen und Kennwort, dann erfolgt die Authentifizierung automatisch. Unter Windows funktioniert das entsprechend. Hier finden Sie Ihren Linux-Rechner im Explorer unter „Netzwerk“.

Manchmal taucht ein PC mit neu eingerichteten Freigaben nicht sofort im Dateimanager auf. Unter Windows geben Sie dann eine Adresse nach dem Muster \\Rechnername\Freigabename in die Adressleiste des Explorers ein. Unter Linux verwenden Sie „smb://Rechnername/Freigabename“. Statt „Rechnername“ können Sie auch die IP-Nummer verwenden. Die Adressleiste blenden Sie mit Strg-L ein.

Rechte rekursiv setzen

Im Linux-Dateisystem setzen Sie die Zugriffsrechte auf der Kommandozeile mit dem Befehl chmod. Dieser unterscheidet jedoch nicht zwischen Dateien und Ordnern. Mit chmod -R 777 ~/Dokumente setzen Sie die Rechte Lesen, Schreiben sowie Ausführen/Suchen für den Ordner „Dokumente“ in Ihrem Home-Verzeichnis inklusive aller enthaltenen Dateien und Ordner.

Die Angabe „777“ bewirkt, dass die Rechte für den Benutzer, die Gruppe und alle anderen Benutzer des Systems gelten. Problematisch dabei ist, dass „777“ den Zugriff auf den Inhalt von Ordnern erlaubt („Suchen“), bei Dateien jedoch das Ausführen-Attribut setzt. Damit die Rechte korrekt vergeben werden, verwenden Sie die folgenden zwei Befehle:

find ~/Dokumente/ -type d -exec chmod 777 {} + find ~/Dokumente -type f -exec chmod 666 {} +

„-type d“ bewirkt, dass sich die Rechtevergabe mit chmod nur auf Ordner auswirkt und bei „-type -f“ nur auf Dateien. Wenn Sie zwar den Zugriff auf alle Ordner nebst Inhalt erlauben, die Dateien jedoch vor Änderungen schützen möchten, verwenden Sie in der zweiten Zeile chmod 644 .

0 Kommentare zu diesem Artikel
1903700