Debian Samba
Allgemein
Für Fileserverdienste wird Samba eingesetzt. Samba stellt Netzwerkfreigaben in einer Windows Arbeitsgruppe bzw. -Domäne zur Verfügung. Im folgenden soll die Sambaeinrichtung für eine kleine Arbeitsgruppe erläutert werden. Für den Einsatz als Domänencontroller sei an dieser Stelle auf andere Anleitungen und Howtos im Internet verwiesen.
Installation
apt-get install samba
Nach dem Donwload startet automatisch ein Script, das folgende Angaben abfrägt:
- Name der Domäne bzw. Arbeitsgruppe. Hier die gewünschte Windows-Arbeitsgruppe eingeben.
- WINS via DHCP: No
apt-get install swat
Konfiguration
Samba ist nach der Installation bereits recht ordentlich für den Betrieb als Standalone Server konfiguriert. Deshalb sind hier kaum Änderungen nötig.
vi /etc/samba/smb.conf
Nachdem der Server im Gegensatz zu Desktop-Recvhner vermutlich permanent läuft, macht es Sinn, dass der Server der Master Browser im Netzwerk wird. Dieer hält damit die Liste der aktiven Windows-Netzwerk Rechner vor, sodass nicht jeder einzelne Rechner diese erst zeitaufwändig nach dem Start ermitteln muß. Damit der Server diese Rolle übernimmt, muß der sog. OS-Level möglichst hoch gewählt werden. Im Bereich [global] den folgenden Eintrag einfügen:
os level = 65
Falls kein Printserver auf dem Server installiert ist, empfiehlt es sich, die Suche nach diesem zu unterbinden. Ansonsten erscheint beim Start von Samba ein Fehlereintrag in den Log-Files und auf den Arbeitsstationen wird für den Server der Eintrag "Drucker und Faxgeräte" aufgelistet, der keinen Sinn macht, falls kein Printserver installiert ist.
load printers = no
Desweiteren können die beiden Netzwerkfreigaben [printers] und [print$] deaktiviert werden, falls kein Printserver auf dem Sambaserver zum einsatz kommt. Dies geschieht durch ein # vor jeder Zeile der Freigabedefinition:
#[printers] # comment = All Printers # browseable = no # path = /var/spool/samba # printable = yes # guest ok = no # read only = yes # create mask = 0700 #[print$] # comment = Printer Drivers # path = /var/lib/samba/printers # browseable = yes # read only = yes # guest ok = no
Etwas mehr Performance kann mit folgendem Eintrag heraus geholt werden:
socket options = TCP_NODELAY
Samba User einrichten
Samba hat eine eigene User- und Passwortverwaltung, die unabhängig von der Linux/Debian Userverwaltung arbeitet. Andererseits besteht aber doch ein Zusammenhang zwischen den Samba- und Unixusern in Form der Dateirechte. Im Folgenden werden die Sambauser angelegt, falls diese noch nicht besten, der Unixgruppe sambashare hinzugefügt und anschließend ein Sambapasswort vergeben.
Linux User anlegen
Dieser Schritt ist nur erforderlich, wenn ein neuer User sambauser angelegt werden, soll, der noch nicht unter Linux existiert. Loginberechtigter User:
adduser --home /home/sambauser --shell /bin/bash --ingroup sambashare sambauser
Der adduser Befehl stellt einige Fragen zum neuen User (z.B. Name, Raumnummer, ...) inclusive Passwort.
Nicht loginberechtigter User
adduser --home /home/sambauser --shell /bin/false --ingroup sambashare --disabled-login sambauser
Der adduser Befehl stellt ebenfalls einige Fragen, es wird aber kein Passwort eingerichtet, ds hier auch nicht erforderlich ist.
Bereits existierender User
Um einen bereits existierenden User useralt der Gruppe sambashare hinzuzufügen folgenden Befehl eingeben:
adduser useralt sambashare
Sambauser und Passwort anlegen
Jeder User, der Zugriff auf Sambafreigaben erhalten soll, muß in der Samba Userverwaltung angelegt werden:
smbpasswd -a sambauser
Dieser Befehl fügt den User der Sambadatenbank hinzu und erstellt ein Passwort, das identisch mit dem Linuxpasswort sein sollte, aber nicht sein muss. Für User die ausschliesslich via Samba auf den Server zugreifen sollen, ist nicht einmal ein Linuxpasswort erforderlich.
Netzwerkfreigabe einrichten
Freigabeverzeichnis freigabe_dir anlegen:
mkdir /usr/share/freigabe_dir chgrp sambashare /usr/share/freigabe_dir chmod 774 /usr/share/freigabe_dir
Verzeichnis im Netzwerk freigeben:
vi /etc/samba/smb.conf
Am Ende Folgenden Abschnitt einfügen, unter dem die Netzwerkfreigabe Freigabe_Name erscheinen soll (Freigabe_Name muss nicht zwingend identisch mit dem Verzeichnis freigabe_dir sein):
[Freigabe_Name] writeable = yes browseable = yes valid users = @sambashare force group sambashare create mask = 0660 directory mask = 0771 path = /usr/share/freigabe_dir
Samba neu starten:
/etc/init.d/samba restart