Tutorials arrow Linux Tutorials arrow Samba einrichten: Linux als Datei- und Druckserver für Windows
TanMar
Tutorials
 
 
Navigation
Tutorials
Windows Tutorials
Linux Tutorials
Programme Tutorials
Webseiten Tutorials
Anbieterkennzeichnung
Ein Service von TanMar WebentwicklungTanMar Tutorials (aktiv)TanMar Surftipps
Zuletzt aktualisiert
Security News
heise Security News

Samba einrichten: Linux als Datei- und Druckserver für Windows

Drucken E-Mail

SambaSamba bietet die Möglichkeit, unter Linux Dateien und Drucker für Windows-Computer freizugeben. So kann beispielsweise ein älterer Rechner in einem Windows-Netzwerk als Datei- und Druckserver dienen. Zusätzlich bietet Samba die Möglichkeit, von Linux aus auf von Windows-Computern freigegebene Dateien zuzugreifen.

Allgemeines

Samba ist in allen gängigen Linux-Distributionen enthalten und kann gegebenenfalls über die Installationsroutine der jeweiligen Distribution nachinstalliert werden. Jeweils aktuelle RPM-Pakete für diverse SuSE Versionen sowie Red Hat Enterprise Linux können über den FTP-Server von SerNet heruntergeladen werden. Auf dieser Seite findet sich auch ein Tutorial zur Installation dieser Pakete.

Ist Samba eingerichtet, sollte doch sichergestellt werden, dass es beim Systemstart automatisch geladen wird. Unter SuSE-Linux lässt sich dies beispielsweise über den in YaST2 integrierten Runlevel-Editor bewerkstelligen, indem die Dienste smb und nmb aktiviert werden:

Samba über den Runlevel-Editor von YaST2 aktivieren.

Konfiguration über die Datei smb.conf

Samba wird über die Datei smb.conf konfiguriert. Diese findet sich im Verzeichnis /etc oder /etc/samba. Sie lässt sich unter dem Benutzer root mit einem beliebigen Texteditor bearbeiten.

Die Datei ist nach dem Format Option = Wert aufgebaut, wobei in jeder Zeile eine Option steht. Zeilen, die mit den Zeichen # oder ; beginnen werden als Kommentare behandelt. Um eine besonders lange Zeile auf zwei Zeilen aufzuteilen, kann am Ende einer Zeile das Zeichen \ eingefügt werden, um diese mit der darauffolgenden Zeile zu verbinden.

Die Datei ist in sogenannte Sektionen unterteilt, wobei eine Sektion jeweils durch einen in eckige Klammern eingefassten Sektionsnamen (z.B. [global])definiert wird. Die Sektionen global, printers sowie homes sind reserviert und haben eine eigene Funktion.

Hier der Inhalt unserer Beispieldatei:

[global]
#Allgemeine Einstellungen
socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY
unix extensions = Yes
#Einstellungen zum Drucksystem
printing = CUPS
printcap name = CUPS
#Einstellungen für den Server
netbios name = linux
server string = Linux-Server
workgroup = tanmar
encrypt passwords = yes
#Vorgaben für Freigaben
writeable = yes
create mode = 664
directory mode = 775

[printers]
create mask = 0600
browseable = yes
comment = All Printers
printable = yes
public = yes
guest ok = yes
path = /var/tmp
use client driver = yes

[data]
comment = Allgemeine Daten
path = /data/data

[dmarco]
comment = Marco's Daten
valid users = marco
path = /data/dmarco
create mode = 700
directory mode = 700

[mail_tanmar]
comment = TanMar Mails
valid users = marco,@tanmar
path = /data/mail-tanmar

Allgemeine Einstellungen im Abschnitt [globals]

Der Abschnitt [globals] enthält allgemeine Einstellungen und Vorgaben für die Freigaben. Die Optionen socket options, unix extensions, printing und printcap name sind in der Regel durch die Distribution schon mir sinnvollen Werten belegt, so dass hier in der Regel keine Änderungen notwendig sind.

Einstellungen für den Server

Folgende Parameter beeinflussen, wie sich der Samba-Server im Windows Netzwerk verhält:

