smbd — Server, der SMB-/CIFS-Dienste für Clients anbietet.
smbd [-D] [-F] [-S] [-i] [-h] [-V] [-b] [-d <Debug-Ebene>] [-l <Log-Verzeichnis>] [-p <Port-Nummer(s)>] [-O <Socket-Option>] [-s <Konfig-Datei>]
Dieses Werkzeug ist Teil der Samba(7)-Suite.
smbd ist der Server-Daemon, der Dateifreigaben und Druckdienste für Windows-Clients bietet. Der Server bietet Raum für Dateien und Druckerdienste für Clients mit Hilfe des Protokolls SMB (oder CIFS). Dieses ist kompatibel mit dem LanManager-Protokoll und kann LanManager-Clients bedienen. Dazu gehören MSCLIENT 3.0 für DOS, Windows for Workgroups, Windows 95/98/ME, Windows NT, Windows 2000, OS/2, DAVE für den Macintosh und smbfs für Linux.
Eine umfangreiche Beschreibung der Dienste, die der Server anbietet, ist in der Manpage zur Konfigurationsdatei enthalten, in der die Attribute jener Dienste eingestellt werden (siehe smb.conf(5)). Diese Manpage beschreibt nicht die Dienste, sondern konzentriert sich auf die administrativen Aspekte des Serverbetriebs.
Beachten Sie bitte, dass es beim Betrieb dieses Servers erhebliche Folgen für die Sicherheit gibt, und die Manpage zu smb.conf(5) sollte unbedingt gelesen werden, bevor mit der Installation begonnen wird.
Eine Sitzung wird immer dann erzeugt, wenn ein Client eine verlangt. Jeder Client erhält eine Kopie des Servers für jede Sitzung. Diese Kopie bedient dann während der Sitzung alle Verbindungen, die der Client herstellt. Wenn alle Verbindungen ihres Clients geschlossen sind, terminiert die Kopie des Servers für diesen Client.
Die Konfigurationsdatei sowie alle Dateien, die sie lädt, werden automatisch einmal pro Minute geladen, falls sie sich verändern. Sie können ein erneutes Laden erzwingen, indem Sie ein SIGHUP an den Server senden. Das erneute Laden der Konfigurationsdatei hat keinen Einfluss auf Verbindungen zu Diensten, die bereits hergestellt sind. Der Benutzer muss sich entweder von dem Dienst trennen oder smbd muss terminiert und neu gestartet werden.
Falls angegeben bewirkt dieser Parameter, dass der Server als Daemon arbeitet, d.h. er koppelt sich selbst ab und läuft im Hintergrund, wo er Anfragen an den entsprechenden Port weiterleitet. Der Betrieb als Daemon ist die empfohlene Art und Weise, smbd auf Servern zu betreiben, die öfter als nur gelegentlich Datei- und Druckdienste anbieten. Diese Option wird eingeschaltet, falls smbd von der Kommandozeile einer Shell ausgeführt wird.
Falls angegeben bewirkt dieser Parameter, dass der smbd-Hauptprozess nicht zum Daemon wird, d.h. sich doppelt teilt und vom Terminal abkoppelt. Kindprozesse werden weiterhin ganz normal erzeugt, um jede Verbindungsanfrage zu bedienen, aber der Hauptprozess existiert nicht. Dieser Betriebsmodus eignet sich beim Einsatz von smbd unter Prozessüberwachungswerkzeugen wie supervise und svscan aus dem Paket daemontools von Daniel J. Bernstein, oder dem AIX-Prozessmonitor.
Falls angegeben bewirkt dieser Parameter, dass smbd als Logdatei die Standardausgabe anstelle einer anderen Datei verwendet.
Falls angegeben bewirkt dieser Parameter, dass der Server "interaktiv" läuft, also nicht als Daemon, selbst dann nicht, wenn der Server von der Kommandozeile einer Shell ausgeführt wird. Das Setzen dieses Parameters negiert den impliziten Deamon-Modus bei der Ausführung von der Kommandozeile. smbd schreibt seine Logdaten ebenfalls auf die Standardausgabe, als ob der Parameter -S angegeben wäre.
Gibt die Versionsnummer des Programms aus.
Die angegebene Datei enthält die Konfigurationdetails, die der Server benötigt. Die Information in dieser Datei ist zum Teil Server-spezifisch, z.B. welche printcap-Datei benutzt werden soll, enthält aber auch Beschreibungen aller Dienste, die der Server anbieten soll. Siehe smb.conf für weitere Informationen. Der Standardname der Konfigurationsdatei wird beim Kompilieren bestimmt.
Debug-Ebene ist ein Integer von 0 bis 10. Falls dieser Parameter nicht angegeben wird, ist der Vorgabewert dafür Null.
Je höher der Wert ist, desto mehr Details über die Serveraktivität werden in den Log-Dateien abgespeichert. Auf der Ebene 0 werden nur kritische Fehler und ernstzunehmende Warnungen geloggt. Ebene 1 ist eine vernünftige Ebene beim alltäglichen Betrieb - dabei wird eine kleine Informationsmenge über die ausgeführten Operationen erzeugt.
Die Ebenen höher als 1 erzeugen beachtliche Mengen von Logdaten, und sollten nur bei der Suche nach Problemen verwendet werden. Die Ebenen größer als 3 sind nur für Entwickler gedacht und erzeugen RIESIGE Mengen an Logdaten, von denen die meisten extrem kryptisch sind.
Beachten Sie, dass durch die Angabe dieses Parameters an dieser Stelle der Parameter log level in der Datei smb.conf überschrieben wird.
Dateiname für Log-/Debug-Dateien. Die Dateierweiterung ".client" wird angefügt. Die Log-Datei wird vom Client niemals entfernt.
Gibt eine Zusammenfassung der Kommandozeilenoptionen aus.
Gibt Informationen darüber aus, wie Samba kompiliert wurde.
Portnmmer(n) ist eine mit Leerzeichen oder Kommata getrennte Liste von TCP-Ports, die smbd abhören soll. Der Vorgabewert dafür wird aus dem Parameter ports in smb.conf übernommen.
Die Standard-Ports sind 139 (bei SMB über NetBIOS über TCP) und Port 445 (bei einfachem SMB über TCP).
Falls der Server vom Meta-Daemon inetd gestartet werden soll, muss diese Datei die passende Startupinformation für den Meta-Daemon enthalten.
(oder welches Initialisierungs-Skript Ihr System benutzt.)
Wenn der Server beim Hochfahren als Daemon gestartet wird, muss diese Datei eine passende Startupsequenz für den Server enthalten.
Falls der Server vom Meta-Daemon inetd betrieben wird, muss diese Datei eine Abbildung von Dienstname (z.B. netbios-ssn) auf den Dienstport (z.B. 139) und den Protokolltyp (z.B. tcp) enthalten.
Dies ist der vorgegebene Ort der Konfigurationsdatei smb.conf(5) des Servers. Andere Orte, an denen diese Datei häufig installiert ist, sind /usr/samba/lib/smb.conf und /etc/samba/smb.conf.
Diese Datei beschreibt alle Dienste, die der Server den Clients zur Verfügung stellt. Siehe smb.conf(5) für weitere Informationen.
Auf manchen Systemen kann smbd die uid nach einem Aufruf von setuid() nicht wieder auf root zurücksetzen. Solche Systeme werden auch "Trapdoor-uid"-Systeme genannt. Sollten Sie über ein solches System verfügen, können Sie von einem Client (z.B. einem PC) nicht gleichzeitig Verbindungen unter zwei verschiedenen Benutzern herstellen. Beim Versuch, einen zweiten Benutzer zu verbinden, erhalten Sie Meldungen der Art "Zugriff verweigert" oder ähnlich.
Wenn kein Druckername für irgendwelche Druckdienste angegeben ist, verwenden die meisten Systeme den Wert dieser Variablen (oder lp, falls diese Variable nicht definiert ist) als Namen des Druckers. Das hängt jedoch nicht vom Server ab.
Samba verwendet PAM bei der Authentifikation (wenn es ein Passwort in Klartext erhält), bei der Überprüfung von Konten (ist dieses Konto deaktiviert?) sowie bei der Verwaltung von Sitzungen. Der Grad, bis zu dem PAM von Samba unterstützt wird, ist eingeschränkt durch die Beschränkungen des SMB-Protokolls und den Parameter obey pam restrictions in smb.conf(5). Wenn dieser gesetzt ist, gelten folgende Einschränkungen:
Konto-Validierung: Alle Zugriffe auf einen Samba-Server werden mit PAM daraufhin überprüft, ob das Konto gültig ist, nicht deaktiviert ist und sich zu dem Zeitpunkt anmelden darf. Das gilt auch für verschlüsselte Anmeldungen.
Sitzungs-Verwaltung: Wenn keine Sicherheit auf der Ebene von Freigaben verwendet wird, müssen Benutzer die Sitzungsüberprüfung durch PAM durchlaufen, bevor der Zugriff erlaubt wird. Man beachte jedoch, dass dies bei der Sicherheit auf der Ebene von Freigaben umgangen wird. Man beachte auch, dass manche älteren PAM-Konfigurationsdateien eine zusätzliche Zeile für die Unterstützung von Sitzungen benötigen.
Diese Manpage ist korrekt für die Version 3.0 der Samba-Suite.
Die meisten vom Server ausgegebenen Diagnosemeldungen werden in einer bestimmten Logdatei gespeichert. Der Name der Logdatei wird zum Zeitpunkt des Kompilierens angegeben, kann aber auf der Kommandozeile überschrieben werden.
Die Anzahl und Art der verfügbaren Diagnosemeldungen hängt von der Debugebene ab, die der Server benutzt. Wenn Sie Probleme haben, setzen Sie die Debugebene auf 3 und schauen Sie die Log-Dateien durch.
Die meisten Meldungen sind einigermaßen selbsterklärend. Als diese Manpage erzeugt wurde, gab es leider zu viele Diagnosemeldungen im Quellcode, als dass jede einzelne beschrieben werden könnte. Zu diesem Zeitpunkt ist das Beste, was Sie machen können, ein grep auf dem Quellcode, um die Bedingungen herauszufinden, die zu der Diagnosemeldung geführt haben, die Sie sehen.
Ein SIGHUP an smbd zu senden, bewirkt, dass er seine Konfigurationsdatei smb.conf innerhalb kurzer Zeit erneut lädt.
Zum Herunterfahren eines smbd-Prozesses eines Benutzers, wird empfohlen SIGKILL (-9) NICHT zu benutzen, außer als letztes Mittel, weil das den Shared-Memory-Bereich in einen inkonsistenten Zustand versetzen kann. Die sichere Art, einen smbd zu terminieren, besteht darin, ihm das Signal SIGTERM (-15) zu schicken und darauf zu warten, dass er sich selbst beendet.
Die Debug-Log-Ebene von smbd kann mit Hilfe des Programms smbcontrol(1) erhöht oder erniedrigt werden (SIGUSR[1|2]-Signale werden seit Samba 2.2 nicht mehr verwendet). Das geschieht, damit vorübergehende Probleme diagnostiziert werden können, während man sich weiterhin auf einer normalerweise tieferen Logebene befindet.
Beachten Sie, dass die Signalhandler beim Schreiben in eine Debugdatei nicht re-entrant in smbd sind. Das heisst, Sie sollten warten, bis smbd wieder in einem Zustand ist, in dem es auf einen eintreffenden SMB wartet, bevor Sie solche abschicken. Man kann Signalhandler sicher machen, indem die Signale vor dem ausgewählten Aufrud entsperrt und hinterher wieder gesperrt werden, was aber die Performanz beeinträchtigen würde.
hosts_access(5), inetd(8), nmbd(8), smb.conf(5), smbclient(1), testparm(1), testprns(1) sowie die Internet RFCs rfc1001.txt und rfc1002.txt. Außerdem ist die CIFS- (früher SMB-) Spezifikation als Link auf der Webseite http://samba.org/cifs/ verfügbar.
Die originale Samba-Software und die zugehörigen Werkzeuge wurden von Andrew Tridgell geschrieben. Samba wird nun vom Samba-Team als ein Open-Source-Projekt entwickelt, ähnlich wie der Linux-Kernel.
Die originalen Samba-Manpages wurden von Karl Auer geschrieben. Die Manpage-Quelltexte wurden ins YODL-Format konvertiert (ein weiteres exzellentes Stück Open-Source-Software, verfügbar unter ftp://ftp.icce.rug.nl/pub/unix/) und für die Samba 2.0-Release von Jeremy Allison aktualisiert. Die Umwandlung ins DocBook-Format wurde von Gerald Carter für Samba 2.2 durchgeführt. Die Umwandlung in DocBook für XML 4.2 wurde von Alexander Bokovoy für Samba 3.0 durchgeführt.