News Ticker

Samba Server unter Linux – zentrale Netzwerkspeicher und Druckerfreigaben

Ubuntu-terminal Oft ist es ja auch selbst zuhause im privaten Netzwerk praktisch wenn man einen kleinen Server hat auf welchem zentral Daten gelagert werden. Wenn es z.B. um die Urlaubsfotos geht so müssen diese nicht immer auf jedem Computer gelagert werden sondern nur auf einem zentralen Laufwerk auf welches alle Rechner aus dem Netzwerk zugreifen können. Oder auch bei Druckern ist es sehr praktisch wenn diese von allen Usern aus dem Netzwerk genutzt werden können. So etwas kann man mit einem Server realisieren, beim Thema Server denken bestimmt viele an riesige Serverschränke wie man sie aus einem Rechenzentrum kennt. Aber es geht auch viel kleiner man kann auch einfach einen alten Computer zu einem Server umfunktionieren. In diesem Artikel zeige ich euch wie ihre einen sogenannten Samba Server unter Linux einrichten könnt welcher diese Dienste unterstützt.

Zunächst benötigt ihr einen Computer mit einer Linux Installation, hierfür reicht auch eine Version ohne eine GUI (Grafische Oberfläche). Die Grundlagen zum Thema Linux habe ich bereits hier in der Artikelserie beschrieben. Aber die Installation welche ich hier von dem Samba Server beschreibe ist auch nicht so kompliziert so das ihr kein Fachwissen in Linux benötigt. Als kleiner Hinweis noich bei diesem Tutorial verwende ich ein Ubuntu10 als Arbeitsumgebung.

Samba Server installieren

Wenn ihr euer Linux gebootet habt öffnet ihr das Terminal und meldet euch erst einmal mit dem Befehl su als root an und gebt anschließend folgendes ein:

apt-get update

Mit diesem Befehl aktualisiert ihr das Repository. Anschließend könnt ihr mit folgendem Befehl das Samba Paket installieren.

apt-get install samba

User und Gruppe anlegen

Nachdem jetzt Samba auf dem Linux Server installiert wurde erstellen wir eine neue Gruppe und prüfen danach gleich ob diese auch wirklich angelegt wurde.

groupadd sambagruppe
cat /etc/group | grep „sambagruppe“

Mit dem ersten Befehl wird eine Gruppe mit dem Namen “sambagruppe” erstellt und mit dem 2. Befehl schaut man ob diese Gruppe auch richtig erstellt wurde.
Als nächstes muss noch ein User angelegt werden das machen wir mit folgendem Befehl:

useradd –m -d /home/usertest -s /bin/false -G sambagruppe testuser

Das –m in diesem Befehl steht dafür dass das Homeverzeichnis /usertest angelegt wird, aber man muss beachten, dass die übergeordneten Verzeichnisse schon vorhanden seinem müssen. Wenn diese noch nicht existieren muss man sie davor mit mkdir anlegen. In dem Befehlt steht das –s /bin/false dafüpr das dieser Benutzer die Shell nicht benutzten darf. Das –G steht für Gruppe und dieser User wird jetzt z.B. der Gruppe sambagruppe hinzugefügt. Zum Schluss muss man noch den Usernamen angeben hier soll der Benutzer testuser heißen.
Damit wir auch sehen ob der User angelegt wurde können wir das mit folgendem Befehl prüfen:

cat /etc/passwd

Wenn ihr jetzt bei eurem Samba Server noch irgendwelche anderen Verzeichnisse Freigeben möchtet außer das Homeverzeichnis des Users welchen ihr gerade erstellt habt müsst ihr diese noch mit mkdir anlegen. Danach müsst ihr auch noch die Rechte für diese Verzeichnisse entsprechend anpassen, das geht wie folgt:

chmod 750 /home/ordner
chown testuser /home/ordner
chgrp sambagruppe /home/ordner

Mit dem ersten Befehl geben wir die Rechte 750, mit dem 2. Befehl definieren wir den Benutzer testuser als neuen Besicher des Verzeichnisses und mit dem dritten Befehl tragen wir die Gruppe sambagruppe ein.
Danach müssen wir den Benutzer noch in Samba eintragen das geht mit folgendem Befehl:

smbpasswd –a testuser

Damit wird der Benutzer testuser bei Samba eintragen, hier ist es wichtig das man den selben Usernamen verwendet wie bei dem davor angelegten Linux Benutzer.

Samba Konfiguration

Als nächstes müssen wir noch die Konfiguration von dem Samba Server auf unsere Wünsche hin anpassen. Das können wir entweder mit dem SWAT Webinterface machen welches auf dem Port 901 läuft oder indem wir direkt die Config Datei anpassen. Ich zeige hier in dem Beispiel wie man die Konfigurationsdatei anpasst, denn ich denke das ist besser zum Verständnis. Dazu muss man zunächst die Config Datei öffnen das geht mit folgendem Befehl:

nano /etc/samba/smb.conf

Hier zeige ich euch eine Beispielkonfigurationsdatei auf welche ich genauer eingehen werde und erkläre für was die einzelnen Befehle bzw. Parameter stehen.