netbios name Dieser Parameter bietet die Möglichkeit, den Namen zu setzen, über den der Samba-Server im Netzwerk angesprochen wird. Wird er nicht angegeben, so verwendet Samba den Hostnamen, der im System gesetzt ist.
server string
Über diesen Parameter wird die Beschreibung gesetzt, die für den Computer in der Netzwerkumgebung als Kommentar angezeigt wird.
workgroup Über workgroup wird festgelegt, in welche Arbeitsgruppe sich Samba eingliedern soll.
encrypt passwords Windows 9x überträgt Kennwörter für Freigaben unverschlüsselt. Windows NT/2000/XP verschlüsseln diese aber. Wenn das Netzwerk also nicht ausschließlich aus Computern mit Windows 9x besteht, ist es erforderlich, die Verschlüsselung der Kennwörter zu aktivieren. Andernfalls ist kein Zugriff auf die Freigaben von Samba möglich.

Vorgaben für Freigaben

Neben den allgemeinen Einstellungen können über den Abschnitt [globals] auch Vorgaben für die angelegten Freigaben definiert werden. Einstellungen für Freigaben, die hier mit aufgenommen werden, gelten automatisch für alle Freigaben, so lange bei einer Freigabe nicht die selbe Option separat angegeben wird, um die Standardeinstellung zu überschreiben. In unserer Beispielkonfiguration werden also die Optionen writeable, create mode und directory mode als Standard für alle Freigaben gesetzt und somit automatisch übernommen. Zur Bedeutung der Parameter gleich mehr.

Berechtigungen

Bevor die Definition von Freigaben beschrieben wird einige Anmerkungen zu den Zugriffsrechten. Es ist wichtig zu wissen, dass die Berechtigungen für den Zugriff auf eine Freigabe zweischichtig sind:

  • Zum Einen kann über die Konfiguration von Samba festgelegt werden, wer sich mit der Freigabe verbinden darf und ob auf der Freigabe geschrieben werden darf.
  • Andererseits darf man nicht vergessen, dass Linux selbst Freigaberechte auf Dateien und Verzeichnisse verwaltet. Ein Benutzer, der auf der Konsole nicht in ein freigegebenes Verzeichnis schreiben darf, der darf es auch über die Freigabe nicht.

Es empfiehlt sich also vorher zu überlegen wer wo schreiben können soll und den freigegebenen Verzeichnissen unter Linux entsprechende Berechtigungen zu geben. SelfLinux bietet eine gute Einführung in Verwaltung von Berechtigungen unter Linux.
Die einfachste und zugleich unsicherste Lösung ist natürlich die betroffenen Verzeichnisse mit chmod 777 verzeichnis für alle Benutzer freizugeben.

Dateifreigaben

Freigaben werden jeweils in einem eigenen Abschnitt definiert, wobei der Name des Abschnitts den Namen der Freigabe festlegt. [data] definiert also eine Freigabe namens data. Es folgen eine Reihe von Optionen, die festlegen, was freigegeben werden soll und wer auf die Freigabe zugreifen darf.

