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.

Die Bereitstellung und Verteilung von Dateien über das Netzwerk gehört zu den ureigenen Aufgaben eines Linux-Systems. Die Einsatzmöglichkeiten sind vielfältig: Sie können den Netzwerkspeicher beispielsweise als Ziel für Backups nutzen, für den gemeinsamen Zugriff auf Dokumente oder als Depot für Audio-und Videodateien. In diesem Beitrag geht es um die Grundlagen von Hardware, Freigaben und Benutzerrechten.

1. Diese Hardware benötigen Sie

Als Linux-Server kann jeder PC und jedes Notebook arbeiten. Wenn der Server dauerhaft laufen soll, sollten Sie aber die Energiekosten im Auge behalten. Ältere PCs haben oft eine Leistungsaufnahme um die 100 Watt, neuere Geräte begnügen sich dagegen mit etwa 15 Watt im Leerlauf. Verwenden Sie in einem Server nur den Grafikchipsatz der Hauptplatine oder eine einfache, passiv gekühlte Grafikkarte. Bei Festplatten greifen Sie zu etwas teureren Modellen, die für die Verwendung in einem NAS (Network Attached Storage) spezifiziert sind. Diese eignen sich für den Dauereinsatz, entwickeln wenig Abwärme und haben eine geringe Leistungsaufnahme.

Eine Alternative zu PCs sind Platinen wie der Raspberry Pi , deren Leistungsaufnahme meist unter fünf Watt liegt. An den Raspberry Pi lassen sich Festplatten jedoch nur über USB anschließen. Wenn Sie für mehrere Festplatten einen USB-Hub oder Netzteile benötigen, ist die Energiebilanz nicht mehr ganz so günstig. Für den Einsatz als Server sind die Ein-Platinen-PCs Banana Pi oder Cubietruck 3 besser geeignet. Beide Geräte besitzen neben den USB-Ports auch einen SATA-Anschluss.

Freigaben: Windows & Linux im Netzwerk verbinden

2. Der Datenaustausch mit Linux, Windows & Co

Ein Netzwerkprotokoll für praktisch alle Betriebssysteme heißt CIFS (Common Internet File System). Ursprünglich wurde es unter dem Namen SMB (Server Message Block) von Microsoft und IBM entwickelt. In Anlehnung daran erhielt das Open-Source-Projekt unter Linux den Namen Samba . SMB/CIFS ermöglicht den Dateitransfer zwischen Windows und Unix-basierenden Systemen und den Zugriff auf Netzwerkdrucker. Bei Windows ist CIFS/SMB das Standardprotokoll für Netzwerkfreigaben, und Mac-OS X beherrscht das Protokoll von Haus aus. Für Android gibt es Apps wie den kostenlosen ES Datei Explorer .

3. Die Auswahl eines geeigneten Linux-Systems

Für einen Server benötigen Sie eigentlich kein spezielles System. „Server“ ist eine Rolle, die nur durch die Softwareauswahl und bestimmte Einstellungen definiert wird. Aber es gibt vorab angepasste Ausgaben einiger Distributionen wie Ubuntu-Server , die schon bei der Installation anbieten, ob der SSH-Server für den Fernzugriff und der Samba-Server für den Datenaustausch installiert werden soll. Es ist außerdem möglich, das System für automatische Updates zu konfigurieren. Um diese Vorkonfiguration zu ermöglichen, startet Ubuntu-Server von der Installations-DVD ein anderes Setuptool als die Desktopversion. Es handelt sich dabei um den Debian-Installer, der im Textmodus läuft, aber dank Menüführung einfach zu bedienen ist.

Auto-Update: Damit die Software stets auf dem aktuellen Stand ist, aktivieren Sie bei der Serverinstallation ?Sicherheitsaktualisierungen automatisch aktualisieren?.
Vergrößern Auto-Update: Damit die Software stets auf dem aktuellen Stand ist, aktivieren Sie bei der Serverinstallation ?Sicherheitsaktualisierungen automatisch aktualisieren?.

Eine Desktopumgebung wird bei Ubuntu-Server standardmäßig nicht eingerichtet, da Server meist ohne Bildschirm laufen und der Zugriff über das Netzwerk und SSH erfolgt. Bei Bedarf lässt sich die Ubuntu-Oberfläche aber über folgenden Terminalbefehl installieren:

sudo apt-get install ubuntu-desktop

In diesem Artikel beziehen wir uns auf den Ubuntu-Server. Die Einrichtung läuft jedoch bei jeder Linux-Distribution ähnlich bis identisch ab, insbesondere bei Ubuntu-Desktop oder Linux Mint . Die Paketbezeichnungen und die Vorkonfiguration können sich jedoch unterscheiden.

