Samba Server unter Linux – zentrale Netzwerkspeicher und Druckerfreigaben
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.
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.