path Eine Freigabe gibt wie unter Windows ein Verzeichnis auf der Festplatte zum Zugriff über das Netzwerk frei. Über den Parameter path wird festgelegt, auf welches Verzeichnis sich die Freigabe bezieht.
comment
comment definiert eine Beschreibung der Freigabe, die in der Netzwerkumgebung von Windows angezeigt wird.
writeable Legt fest, ob auf die Freigabe geschrieben werden darf. Auf diese Art lassen sich Freigaben erzeugen, von denen grundsätzlich nur gelesen werden darf.
valid users Über valid Users lässt sich steuern, wer die Freigabe verbinden darf. Benutzer werden durch Kommata getrennt angegeben. Über das Zeichen @ können auch Benutzergruppen in die Definition mit aufgenommen werden. marco,@tanmar würde bedeuten, dass der Benutzer marco sowie die Mitglieder der Gruppe tanmar auf die Freigabe zugreifen dürfen.
invalid users Durch invalid Users lassen sich Benutzer gezielt vom Zugriff auf eine Freigabe ausschließen.
create mode Wie bereits erwähnt hängen die Zugriffsrechte auf freigegebene Dateien nicht nur von der Definition der gültigen Benutzer ab sondern auch von den Dateirechten. Ein Benutzer kann durchaus das Recht haben, auf eine Freigabe zuzugreifen aber nicht das Recht, eine Datei auf der Freigabe zu lesen bzw. zu schreiben.
Über den Parameter create mode wird festgelegt, mit welchen Zugriffsrechten Samba eine Datei anlegt, die über die Freigabe geschrieben wird. Die Standardvorgabe ist 744. Das bedeutet, dass der Besitzer alles darf während die Mitglieder der Gruppe und alle anderen nur lesen dürfen. Wenn also mehrere Benutzer auf eine Freigabe zugreifen und auch Dateien verändern dürfen sollen, die von anderen Benutzern angelegt wurden, so sollte der create mode zumindest auf 764 geändert werden, wenn sich alle Benutzer in einer Gruppe befinden. Andernfalls sollte 766 gewählt werden.
directory mode Analog zu create mode wird über directory mode festgelegt, mit welchen Rechten Verzeichnisse durch Samba angelegt werden. Es gelten die selben Überlegungen, wobei es zu beachten gilt, dass bei Verzeichnissen das Execute-Bit gesetzt sein muss, damit darauf zugegriffen werden kann. Für den Vollzugriff durch die Gruppe wäre hier also 775 und für den Vollzugriff durch alle Benutzer 777 notwendig.

Druckerfreigaben

Über den Abschnitt [printers] werden die auf dem Linux-Computer eingerichteten Drucker im Netzwerk für Windows-Computer freigegeben. Die Standardeinstellungen, die durch die Distribution vorgegeben sind, reichen hier in der Regel aus.

Benutzerverwaltung

Samba führt seine eigene Passwortdatenbank. In ihr sollte jeder Benutzer aufgeführt sein, der von einem Windows-Computer aus auf Freigaben von Samba zugreifen soll.

Voraussetzung dafür ist allerdings, dass die Benutzer bereits unter Linux definiert sind. Um einen Benutzer neu anzulegen muss also beispielsweise unter SuSE Linux zuerst über den Befehl useradd oder das Konfigurationsprogramm der jeweiligen Distribution (z.B. YaST2 bei SuSE) ein Linux-Benutzer angelegt werden.

Für einem bestehenden Linux-Benutzer wird mit dem Befehl smbpasswd -a Benutzername ein Eintrag in der Benutzerdatenbank von Samba angelegt. Das hier angegebene Kennwort muß mit dem Windows-Kennwort des jeweiligen Benutzers übereinstimmen. Das Passwort lässt sich jederzeit mit smbpasswd Benutzername wieder ändern.

Ein erster Test

Die bearbeitete Konfigurationsdatei smb.conf lässt sich mit dem Befehl testparm auf Fehler überprüfen. Erbringt diese Überprüfung keine Beanstandungen, so muss Samba gestartet bzw. neu geladen werden, damit die Konfiguration aktiv wird. Nachdem Samba wie eingangs erwähnt aus zwei Diensten (nmb und smb) besteht, müssen beide geladen bzw. neu gestartet werden.

Auf der Konsole lässt sich dies über die Befehle /etc/init.d/smb start bzw. /etc/init.d/smb restart und /etc/init.d/nmb start bzw /etc/init.d/nmb restart bewerkstelligen.

Alternativ kann natürlich auch hier das Konfigurationsprogramm der Distribution (wie z.B. der Runlevel-Editor von YaST2) verwendet werden.

Auf Dateifreigaben zugreifen

Ist Samba erfolgreich gestartet, so sollte der Linux-Computer jetzt in der Netzwerkumgebung sichtbar sein:

Der Linux-Computer in der Netzwerkumgebung

Es kann allerdings auch einige Zeit in Anspruch nehmen, bis der Computer über die Netzwerkumgebung sichtbar wird. Um sicher zu gehen, dass die Samba-Konfiguration funktioniert, ist deshalb die Funktion "Computer suchen" der Netzwerkumgebung oftmals nützlich. Wird der Linux-Computer so nicht gefunden, ist entweder auf dem Linux-Computer eine Firewall aktiv, die die Verbindung unterdrückt, oder die Netzwerkverbindung funktioniert nicht korrekt.