4. Die Samba-Freigaben einrichten

Samba verwendet als globale Konfigurationsdatei „/etc/samba/smb.conf“. Darin sind die allgemeinen Einstellungen für den Samba-Server und die Freigaben festgelegt. Öffnen Sie die Datei mit root-Rechten in einen Editor:

sudo nano /etc/samba/smb.conf

Standardmäßig sind bereits die wichtigsten Optionen in der Datei enthalten und Kommentare beschreiben deren Bedeutung. Nicht aktiven Optionen ist das Semikolon „;“ als Kommentarzeichen vorangestellt. Kommentare haben ein vorangestelltes „#“.

Arbeitsgruppe: Mit „workgroup= WORKGROUP“ unter „[global]“ legen Sie die Arbeitsgruppe fest. Windows verwendet die Gruppe ebenfalls standardmäßig, so dass Sie die Einstellung belassen können. Wenn Sie in Ihrem Netzwerk eine anders benannte Gruppe verwenden, ändern Sie den Wert entsprechend. Für den Zugriff auf die Freigaben ist zwar keine Zugehörigkeit zu einer bestimmten Arbeitsgruppe nötig, jedoch zeigen Linux-Dateimanager nicht alle Rechner mit Freigaben in einer Liste an, sondern organisieren fremde Arbeitsgruppen in Ordnern unterhalb von „Windows-Netzwerk“. Sie sparen sich unnötige Mausklicks, wenn Sie alle Rechner in derselben Gruppe unterbringen.

Ubuntu-Server installieren: Wählen Sie bei der Ersteinrichtung die gewünschten Softwarepakete aus, wichtig etwa ?OpenSSH server? und ?Samba file server?.
Vergrößern Ubuntu-Server installieren: Wählen Sie bei der Ersteinrichtung die gewünschten Softwarepakete aus, wichtig etwa ?OpenSSH server? und ?Samba file server?.

Benutzerkonten und Passwörter: Es ist möglich, Samba ausschließlich mit einem Gastkonto zu verwenden, also ohne Anmeldung. Selbst im Heimnetz sollten Sie jedoch zumindest den Schreibzugriff auf authentifizierte Benutzer beschränken. Dafür muss jeder Benutzer auf dem Server ein Linux-Benutzerkonto besitzen. Um ein neues Konto einzurichten, führen Sie auf dem Server folgende Befehlszeile aus:

sudo adduser User

„user“ ersetzen Sie durch den gewünschten Benutzernamen. Vergeben Sie ein Systempasswort, füllen Sie die Felder für die Benutzerinformation aus und bestätigen die Eingaben zuletzt mit der Enter-Taste.

Samba verwendet eine eigene Passwortdatenbank. Damit Benutzer auf die Freigaben zugreifen können, muss für jeden Benutzer auch ein Samba-Passwort festgelegt sein. Bei Ubuntu-Server ist standardmäßig das Paket „libpam-smpassd“ installiert. Es sorgt dafür, dass die System-und Samba-Passwörter automatisch synchronisiert werden, etwa wenn Sie einen Benutzer neu erstellen oder sein Passwort über den Befehl „passwd“ ändern. Wenn Sie manuell ein Samba-Passwort für einen Benutzer festlegen wollen, verwenden Sie folgende Befehlszeile:

sudo smbpasswd -a User

Für „user“ setzen Sie den zuvor verwendeten Benutzernamen ein. Diese Zeile verwenden Sie auch, wenn „libpam-smpassd“ nicht installiert oder bei einer anderen Linux-Distribution nicht vorhanden ist.

Samba konfigurieren: Alle nötigen Einstellungen für den Samba-Server und die Netzwerkfreigaben nehmen Sie in der Datei „/etc/samba/smb.conf“ vor.
Vergrößern Samba konfigurieren: Alle nötigen Einstellungen für den Samba-Server und die Netzwerkfreigaben nehmen Sie in der Datei „/etc/samba/smb.conf“ vor.

Benutzer können sich mit ihrem Systempasswort auch über SSH beim Server anmelden. Wenn Sie das nicht wünschen, unterbinden Sie die Anmeldung über folgende Befehlszeile:

sudo usermod -s /usr/sbin/nologin User

Verzeichnisse freigeben: Wenn die angelegten Benutzer über das Netz Zugriff auf ihr Home-Verzeichnis auf dem Server erhalten sollen, entfernen Sie alle Kommentarzeichen („;“) im Abschnitt „[homes]“. Ändern Sie „read only = yes“ auf „read only = no“, um den Schreibzugriff zu erlauben. Welche Besonderheiten beim Zugriff auf diese Freigaben zu beachten sind, lesen Sie in -> Punkt 7.

