Was ist ein Samba-Server?

Als Samba-Server werden solche Server be­zeich­net, die auf die freie Software-Suite Samba zu­rück­grei­fen. Das GNU-li­zen­zier­te Paket dient der Im­ple­men­tie­rung des SMB-Pro­to­kolls – das na­mens­ge­bend für die Suite war – in Linux- und Unix-Dis­tri­bu­tio­nen. Das Server Message Block (SMB) Protocol, das in einer wei­ter­ent­wi­ckel­ten Version auch als Common Internet File System (CIFS) Protocol bekannt ist, war ur­sprüng­lich in Microsoft-Windows-Be­triebs­sys­te­men ver­ant­wort­lich für Datei-, Druck- und andere Ser­ver­diens­te. Durch die Im­ple­men­tie­rung wird die In­te­gra­ti­on von Windows- und Linux- bzw. Unix-Rechnern im Netzwerk un­ter­stützt, sodass pro­blem­los Dateien aus­ge­tauscht oder Drucker genutzt werden – voll­kom­men un­ab­hän­gig von den ver­wen­de­ten Be­triebs­sys­te­men. Egal, ob Unix- oder Linux-Samba-Server, die Software übernimmt seit Version 4 auch die Rolle des Active Directory Domain Con­trol­lers, wodurch die zentrale Au­to­ri­sie­rung und Au­then­ti­fi­zie­rung von Computern und Benutzern im Netzwerk möglich ist.

Damit das SMB- bzw. CIFS-Protokoll kon­fi­gu­riert werden kann, besteht die Samba-Server-Suite aus einigen Modulen. Den Kern bilden die folgenden vier Daemons (im Hin­ter­grund ab­lau­fen­de Dienste):

  • samba: mit Version 4 hin­zu­ge­füg­ter Daemon, der die Rolle des Active Directory Domain Con­trol­lers er­mög­licht und über smb.conf kon­fi­gu­riert wird
  • smbd: Datei- und Dru­cker­frei­ga­be, Kon­fi­gu­ra­ti­on über smb.conf
  • nmbd: ver­ant­wort­lich für die Auflösung von NetBIOS-Namen in IP-Adressen, kann ebenfalls über die smb.conf-Datei kon­fi­gu­riert werden
  • winbindd: löst Gruppen- und Be­nut­zer­in­for­ma­tio­nen auf, macht sie für Unix/Linux ver­ständ­lich und bietet ei­gen­stän­di­ge Kon­fi­gu­ra­ti­ons­mög­lich­kei­ten

Den Samba-Server ein­rich­ten: so funk­tio­niert’s

SMB/CIFS ist das Stan­dard­pro­to­koll für un­kom­pli­zier­te Netz­werk­frei­ga­ben unter Windows. Al­ler­dings werden das Aus­tau­schen sowie die Freigabe von Dateien immer dann pro­ble­ma­tisch, wenn auch Rechner mit Linux- oder Unix-Be­triebs­sys­te­men dem Netzwerk angehören. Indem Sie einen Samba-Server ein­rich­ten, der zwischen den einzelnen End­ge­rä­ten ver­mit­telt, lösen Sie diese Kom­pa­ti­bi­li­täts­pro­ble­me. Da das Samba-Paket aus Open-Source-Kom­po­nen­ten besteht, sind damit keinerlei zu­sätz­li­che Kosten verbunden. Im Folgenden werden die not­wen­di­gen Schritte erläutert, um einen Linux-Samba-Server ein­zu­rich­ten.

Schritt 1: In­stal­la­ti­on

Zunächst einmal ent­schei­den Sie, ob Sie direkt auf Ihrem Server agieren oder selbigen von einem Client aus per Remote-Zugriff bedienen wollen. Danach geben Sie den folgenden Befehl ein, um das Samba-Paket auf dem Server zu in­stal­lie­ren:

apt-get install samba

Schritt 2: Be­nut­zer­kon­ten zur Samba-Datenbank hin­zu­fü­gen

Nach der In­stal­la­ti­on des Samba-Servers müssen die be­stehen­den User-Accounts zunächst aktiviert werden. Einige Linux-Dis­tri­bu­tio­nen syn­chro­ni­sie­ren die im Netzwerk vor­han­de­nen System-Nut­zer­kon­ten au­to­ma­tisch und fügen sie der Samba-Datenbank hinzu – bei­spiels­wei­se wenn bereits das Paket libpam-smbpass in­stal­liert ist, das Linux- und SMB-Pass­wör­ter synchron hält. An­dern­falls ist es notwendig, dass Sie die Be­nut­zer­kon­ten manuell verwalten, damit die be­tref­fen­den Nutzer die ent­spre­chen­den Netz­werk­diens­te in Anspruch nehmen können.

Die Be­nut­zer­kon­ten-Ver­wal­tung wird über den Befehl smbpasswd mit den vier Pa­ra­me­tern -a, -x, -d und -e gesteuert. Die je­wei­li­gen Be­fehls­zei­len sehen wie folgt aus:

sudo smbpasswd -a BENUTZERNAME (PASSWORT)
sudo smbpasswd -x BENUTZERNAME
sudo smbpasswd -d BENUTZERNAME
sudo smbpasswd -e BENUTZERNAME

Mit dem ersten Befehl wird der jeweilige Benutzer der Samba-Server-Datenbank hin­zu­ge­fügt und für die Netz­werk­frei­ga­be aktiviert. Direkt auf den Nut­zer­na­men folgend kann verdeckt das Nut­zer­pass­wort vergeben bzw. geändert werden. Es kann identisch mit dem Linux-Passwort sein oder auch davon abweichen. Der zweite Befehl (-x) entfernt den Benutzer aus der Datenbank, mit dem Parameter -d wird er de­ak­ti­viert und mit -e wieder aktiviert. Mit dem Befehl