Wird der Linux-Computer im Netzwerk gefunden, so sollten sich auch die Freigaben verbinden lassen. Dies kann entweder über den Windows-Explorer erfolgen oder auf der Eingabeaufforderung mit dem Befehl net use x: \\computername\freigabename.

Eine Freigabe über den Windows-Explorer verbinden

Auf freigegebene Drucker zugreifen

Oft ist es sinnvoll den Treiber für den Drucker vorab unter Windows zu installieren. Dies ist besonders dann der Fall, wenn der Treiber über ein eigenes Installationsprogramm erfügt. Dann ist es nämlich oft nicht möglich, die Verbindung zum Netzwerkdrucker direkt bei der Installation herzustellen.

Der einzige Ausweg ist dann bei der Installation des Treibers vorzugeben, er sei lokal an LPT1 angeschlossen. Dieser Drucker kann dann sofort nach der Installation wieder gelöscht werden. Der Druckertreiber verbleibt dabei im System.

Anschließend kann über Start -> Einstellungen -> Drucker -> Neuer Drucker der Netzwerkdrucker eingerichtet werden:

Netzwerkdrucker einrichten: Schritt 1

Die Adresse des Druckers hat dabei die Form \\Computername\Drucker. Der Drucker raw ist hier in der Regel die beste Wahl, da dieser die Druckdaten, die er bekommt einfach an den Drucker weiterreicht.

Netzwerkdrucker einrichten: Schritt 2

Im nächsten Schritt will Windows wissen, welchen Treiber es für den Drucker verwenden soll. Hier kann man nun aus der Liste den Treiber auswählen, den man zuvor installiert hat.

Trackback(0)
Kommentare (7)add comment

Juergen said:

  Einer der besten Erklaerungen die es je gab! SUPA smilies/wink.gif
28.04.2008 | url

Maddi said:

  Danke das ist richtig super erklärt smilies/smiley.gif
10.04.2008

mali said:

  Super Tutorial.

Kurze Nachfrage: Ist es möglich, dass ich unter Linux und Samba User angelegt habe, aber auf dem Windows Rechner ein anderer User ( z.B. Admin ) angemeldet ist und der Admin sich mit den Daten von z.B. Manfred auf Samba anmelden will. Möchte also beim Zugriff auf den Ordner ein Anmeldepopup haben.

Gruß - mali
09.03.2008

benny said:

  super, endlich weiß ich wie es geht, die datei war in ubuntu vollgestopft mit beispielen
06.02.2008

Bratkartoffel said:

  Danke, funzt super smilies/smiley.gif
20.01.2008

Rolf Meurer said:

  dem Kommentar von Khabat kann ich mich uneingeschränkt anschließen.
Super erklärt!!! ebenfalls besten Dank, danach habe ichlange gesucht.
16.01.2008 | url

Khabat said:

  wirklich super erklärt !!! Besten Dank .... funktioniert einwandfrei smilies/wink.gif smilies/cool.gif
06.09.2007

Kommentar schreiben
quote
bold
italicize
underline
strike
url
image
quote
quote
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley
Smiley

security image
Bitte den folgenden Code eintragen


busy
 


PAGERANK SEO
computer
Die beliebteste Webseite
© Copyright 2005 TanMar Web-Entwicklung - Berlin. Alle Rechte Vorbehalten.
Kontakt | Links | Photoshop Tutorials | Entspannung | Partner
Social Bookmarking
Bookmark bei: Mr. Wong Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Favoriten Bookmark bei: Seekxl Bookmark bei: Power Oldie Bookmark bei: Bookmarks.cc Bookmark bei: Linksilo Bookmark bei: Yigg Bookmark bei: Del.icio.us Bookmark bei: Netscape Bookmark bei: Yahoo Bookmark bei: Google Bookmark bei: Technorati Bookmark bei: Reddit Bookmark bei: StumbleUpon Bookmark bei: Digg Bookmark bei: Folkd