Eine neue Freigabe für ein beliebiges Verzeichnis lässt sich beispielsweise über diese vier Zeilen erstellen:

[Filme]
path = /shares/videos
writeable = no
guest ok = yes

Fügen Sie den Block am Ende der Konfigurationsdatei ein. In diesem Beispiel wird das Verzeichnis „/shares/videos“ unter der Bezeichnung „Filme“ freigegeben. Das Verzeichnis erstellen Sie mit

sudo mkdir -p /shares/videos

Mit den genannten Samba-Optionen gewähren Sie nur Lesezugriff („writeable = no“), eine Anmeldung ist nicht erforderlich („guest ok = yes“). Wie Sie eine Freigabe mit Schreibzugriff erstellen, lesen Sie in -> Punkt 5.

Speichen und anwenden: Nach den gewünschten Änderungen in der Datei „/etc/samba/smb.conf“ speichern Sie mit Strg-O und Enter-Taste und beenden nano mit Strg-X. Damit die neuen Optionen wirksam werden, muss der Samba-Dienst mit

sudo service smbd reload

neu gestartet werden.

NAS-Kaufberatung: Das sind die besten Netzwerkspeicher

5. Rechte in gemeinsam genutzten Ordnern

Damit Administratoren über das Netzwerk Dateien auf der Freigabe ablegen können, ergänzen Sie bei der in -> Punkt 4 erstellten Freigabe „[Filme]“ folgende sechs Zeilen in der „smb.conf“:

write list = @adm
inherit owner = yes
force group = adm
force directory mode = 770
create mask = 664
force create mode = 664

Der Gruppe „adm“ (dazu gehört auch der bei der Installation erstellte erste Benutzer) wird damit Schreibzugriff gewährt. Für alle anderen Benutzer und Gruppen bleibt es durch „writeable = no“ bei der eingeschränkten Berechtigung „Nur lesen“. Die weiteren Optionen sorgen dafür, dass neu erstellte Dateien dem Benutzer „root“ sowie der Gruppe „adm“ gehören und beide Vollzugriff erhalten. Ohne diese Angaben würde Samba Besitzer und Gruppe für den jeweiligen Benutzer ändern, sobald dieser eine Datei ändert. Dann hätten die anderen Mitglieder der Gruppe „adm“ darauf nur noch Lesezugriff.

Server im Netzwerk: Wenn sich alle Rechner in derselben Arbeitsgruppe befinden, zeigen Linux-Dateimanager alle PCs mit Ordnerfreigaben unter ?Netzwerk? an.
Vergrößern Server im Netzwerk: Wenn sich alle Rechner in derselben Arbeitsgruppe befinden, zeigen Linux-Dateimanager alle PCs mit Ordnerfreigaben unter ?Netzwerk? an.

Die Samba-Konfiguration alleine reicht jedoch noch nicht für den vollen Zugriff aus. Der Ordner „/shares/videos“ gehört Benutzer und Gruppe „root“, alle anderen Benutzer haben nur Leserechte. Um das zu ändern, verwenden Sie folgende drei Befehlszeilen:

chown -R root:adm /shares
find /shares -type d -exec chmod 775 {} +
find /shares -type f -exec chmod 664 {} +

Alle Befehle arbeiten rekursiv, berücksichtigen also auch unter „/shares“ bereits vorhandene Ordner und Dateien. Die Gruppe „adm“ und der Besitzer „root“ erhalten Vollzugriff, andere Benutzer dürfen nur lesen.

Ausführbare Dateien auf Freigaben: Mit der bisher vorgeschlagenen Konfiguration fehlt allen freigegebenen Dateien das Recht „Ausführen“. Das kann erwünscht sein, wenn Windows-Benutzer keine Programme direkt aus einem freigegebenen Verzeichnis starten sollen. Soll dies hingegen erlaubt sein, ändern Sie mit

create mask = 775
force create mode = 775

die Konfiguration in der „smb.conf“.

6. Benutzerfreigaben bei Desktopsystemen

Die Punkte 4 und 5 gelten auch für Desktopversionen von Ubuntu, Xubuntu, Lubuntu oder Linux Mint. Der Samba-Server wird allerdings nur bei Linux Mint standardmäßig installiert. Um das nachzuholen, verwenden Sie die folgenden Befehle:

sudo apt-get update
sudo apt-get install samba libpam-smbpass

Die Benutzer dürfen selbst eigene Dateien für andere Personen über das Netzwerk bereitstellen, wenn sie zur Gruppe „sambashare“ gehören. Mit folgender Befehlszeile fügen Sie einen Benutzer zu dieser Gruppe hinzu:

sudo usermod -aG sambashare User

Um einen Ordner freizugeben, klicken Sie ihn im Dateimanager mit der rechten Maustaste an und wählen „Freigabeoptionen“. Setzen Sie ein Häkchen vor „Diesen Ordner freigeben“. 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“ und/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. „Anderen erlauben“ bezieht sich nur auf Benutzer, die ein Konto auf dem System besitzen. Der Gastzugriff ermöglicht einen Zugang ohne Authentifizierung.

Zugriff auf Freigaben: Das freigegebene Home-Verzeichnis auf dem Server ist in Nautilus nicht sichtbar. Sie müssen es über die Adresszeile (Strg-L) ansteuern.
Vergrößern Zugriff auf Freigaben: Das freigegebene Home-Verzeichnis auf dem Server ist in Nautilus nicht sichtbar. Sie müssen es über die Adresszeile (Strg-L) ansteuern.

Auch bei den Benutzerfreigaben ändern sich bei Schreibzugriffen anderer Benutzer die Datei-und Ordnerrechte (-> Punkt 5). Damit Sie selbst immer den Schreibzugriff behalten, ergänzen Sie in der Datei „/etc/samba/smb.conf“ im Abschnitt „[global]“ folgende Zeile

usershare template share = usershares

und dann folgenden Abschnitt

[usershares]
path=%P
inherit owner = yes
force group = sambashare
force directory mode = 770
create mask = 664
force create mode = 664

am Ende der Datei.

7. Zugriff auf Samba-Freigaben

Windows-Nutzer sehen im Explorer unter „Netzwerk“ beim Zugriff auf den Server gleich den Order mit dem Home-Verzeichnis, wenn Sie diesen global freigegeben haben (-> Punkt 4). Die Anmeldung am Server erfolgt bei identischem Benutzernamen und Passwort automatisch. Andernfalls erscheint ein Abfragedialog und Sie müssen die auf dem Ubuntu-Server festgelegten Anmeldedaten eintippen.

Sollte der Ubuntu-Server unter Windows 10 nicht unter „Netzwerk“ auftauchen, öffnen Sie eine Eingabeaufforderung als Administrator, führen dort folgende Kommandos aus

sc config lanmanworkstation de pend= bowser/mrxsmb10/nsi
sc config mrxsmb20 start= disabled

und starten Windows 10 neu. In Linux-Dateimanagern wie etwa Nautilus unter Ubuntu erfolgt die Anmeldung nicht automatisch. Blenden Sie mit Strg-L die Adresszeile ein, und tippen Sie die Adresse in dieser Form ein:

smb://Server/User

Geben Sie dann Benutzernamen und Samba-Passwort ein und wählen die Option „Nie vergessen“. Damit Sie die Freigabe immer parat haben, erstellen Sie unter „Netzwerk“ über „Lesezeichen hinzufügen“ ein Lesezeichen.

Quota: Kontingente für Benutzer festlegen

Quota begrenzen den Speicherplatz für einzelne Benutzer. Wir gehen davon aus, dass Sie Ubuntu-Server standardmäßig auf einer Festplatte mit dem Dateisystem Ext4 installiert haben. Öffnen Sie ein Terminal, und verschaffen Sie sich mit

sudo -i

root-Rechte. Laden Sie dann die Datei „fstab“ mitnano /etc/fstab. Ergänzen Sie die Parameter der mount-Zeile für die „/“-Partition hinter „errors=remount-ro“ wie folgt:

 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv

Anschließend geben Sie im Terminal folgende Befehle ein:

mount -o remount /
apt-get update
apt-get install quota quotatool
quotacheck -vagum

Danach legen Sie ein Kontingent fest, hier mit zehn GB und 1?000?000 Dateieinträgen für den Benutzer „thorsten“:

setquota -u -F vfsv0 thorsten 10485760 10485760 1000000 1000000 /

Schalter „-u“ definiert einen einzelnen User, der nachfolgend genannt ist. Schalter „-F“ bestimmt das Quotaformat, wobei „vfsv0“ das für Ext4 geeignete ist. Das Speicherlimit wird in KB angegeben (10.485.760 = 10 GB), die maximalen Inodes als normale Zahl.

Diese Zahlenangaben erscheinen zweimal, weil es theoretisch ein Softlimit (die ers te Zahl) gibt, das der User zwar bis zum Hardlimit (die zweite Zahl) überschreiten darf, dessen Erreichen aber eine Meldung an den Admininistrator auslöst. Sind die Zahlen wie hier identisch, gilt nur das Hardlimit. Am Ende steht das Verzeichnis, wo das Limit gelten soll.

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

1903700