Für gewöhnlich macht der Zugriff auf freigegebene Verzeichnisse oder die Freigabe von Verzeichnissen mittels Samba wenig Probleme. Es kann aber dennoch vorkommen, dass sich der Zugriff auf Samba-Ressourcen Probleme bereitet.
Dieser Artikel soll eine Anleitung liefern das Problem in der Samba-Konfiguration am Server oder am Client einzugrenzen.
Es wird davon ausgegangen, dass es sich beim Server um ein Linux-System mit Samba handelt. Falls Client oder Server unter Windows laufen, entfällt die Überprüfung der spezifischen Konfiguration für Samba in den jeweiligen Schritten. Die Tests sollten sich aber, zumindest leicht abgewandelt, trotzdem durchführen lassen.
In den folgenden Codebeispielen wird davon ausgegangen, dass der Server unter dem Hostnamen BIGSERVER und der Client als LITTLECLIENT erreichbar ist. Ebenso müssen diese Namen in der Samba-Konfiguration eingetragen sein. Diese Namen können natürlich auch durch die jeweiligen IP-Adressen ersetzt werden.
Als Name der Arbeitsgruppe wird in der Folge TUXNET verwendet.
Am Server muss zumindest eine Freigabe konfiguriert sein. In diesem Beispiel wird eine Freigabe mit dem Namen TMP angenommen.
Überprüfen der Konfigurationsdatei smb.conf am Server auf syntaktische Korrektheit. Diese liegt normalerweise im Verzeichnis /etc/samba/
$ testparm /etc/samba/smb.conf
Test mittels Ping ob der jeweilige andere Rechner im Netzwerk erreichbar ist. Also den Befehl
$ ping LITTLECLIENT
am Server und
$ ping BIGSERVER
am Client ausführen. Falls nur von einem Rechner keine Antwort zurück kommt muss die die Firewallkonfiguration am Zielrechner überprüft werden. Wenn kein Ping funktioniert, sollte zusätzlich auch die Netzwerkverbindung überprüft werden.
Eine Anleitung zum Testen der Netzwerksverbindung gibt es hier.
Am Client den Befehl
$ smbclient -L BIGSERVER
ausführen. Das sollte eine Liste mit Freigaben liefern.
Bei einer Fehlermeldung sollte die Konfiguration in den Dateien /etc/hosts.allow und /etc/hosts.deny am Server überprüft werden. Eine weitere mögliche Fehlerquelle kann die Zeile valid users oder invalid users in der smb.conf sein.
Ausführen des Befehls
$ nmblookup -B BIGSERVER __SAMBA__
am Client. Es sollte die IP-Nummer des Servers zurückgegeben werden. Bei einer Fehlermeldung wurde nmbd nicht korrekt konfiguriert oder gestartet.
Am Server muss der Befehl
$ nmblookup -B LITTLECLIENT '*'
ebenfalls die IP-Nummer des Clients zurückgeben. Weiters sollte der Broadcast-Lookup
$ nmblookup -d 2 '*'
alle konfigurierten Samba-Server und Clients im lokalen Netzwerk auflisten. Falls mehrere Netzwerkinterfaces zur Verfügung stehen, kann zusätzlich die Broadcast-Adresse des gewünschten Netzwerks mit der Option -B angegeben werden.
Fehler bei diesem Befehl lassen auf eine Fehlerhafte Netzwerkskonfiguration (Netzwerks- und Broadcast-Adresse) schließen.
Vom Client aus kann nun mit dem Befehl
$ smbclient //BIGSERVER/TMP
auf die Freigabe zugegriffen werden. Nach einer Passwortabfrage wird automatisch versucht den aktuell angemeldeten Benutzer am Server anzumelden. Bei Erfolg erscheint eine Eingabeaufforderung mit smb>.
Falls ein anderer Benutzer angemeldet werden soll kann der Befehl wie folgt angepasst werden:
$ smbclient //BIGSERVER/TMP -U<benutzer-name>[%<passwort>]
Wenn ein Fehler wie invalid network name ausgegeben wird, ist die Freigabe TMP nicht richtig konfiguriert.
Bei der Meldung bad password sind mögliche Ursachen, dass die Passwörter am Server nicht korrekt mit smbpasswd umgewandelt wurden, oder der Benutzer gesperrt oder nicht für Samba konfiguriert wurde.
Am Client kann eine Liste der Freigaben am Server mit
$ net view \\BIGSERVER
angezeigt werden. Ein Fehler deutet auf ein Problem bei der Namensauflösung mit NetBIOS hin. Es kann auch versucht werden direkt auf die IP-Nummer des Servers zuzugreifen.
Auf einem Windows-Client kann nun das Netzlaufwerk eingebunden werden:
$ net use x: \\BIGSERVER\TMP
Nach einer Passwortabfrage kann auf das Netzlaufwerk zugegriffen werden.
Die Verfügbarkeit der Arbeitsgruppe wird mit
$ nmblookup -M TUXNET
überprüft.
Wenn alle der obigen Tests erfolgreich ausgeführt wurden, funktioniert der Zugriff auf den Samba-Server vom Client aus.
Viel Spass beim Netzwerken
Diskussion