[global]
workgroup = Gruppe1
encrypt passwords = yes
security = user
hosts allow = 192.0
server string = sambaserver
log file = /home/usertest/samba.log
max log size = 500
log level = 1
guest ok = yes
guest account = Usergast

[freigabe]
comment = Das Freigabe Share
path = /home/usertest
read only = no
write list = testuser@sambagruppe
valid users = testuser@sambagruppe
invalid users = unbekannt@boesegruppe
create mask = 770
directory mask = 770
force user = testuser
force group = sambagruppe

[homes]
comment = Kommentar zum Home-Share
browsable = no

[printers]
comment = Alle Drucker
path = /var/spool/samba
printable = Yes
browseable = no
guest ok = Yes

Befehl Bedeutung
[global] Globaler Konfigurationsbereich
workgroup = Grupp1 Gibt der Arbeitsgruppe den Namen Gruppe 1
encrypt passwords = yes Gibt an das Passwörter verschlüsselt übertragen werden sollen, wenn anstatt dem yes ein no steht würden die Passwörter nicht verschlüsselt verschickt.
security = user Man muss sich mit einem Account anmelden, man könnte aber auch der stelle von user share angeben dann würden die rechte über die Share Freigabe gehen.
hosts allow = 192.0 Es sind alle Zugriffe verboten außer von 192.0.0.0/16
server string = sambaserver Der Server meldet sich beim Client mit sambaserver.
log file = /home/usertest/samba.log Hiermit wird angegeben wo das Logfile gespeichert wird
max log size = 500 Mit dem Befehl wird bestimmt wie viele kByte das Log File maximal groß sein darf. Wenn es die maximale Größe erreicht hat wird eine neue Datei angelegt.
log level = 1 Es wird angegeben wie viel geloggt werden soll, 1 heißt das sehr wenig geloggt werden soll und 10 steht dafür das alles geloggt werden soll.
guest ok = yes Ob Gäste erlaubt sind, wenn man das yes durch ein no ersetzt sind Gäste nicht erlaubt.
guest account = Usergast Gäste werden als Usergast im System geführt.
[freigabe] Das Share heißt hier freigabe
comment = Das Freigabe Share Kommentar zu dem Share
path = /home/usertest Der Pfad zu dem Share unter Linux
read only = no Es heißt das auch geschrieben werden darf, wenn ein yes stehen würde dürfte nur gelesen werden.
write list = testuser@sambagruppe Es wird angegeben das der Benutzer testuser und die Gruppe sambagruppe schreiben darf.
valid users = testuser@sambagruppe Nur der Benutzer testuser und die Gruppe sambagruppe das das Share verwenden.
invalid users = unbekannt@boesegruppe Der User unbekannt und die Gruppe boesegruppe dürfen das Share nicht verwenden.
create mask = 770 Es werden die Rechte 770 beim erstellen von neuen Dateien gesetzt.
directory mask = 770 Es werden die Rechte 770 gesetzt wenn ein neues Verzeichnis erstellt wird.
force user = testuser Alle neu erstellen Dateien oder Verzeichnisse gehören dem Benutzer testuser.
force group = sambagruppe Alle neu erstellen Dateien oder Verzeichnisse gehören der Gruppe sambagruppe.
[homes] Home Share
comment = Kommentar zum Home-Share Kommentar zum Home Share
browsable = no Andere sehen dieses Share nicht, wenn man das no durch ein yes ersetzten würde könnten andere das Share sehen.
[printers] Dieser Bereich ist für die Drucker reserviert.
comment = Alle Drucker Kommentar zum Druckerbereich
path = /var/spool/samba Das Spool Verzeichnis (Alle User sollten hier Schreibrechte haben). In dem Spool Verzeichnis werden bei einem Druckauftrag temporäre Dateien angelegt.
printable = Yes Durch das Yes ist es erlaubt zu drucken.
browseable = no Der Eintrag printes erscheint nicht in der Browser Liste, jedoch jeder Drucker ist in der /etc/printcap
guest ok = Yes Mit dieser Einstellung dürfen auch Gäste drucken.

Wenn ihr die Config Datei fertig angepasst habe könnt ihr diese mit folgendem Befehl überprüfen lassen:

testparm

Als nächstes könnt ihr den Sambaserver starten, dies könnt ihr entweder mit diesen beiden Befehlen machen.

/etc/init.d/smbd start
/etc/init.d/nmbd start

Oder ihr könnt ihn auch mit diesem Befehl über das Programm service starten.

service smbd start

Jetzt könnt ihr testen ob die Samba-Shares auch verfügbar sind, dass geht mit diesen beiden Befehlen.

smbclient //localhost/testuser
smbclient –U testuser –L localhost

Ich hoffe diese Anleitung hat euch geholfen auch wenn Sie jetzt doch etwas länger geworden ist als ich es zunächst gedacht hatte.

1 Kommentar zu Samba Server unter Linux – zentrale Netzwerkspeicher und Druckerfreigaben

  1. Mi-Lan // 18. Okt 2010 um 15:52 //

    Danke für die übersichtliche Anleitung. Vor allem die Idee mit der Tabelle finde ich gut!
    Hat mir jedenfalls bei meiner eigenen Samba-Doku durchaus Denkanstöße gegeben.

Kommentare sind deaktiviert.