Samba
Zugiff vom PC auf UNIX-Ressourcen
http://archiv.tu-chemnitz.de/pub/1997/0010
UNIX-Stammtisch in Sachsen
25. Februar 1997
Thomas Müller, TU Chemnitz-Zwickau, URZ
Was ist und was kann Samba?
Was ist SMB?
SMB Clients und Server
Was gehört zu Samba?
Wie wird Samba konfiguriert?
Arbeitsweise des smbd
Lokale Erweiterungen
Verwendung im URZ
Probleme
Zusammenfassung
Weitere Informationen
Was ist und was kann Samba?
- Implementation des SMB -Protokolls für UNIX
- ermöglicht den Zugriff auf Files und Drucker eines UNIX-Systems
über das SMB-Protokoll
- macht damit ein UNIX-System zum Server für SMB-Clients
- ermöglicht auch die Nutzung anderer SMB-Server unter UNIX
- freie Software unter GNU Public License
- Autoren: Andrew Tridgell, Karl Auer, u.a.
- aktuelle Version: 1.9.16p10 (wir arbeiten mit 1.9.16p2)
- Quelle: ftp://samba.anu.edu.au/pub/samba
Was ist SMB?
- SMB (Server Message Block) ist ein Protokoll zum Sharing von Files,
Druckern, seriellen Ports, und anderen Kommunikationsbeziehungen zwischen
Computern
- SMB wurde 1987 definiert von Microsoft/Intel in dem Dokument Microsoft
Networks/OpenNET-FILE SHARING PROTOCOL und später von Microsoft
und anderen weiterentwickelt
- die meisten Dokumente sind verfügbar unter ftp://ftp.microsoft.com/developr/drg/SMB-Info/.
- bei Verwendung von TCP/IP oder NetBEUI wird die NetBIOS API benutzt
- NetBIOS Namen
- wird SMB über TCP/IP oder NetBEUI benutzt, braucht man sog. NetBIOS
Namen zum identifizieren der Rechner
- NetBIOS Namen sind bis zu 15 Zeichen lang, gewöhnlich wird der
Rechnername als NetBIOS Name benutzt
- die Verwaltung der Namen erfordert einen eigenständigen Namensdienst
SMB Clients und Server
Es gibt zahlreiche SMB Client- und Server-Implementationen
Clients
die meisten Clients stammen von Microsoft und sind integraler Bestandteil
von
- Windows for WorkGroups 3.x
- Windows 95
- Windows NT
es gibt weitere Clients für OS/2 und verschiedene Implementationen
für UNIX:
- smbclient aus Samba
- smbfs für Linux
- SMBlib (eine SMB client library)
Server
- Samba
- Microsoft Windows for Workgroups 3.x
- Microsoft Windows 95
- Microsoft Windows NT
- The PATHWORKS family of servers from Digital
- LAN Manager for OS/2, SCO, etc
- VisionFS from SCO
- TotalNET Advanced Server from Syntax
- Advanced Server for UNIX from AT&T (NCR?)
- LAN Server for OS/2 from IBM
Was gehört zu Samba?
Samba umfaßt eine Menge an Programmen , die wichtigsten sind:
smbd
SMB-Daemon, führt die Kommunikation mit den Clients, macht die
exportierten Ressourcen an den Clients verfügbar, wird gesteuert über
ein Konfigurationsfile
nmbd
Nameserver für NetBIOS-Namen, dient der Abbildung von NetBIOS-Namen
auf IP-Adressen und ermöglicht das Browsing (Bekanntgabe von exportierten
Ressourcen)
smbclient
ftp-ähnlicher Client zur Benutzung von SMB-Servern, ermöglicht
das Benutzen von SMB-Servern ausgehend von einem UNIX-System
smbstatus
testparm
Wie wird Samba konfiguriert?
ein zentrales Konfigurationsfile: smb.conf
- Aufbau ähnlich der *.INI Dateien (z.B. WIN.INI)
- einzelne Sektionen
- drei Standardnamen für Sektionen: [global], [homes], [printers]
- andere Namen frei wählbar
- [global]
- universelle Einstellungen für den Server
- Definition von Standardangaben
- z.B. Logging Level, Guest Account, Server String
- [homes]
- exportieren von HOME-Verzeichnissen (laut /etc/passwd)
- Definition der Art und Weise des Exports (welche Clients dürfen
zugreifen, Rechte für neu erzeugte Files, ...)
- [printers]
- exportieren der Drucker-Warteschlangen
Im Konfiguartionsfile können neben diesen Sektionen weitere Sektionen
aufgeführt werden, wobei der Name der Sektion dann der Name der exportierten
Ressource ist.
Samba kennt zur Konfiguration etwa 60 globale Parameter und weitere
70 servicebezogene Parameter. Die dabei verwendeten Schlüsselworte
sind selbsterklärend.
Beispiel:
; Configuration file for smbd.
; ============================================================================
[global]
server string = Samba Server im URZ
password level = 2
hosts allow = 134.109.168. 134.109.200. 134.109.2.
printing = bsd
printcap name = /etc/printcap
load printers = yes
status = yes ; erforderlich fuer smbstatus
debug level = 1
[homes]
comment = Home Verzeichnisse
browseable = no
public = no
create mask = 0700
writeable = yes
printable = no
wide links = no
invalid users = root
[printers]
comment = Alle Drucker
browseable = no
printable = yes
public = yes
writeable = no
[software]
comment = Software Pakete
browseable = yes
path = /software/windows
public = yes
writable = no
printable = no
[tmp]
comment = Temporaer Plattenplatz
path = /tmp
read only = no
public = yes
Die Samba-Distribution enthält weitere zahlreiche Beispiele.
Arbeitsweise des smbd
- smbd ist ein User-Level Daemon mit root-Rechten
- jeder Client wird in separaten Kindprozeß behandelt
lokale Erweiterungen
- AFS-Authentifizierung (ist bereits vorgesehen, etwas modifiziert)
- Auswertung der Login-Shell (getusershell(3))
Verwendung im URZ
- Zugriff auf HOME-Verzeichnisse und /uni/global
- Software-Verteilung
- prinzipiell für alle PC's im Campus
- ein zentraler Samba-Server (PentiumPro 200MHz, 64 MB RAM, Linux)
- mehrere dezentrale Samba-Server (Pentium 133 MHz, 32 MB RAM, Linux)
- einheitliches Namensschema für Samba-Server
- zentraler nmbd-Server
- Nutzerverwaltung mit NIS/AFS
Probleme
- Paßworte: Unterscheidung Groß-/Kleinschreibung wird von
Clients nicht realisiert, daher wird durch Konfiguration des Servers versucht,
die Unterscheidung nachträglich wieder möglich zu machen (Parameter:
password level)
- NFS: Weiterexport importierter Filesysteme möglich, da der smbd
als User-Level Prozeß läüft, kann der gesamte an der
UNIX-Maschine sichtbare Filebaum per Samba exportiert werden (teilweise
Abhilfe durch Parameter wide links)
- Netzlast: Das SMB-Protokoll benutzt Broadcasts und keep alive
Pakete, um das Browsing an den Clients und das Aufrechterhalten von Verbindungen
zu ermöglichen. In großen Netzen kann das zu Problemen führen.
Samba ist gegenüber PC-NFS grundsätzlich schneller, da ein verbindungsorientiertes
Protokoll benutzt wird.
- Stabilität: Bei Ausfall des Servers brechen alle Verbindungen
zu Clients zusammen, nach dem Neustart des Servers müssen sich Nutzer
an den Clients neu anmelden.
Zusammenfassung
Samba
- bietet Möglichkeiten des Aufbaus einer kostenfreien Serverplattform
für Windows-Clients
- stabil
- einfach zu administrieren
- Probleme sind nicht zu unterschätzen, werden aber durch Vorteile
aufgewogen
Weitere Informationen
- Köhntopp, K.: Symbiose - Kostenlose Unix-Anbindung mit Samba,
iX 1/96, Seiten 52-58
- Weber, J.: Samba 1.9.15 - NetBIOS für UNIX Systeme, GUUG
Frühjahrsfachgespräch 1996, Köln, Materialien zu Tutorials
und Workshops, CD-ROM
- http://lake.canberra.edu.au/pub/samba/
- Fischer, G.; Köbe, R.; Müller, T.; Schier, T.: PC-Integration
via Cache-Server in Mitteilungen
des URZ 3/96
- Junghänel, J.; Köbe, R.; Schier, T.: PC-Integration
via Samba und AFS
Thomas Müller, 20.02.97