gsudo service smbd reload

lädt der Server die Kon­fi­gu­ra­tio­nen neu, um die Än­de­run­gen zu über­neh­men.

Schritt 3: Freigabe der Dateien kon­fi­gu­rie­ren

All­ge­mei­ne Freigaben

All­ge­mei­ne Freigaben können Sie in der Samba-Server-Kon­fi­gu­ra­ti­ons­da­tei festlegen. In dieser Datei sind alle ad­mi­nis­tra­ti­ven Freigaben und die all­ge­mei­nen Ei­gen­schaf­ten des Servers ge­spei­chert. Öffnen Sie die Datei zunächst mit folgendem Befehl:

sudo gedit /etc/samba/smb.conf

Die smb.conf enthält zahl­rei­che aus­kom­men­tier­te Beispiele, die in der Regel durch Raute (#) oder Semikolon (;) ge­kenn­zeich­net und nicht aktiv sind. Möchten Sie ein solches Beispiel ak­ti­vie­ren, genügt es, das Son­der­zei­chen zu entfernen. Neue Einträge fügen Sie ans Ende der Datei ein, indem Sie zunächst den all­ge­mei­nen Namen, unter dem die Freigabe im Netz verfügbar ist, in eckigen Klammern angeben. Es folgt in einer zweiten Zeile der Pfad zum je­wei­li­gen Ordner bzw. zur je­wei­li­gen Datei und im Anschluss weitere Zeilen mit den Pa­ra­me­tern, die gelten sollen. Wollen Sie bei­spiels­wei­se einen Ordner mit Fotos freigeben, der den Schreib­zu­griff der User sowie den Zugriff durch Gäste erlaubt, lautet der Eintrag in der smb.conf:

[Fotos]
path= /dokumente/fotos
writeable = yes
guest ok = yes

Um die Än­de­run­gen zu über­neh­men, müssen Sie Samba im Anschluss mit dem bereits bekannten Befehl reloaden:

sudo service smbd reload

Per­sön­li­che Freigaben

Damit spe­zi­fi­sche Freigaben ein­ge­rich­tet werden können, muss der jeweilige Nutzer der Gruppe sam­bas­ha­re angehören. Verwenden Sie folgenden Befehl, um User dieser Gruppe hin­zu­zu­fü­gen:

sudo usermod -aG sambashare BENUTZERNAME

Die Grup­pen­an­ge­hö­rig­keit besteht, sobald sich der Benutzer neu anmeldet oder Linux neu startet. Richtet er nun Freigaben ein, werden diese nicht in der smb.conf, sondern jeweils in einer separaten Textdatei – in der Regel im Ordner /var/lib/samba/usersha­res – ge­spei­chert. Jede dieser Dateien be­inhal­tet den Sharename und den Pfad zur Freigabe, einen op­tio­na­len Kommentar, die Usershare-ACL (die angibt, ob die Freigabe nur gelesen oder auch verändert werden kann) sowie einen Parameter, der anzeigt, wer Zugriff hat. Ein Beispiel-Befehl:

net usershare add Fotos /dokumente/fotos Urlaub 2015 Everyone: r, USER1: f

Mithilfe des Befehls wurde der Ordner mit dem Sharename „Fotos“ im Pfad „/dokumente/fotos“ mitsamt dem Kommentar „Urlaub 2015“ frei­ge­ge­ben. Alle Samba-Server-Nut­zer­kon­ten können die Dateien lesen, USER1 hat die volle Be­rech­ti­gung und kann selbige außerdem auch verändern. Zur Über­prü­fung der Freigaben dienen die beiden Befehle:

net usershare list
net usershare info

Der erste Befehl listet alle ver­wen­de­ten Freigaben unter dem je­wei­li­gen Sharename auf, während der zweite auch die weiteren Details wie Kommentar, Be­rech­ti­gun­gen etc. bietet. Möchten Sie Än­de­run­gen an den Freigaben tätigen, sollten Sie dies immer über die Kom­man­do­zei­le und niemals in der usersha­res-Textdatei tun. Löschen können Sie eine Freigabe mit dem Befehl:

net usershare delete SHARENAME

Samba-Server: Windows und Linux im Netzwerk vereint

Wenn die ge­mein­sa­me Nutzung von Druckern und Dateien im Netzwerk aufgrund ver­schie­de­ner Be­triebs­sys­te­me Probleme bereitet, ist der Einsatz eines Samba-Servers bzw. der Samba-Software für Clients die perfekte Lösung. Die kos­ten­freie Software-Suite im­ple­men­tiert das Netz­werk­pro­to­koll SMB/CIFS in Unix- und Linux-Systeme und macht sie dadurch mit Windows-Dis­tri­bu­tio­nen im Netzwerk kom­pa­ti­bel. Ob Server oder Client macht dabei keinen Un­ter­schied.

Ein Linux-Samba-Server regelt die Freigabe von Dateien und Diensten im Netzwerk wie ein Windows-Server – nicht zuletzt (seit Samba-Version 4) auch dank der Fähigkeit, die Rolle des Active Directory Domain Con­trol­lers zu über­neh­men. Wenn Sie einen Samba-Server ein­rich­ten und verwalten möchten, können Sie das bequem von Ihrem per­sön­li­chen Rechner per Remote-Zugriff tun. Außerdem haben Sie die Wahl, ob Sie direkt mit der Kom­man­do­zei­len-Eingabe arbeiten oder zur Ver­ein­fa­chung eine zu­sätz­li­che grafische Ober­flä­che in­stal­lie­ren.

Zum Hauptmenü