Samba Dokumentation
Dokumentation zu Samba Praxis
Was ist Samba?
Samba besteht aus mehreren Werkzeugen, mit denen Resourcen wie Drucker und Dateien über das Netzwerk plattformübergreifend, genutzt werden können. Samba verwendet das von Microsoft und IBM entwickelte Server Message Block (SMB) Protokoll, um ursprünglich Daten zwischen Windows Clients und UNIX Servern auszutauschen.
Über das SMB-Protokolls können Windows Clients ohne Zusatzsoftware mit Samba kommunizieren. Samba kann auf zahlreichen Plattformen ausgeführt werden, einschließlich der meisten UNIX-Derivaten, OpenVMS, OS/2, Amiga, Dos, und NetWare. Dadurch wird es möglich durch ein einziges Programm auf dem Server allen PCs Dateien und Drucker zur Verfügung zu stellen.
Grundsätzliches
Mit Samba ist es möglich einen PDC für ein Windows Netzwerk bereitzustellen. Ein BDC ist auch möglich aber sehr aufwendig. Ab Version 2.1.a lässt sich ein kompletter NT Server auch für Windows 2000 und XP einrichten. Unterstützung für Active Direktory ist in Arbeit und soll mit der Version 3 verfügbar sein. Damit kann ein kompletter Win 2000 Server ersetzt werden.
Damit lässt sich Samba auch in durchgängige Windows-Lösungen nahtlos einfügen.
In Netzwerken mit Windows 9x, NT, 2000, XP Clients ist Samba eine günstige und stabile Lösung und auch im Vergleich zu Windows NT oder 2000 eine sehr schnelle. Linux ist unter Samba auch mit alter Hardware zufrieden, ein Pentium 166 tut es als Fileserver, ohne Einschränkungen, allemal.
Benötigte Hardware
In der Praxis habe ich Systeme ab Pentium mit 166 MHz mit 64 MB Arbeitsspeicher eingerichtet. Diese Systeme sind aber meist noch für weitere Aufgaben im Netzwerk zuständig. Genutzt werden die Dateidienste auf diesen Systemen von bis zu 40 Personen, auch mit großen Dateien, z. B. Zeichnungen, Bilder.
Im Rechner muss natürlich eine Netzwerkkarte eingebaut sein. Auf Netzwerkkarten Rtl (8029/8139)Chippsatz sollte in einem Fileserver, wenn möglich, verzichtet werden. Leider ist er auf den meisten billigen Karten zu finden. Der Chipsatz erzeugt eine höhere Prozessorlast als andere, sonst laufen sie aber zuverlässig. Auf Clients können diese Karten auch Problemlos eingesetzt werden.
Es muss nicht unbedingt eine 3 COM Netzwerkkarte sein. Ich verwende gerne Netzwerkkarten mit Dec / Tulip Chipsätzen, die sind preiswert und haben sich in der Praxis bewährt.
Bei eingebauten Karten kann der Typ der Netzwerkarte mit dem Befehls lspci -v festgestellt werden
Ich verwende hauptsächlich SuSE, im Moment in der Version 8.1, aus diesem Grund beziehen ich mich hier auch teilweise auf Einrichtungen die hierfür spezifisch sind.
Begriffsbestimmung: PDC Primärer Domain Controller, die Verwaltung der Benutzer und Ihrer Rechte erfolgt zentral auf dem Server. Benutzer werden zentral auf dem Server angelegt. Die Clients werden der Domain zugeordnet. Wird jetzt eine Anmeldung am Client durchgeführt so holt sich der Client die zur Anmeldung notwendigen Informationen vom Server. Dadurch wird der Administrationsaufwand wesentlich reduziert. BDC Backup Domain Controller, über nimmt die Verwaltung wenn der PDC ausgefallen ist. Ist kein DC erreichbar ist nur eine Lokale Anmeldung am Client möglich. Dazu muss ein Benutzerkonto vorhanden sein. Unter win 9x kann die Anmeldung mit <Esc> abgebrochen werden. Unter Nt, 2000 und XP ist keine Anmeldung am Client möglich wenn der lokale Benutzeraccout fehlt.
Kurzer Exkurs Netzwerk einrichten
Die Einrichtung der Netzwerkkarte sollte mit YaST keine Probleme bereiten. In YaST unter Netzwerk Basis wird die Netzwerkkarte konfiguriert.
Anschließend kann das Netzwerk mit rcnetwork start von Hand gestartet werden. Mit rcnetwork status wird der Zustand der eingerichteten Netzwerkkarten angezeigt, mit stop Netzwerk angehalten und mit restart neu gestartet.
Mit ifconfig kann überprüft werden, zu welchem Ergebnis die vorgenommenen Netzwerkeinstellungen führen. Hier sollten alle eingerichteten Netzwerkkarten angezeigt werden.
Weitergehend Verbindung nach außen überprüft werden. Mit ping, iptraf, route ist das möglich. Am einfachsten ist dies mit ping IP-Zielrechner. z. B. ping 10.0.0.12. Wenn hier zeilenweise Ausgaben kommen, funktioniert die Verbindung. Gestoppt wird die Verbindung mit <STRG C>. Danach wird eine Zusammenfassung angezeigt. Wichtig ist hier 0% packet loss. Kommt hier keine Verbindung zustande sollte nicht zuletzt an eine laufende Firewall gedacht werden.
Zur Netzwerkeinrichtung sind zahlreiche Anleitungen vorhanden diese helfen wenn es hier nicht gleich wie erwünscht klappen sollte.
Von der Client Seite aus, z.B. unter Windows, kann unter Start Ausführen ipconfig, ping usw wie unter Linux genutzt werden um die Verbindung der Rechner untereinander zu prüfen
Software installieren
Die aktuelle Samba-Version kann unter www.samba.org aus dem Internet beschafft werden. Die ca 6 MB große Datei wird nach dem Download mit tar -xvzf samba-XXX.tar.gz entpackt. Anschließend ./configure im entpackten /source Verzeichnis ausführen, dann make und zum Abschluss make install.
Mit YaST die benötigte Software nachinstalliert. Samba besteht aus Server und Client. Zur Kommunikation mit Windows werden beide Programmteile benötigt.
Systemeinstellungen um Samba zu starten
Samba kann als eigenständiger Dämonen oder durch inetd gestartet werden. Bei SuSE sind die Einträge in den entsprechenden Dateien schon vorhanden und müssen nur auskommentiert werden.
YaST aufrufen um die Konfigurationsdatei zu verändern.
System, Runlevel-Editor, Runlevel-Eigenschaften, smb und nmb in Runlevel 3 und 5 starten. Nach erfolgreichem Speichern der Einstellungen wir geprüft ob die notwendigen Dienste smbd und nmbd auch tatsächlich laufen.
Nach der Eingabe von ps aux sollten die beiden Zeilen in der Liste zu finden sein ../nmbd und ../smbd.
Beispiel:
root 1123 0.0 0.1 3736 1644 ? S Mar03 0:01 /usr/lib/samba/nmbd-classic -D
root 1124 0.0 0.1 3672 1352 ? S Mar03 0:00 /usr/lib/samba/smbd-classic -D
inetd Starten zur Konfiguration über das Netzwerk.
Um Samba über das Netzwerk zu administrieren, können die Grundlagen jetzt eingerichtet werden. Zu beachten ist hierbei, daß durch die Einrichtung dieser Möglichkeit Sicherheitslücken entstehen können. Die Möglichkeit zum Einsatz von SWAT wird über den Dämon inetd freigegeben. Die Konfigurationsdatei inetd.conf muß folgende Zeile eingetragen oder auskommentiert werden:
swat stream tcp nowait.400 root /usr/sbin/swat/ swat
Daneben ist noch die Datei /etc/services zu überprüfen. Hier muß die folgende Zeile vorhanden sein: Swat 901/tcp
Hinweis:
Es ist aber auch möglich die grafische Einrichtungsoberfläche SWAT über Webmin zu nutzen so sind diese Einstellungen nicht notwendig. Diese Möglichkeit ist in jedem Fall vorzuziehen da Webmin einen höheren Sicherheitsstandard darstellt.
Funktion von Samba überprüfen
Die Überprüfung erfolgt mit testparm. Testparm ist die Rechtschreibprüfung für smb.conf. Die Überprüfung erfolgt auf syntaktische und lexikalische Fehler. Gedankliche Fehler werden nicht angezeigt. Mit testparm -L HostIP kann von einem entfernten Rechner aus überprüft werden, ob auf den Sambaserver zugegriffen werden kann. Testparm kann auch nach Änderungen an der smb.conf genutzt werden um die Datei auf Fehler zu kontrollieren.
Läuft testparm ohne Fehlermeldung durch, so kann mit ps fax|grep bd überprüft werden, ob die beiden Daemonen laufen.
Wenn alles korrekt läuft könnte die Ausgabe so aussehen:
sky:~ # ps fax|grep bd
1123 ? S 0:00 /usr/lib/samba/nmbd-classic -D
1124 ? S 0:00 \_ /usr/lib/samba/nmbd-classic -D
1707 ? S 0:00 /usr/lib/samba/smbd-classic -D
Die Ausgabe von ps fax|grep bd oder ps aux sollte auf die beiden Zeilen mit den Endungen /usr/sbin/nmbd -D und /usr/sbin/smbd -D überprüfen. Sind die Einträge vorhanden, ist bis hierher alles in Ordnung.
Sollte hier nmbd nicht gestartet werden, so liegt dies meist daran, das mehrere Netzwerkkarten im System eingebaut sind und in der Datei smb.conf beim der Option interface = kein Eintrag vorhanden ist. Bei mehreren Netzwerkkarten muss angegeben werden über welche Netwerkkarte Samba Daten zur Verfügung stellen soll.
Zum Abschluss kann lokal mit smbclient -L IP-Adresse versucht werden eine Liste der freigegebene Verzeichnisse anzuzeigen. Hierzu ist die Eingabe eines Passworts notwendig. Wenn es hier Probleme gibt, so sollte in den Log Dateien nachgesehen werden. Hilfreich ist hier folgendes Vorgehen. Putty auf dem Windows Rechner installieren um Von Windows aus während der Einrichtung die Log-Dateien zu beobachten. In einem Putty-Fenster root-Rechte beschaffen, mit tail -f /var/log/messages die die log-Datei fortschreitend während der Einrichtung eingesehen werden um Hinweise auf Probleme zu erhalten.
Wenn es bis hierhin funktioniert, kann an die Einrichtung der Freigaben gegangen werden.
Benutzerverwaltung
Die Zugriffskontrolle wird in Samba in verschiedenen Security Levels ermöglicht.
Eingestellt wird es in der smb.conf mit security = Sicherheitsstufe
Das Verfahren der Ressourcen-Absicherung auf dem Server und das Verfahren wie sich der Benutzer authentifizieren muss.
Die einfachste Art, Ressourcen für den Benutzer freizugeben, erreicht man mit der Einstellung security = SHARE . Diese Stufe bietet minimalen Schutz gegen unbefugtes Lesen und Schreiben. Es ist leicht einzurichten. Jeder Benutzer der irgendein Passwort für das Share kennt, erhält zumindest lesenden Zugriff. Diese Einstellung ist für CD-Rom und Printserver oder im privaten Umfeld geeignet.
Anspruchsvoller gestaltet sich die Benutzerverwaltung mit security = USER . Der Benutzer identifiziert sich einmalig mit Benutzernamen und Passwort. Ist der Benutzer am Server angemeldet, darf er alle für diesen Benutzer freigegebenen Shares auf dem Server im Rahmen seiner Linux-Benutzerrechte lesen und verändern. Unter Umständen kann es sinnvoll sein, Nutzerkennung und Passwort des Linux-Systems aus /etc/passwd und /etc/shadow direkt für Samba zu nutzen. Hierbei besteht aber das Problem das dazu das Passwort im Klartext an den Server übertragen werden muss.
Passworter
Für die Verwendung von verschlüsselten Passwörtern sind drei Einstellungen notwendig.
security = user
encrypted passwords = yes
smb passwd file = /etc/samba/smbpassw
Die Passwortdatei muss nicht unbedingt angegeben werden, wenn man den Standardpfad und -Namen verwendet. Auf jeden Fall sollte die Datei nur für Root lese und schreibbar sein. Sie enthält die verschlüsselten Windows-Passwörter. Außerdem Ist die Benutzer-ID des Unix-Accounts abgelegt.
Um Benutzer für Samba anzulegen, müssen diese erst im System selbst angelegt werden, in exakt der selben Schreibweise. Rechte auf Daten werden nur im Rahmen eines Linux – Datei systems vergeben. Nach dem Anlegen der Benutzer im System selbst müssen diese noch für Samba angelegt werden.
Zur Pflege der Passwortdatei dient der Befehl smbpasswd -a martin, legt den Benutzer Martin an wenn unter Linux ein ein entsprechender Benutzer vorhanden ist.
- passwd -l martin schaltet den Linux-Account ab
- smbpasswd martin wird genutzt um das Passwort vom Administrator
zu ändern
- smbpasswd wird vom Benutzer verwendet um sein
Passwort zu ändern
- smppasswd -x martin wird zum löschen
des Accounts verwendet
Die smbpasswd kann auch über das Web-Interface Swat verwaltet werden. Wenn Benutzer ihr eigenes Passwort über swat ändern sollen, darf der der Linux-Account nicht durch passwd -l deaktiviert sein. Interaktive Logins können trotzdem unterbunden werden , indem der Admin in der /etc/passwd /bin/false als Login-Shell schreibt. Die Alternative ist /usr/bin/smbpasswd selbst als Shell einzusetzen und die Passwörter über Putty zu ändern.
Aus Sicherheitsgründen sollte für den Linux-Accout und für Samba unterschiedliche Passwörter verwendet werden. In Umgebungen in den Benutzer aber einen interaktiven zugriff auch unter Linux benötigen bietet sich die automatische Passwort-Synchronisierung zwischen Samba und Linux an. Folgende Einstelllungen in der smb.conf sin dazu notwendigen.
unix passwort sync = yes
passwd program = /usr/bin/passswd %u
passwd chat = Newpassword*%n\n newpassword* %n\n changed
die hier gezeigte Änderung bezieht sich auf SuSE 8.1 und muss für andere Linux-Installationen angepasst werden.
Jedes Mal wenn ein Benutzer sein Passwort mit smbpasswd ändert wird zuvor das Passwort in der /etc/passwd auf den neuen Wert gesetzt. Damit hierfür das alte Passwort nicht abgefragt wird, läuft der Vorgang mit root Berechtigung. Schlägt der Wechsel an irgendeiner Stelle fehl, bleibt auch das Samba Passwort unverändert.
Die Passwort-Synchronisation hat ihre Tücken. Wenn Prüfungen des Passworts durchgeführt werden und das Passwort zu einfach zu kurz usw ist wird das Passwort nicht gewechselt. Die Fehlermeldungen die durch smbpasswd ausgegeben werden helfen bei der Eingrenzung des Problems auch nicht weiter.
Sobald mehrere Samba-Server in einem Netz sind wir die separate Benutzer-Verwaltung sehr aufwändig.
Eine Alternative bietet security = server in der smb.conf. Die einzelnen Linux-Server prüfen die Benutzerberechtigung nicht mehr selbst sondern leiten sie an einen zentralen Server weiter. Hierbei werden die Benutzerkonnten nur einmal zentral verwaltet. Ist schon eine NT-Domäne mit allen Benutzer-Konten vorhanden braucht der Admin nichts weiter zu tun als mit dem zusätzlichen Eintrag passwort server = Servername in die smb.conf zu schreiben. Ie Angabe mehrerer Server ist möglich, sie sind dann durch Leerzeichen zu trennen.
Um Ressourcen des Samba-Servers zu nutzen muss der Benuzer allerdings auch dort einen Linux-Account besitzen, er kann jedoch ohne Login Berechtigung angelegt werden und sogar mit ungültigem Passwort gesperrt sein. Um dem Admin die Arbeit zu erleichtern gibt es inzwischen Lösungen.
add user script = Skriptaufruf %u
delete user script = Sriptaufruf %u
sowie die zusätzliche Daemon-Software winbindd ( man smb.conf, man winbindd). Als Passwortserver kann neben Windows Domain-Controllern jerder Samba-Server dienensofern er selbst eine Benutzerdatenbank führt, dazu muss er nicht einmal PDC sein.
Wer es allerdings ganz richtig haben möchte, nutzt security = domain. Wie der konfiguriert wird schreibe ich unter PDC einrichten
Linux Dateirechte
Samba verändert die Rechte bestehender Unix Dateien nicht. Wenn eine Datei neu erstellt wird, muss Samba wissen , welche Rechte der Eigentümer, die Gruppe und alle anderen Benutzer bekommen sollen. Diese Rechte werden aber noch weiter verarbeitet.
Für Dateien und Verzeichnisse gilt, das bestehende Verzeichnisse in Ruhe gelassen werden. Für neu erstellte Verzeichnisse und Dateien werden Zugriffsrechte zugewiesen.
Informationen über Dateien werden angezeigt nach der Eingabe von ls -l. Dadurch werden zusätzliche Informationen zum Datei- bzw. Verzeichniseintrag wie Zugriffsrechte, Eigentümer, Gruppenzugehörigkeit und Größe ausgegeben.
Erklärung der Unix-Datei Attribute
Rechte Das erste Zeichen dieses Feldes bezeichnet den
Dateityp, Hierbei steht d für
Verzeichnis, l für
Link und – für eine normale Datei. Die folgenden 9 Zeichen
geben die Z Zugriffsrechte für den Besitzer, die Gruppe und
alle anderen Benutzer an (jeweils drei Zeichen). r steht für
lesen, w für schreiben, x für ausführen.
Besitzer Der Eigentümer der Datei. Siehe man Page von chown (man chown).
Gruppe Die Gruppenzugehörigkeit der Datei. Siehe Manuale-Page von chgrp
Größe Die Größe der Datei in Bytes
letzte Änderung Das Datum der letzten Änderungen
der Datei. Bei Dateien, deren letzte
Änderung über ein
Jahr zurückliegt, wird anstelle der Uhrzeit das Jahr angegeben.
Name Name der Datei oder des Verzeichnisses.
Die Dateirechte werden über die Buchstaben r = lesen, w = schreiben, x = ausführen, oder über die Oktalzahlen dargestellt. Die Dateirechte mit Zahlen von 0 keine Datei Rechte , bis 7 alle Rechte. Auch hier gilt ein Stelle für den Besitzer, eine für die primäre Gruppe und eine für alle anderen. Auch durch die Oktalzahlen können die Dateirechte geändert werden.
Die Ziffern setzen sich so zusammen 4 = Leserecht, 2 = Scheibrecht, 1 = Ausführungsrecht
Es gibt drei Möglichkeiten, um unter Unix die Dateirechte für Dateien und Verzeichnisse zu ändern: chmod, chown und chgrp. Alle drei arbeiten anders und haben auch andere Ergebnisse zu Folge.
chmod ändert die Zugriffrechte einer Datei. Durch folgenden Aufruf: chmod ein Leerzeichen gefolgt von folgenden Optionen. g = Gruppe, u = Users, o = Others, a = alle. Ohne Lerrzeichen folgt ein + oder – Zeichen. wieder ohne Leerzeichen die Liste der rechte die gegeben oder genommen werden sollen, r = Lesen, w = Schreiben, x = Ausführen. Im Anschluss daran folgt durch ein Leerzeichen getrennt der Dateiname. Chmod kann nur der Eigentümer und Root erfolgreich verwenden.
Beispiele:
chmod go-rwx privat bedeutet allen Fremden Anwendern jeglichen Zugriff auf eine Datei privat zu verwehren.
chmod -R ug+rw * bedeutet, alle Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen das Lese- und Schreibrecht für sich und die jeweilige Dateigruppe einräumen
chown -R user /daten bedeutet, alle Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen dem Benutzer user als Eigentümer zuzuordnen
chgrp -R gruppe /daten bedeutet, alle Dateien im aktuellen Verzeichnis und allen Unterverzeichnissen werden Gruppe zugeordnet.
Die Gruppenattibute einer Datei werden durch den Befehl chgrp anschließend Leerzeichen, dann der Name der Gruppe und wieder ein Leerzeichen gefolgt von dem Dateinamen.
Beispiele:
chgrp users Dateiname Die Datei wird der Gruppe users zugeordnet.
Der Eigentümer und die Gruppe einer Datei werden durch chown geändert
Beispiele:
chown root Dateiname
chown paul.users Dateiname
Im ersten Beispiel wird Root neuer Eigentümer der Datei. Im zweiten erhält die Datei den neuen Eigentümer Paul und die Gruppe Users.
Nur Root darf die Eigentümerschaft von Dateien ändern.
Benutzer anlegen
Bei der Wahl des Benutzernamens sollte man sich auf Kleinbuchstaben und Ziffern beschränken. Das erste Zeichen muss auf jeden Fall ein Buchstabe sein. Leerzeichen Unterstriche und Ausrufezeichen sind zwar erlaubt, können aber zu Problemen führen.
Benutzer für Unix anlegen:
useradd -g users -d “/home/mustermann“ -c „Hans Mustermann“ -s „/bin/false“ -m mustermann
Mit diesem Befehl wird der Benutzer „mustermann“ mit diesen Einstellungen angelegt:
Benutzername: „mustermann“
Primäre Gruppe: „users“
Homeverzeichnis: „/home/mustermann“
Beschreibung des Benutzers:“Hans Mustermann“
Login Shell:“/bin/false“ –kann sich nicht anmelden
Jetzt muss dieser Benutzer noch in Samba angelegt werden:
Mit smbpasswd werden neue Benutzer angelegt, als Auszug folgende Parameter:
-a Ein Benutzer wird hinzugefügt
-x Einen Benutzer löschen
-e Einen Benutzer auf aktiv setzen
-d Einen Benutzer auf inaktiv setzen
smbpasswd -a -e mustermann
Passwort
Passwort wiederholen
Jetzt sollte sich der Benutzer „mustermannn“ anmelden können
Die Überprüfung, ob die Benutzer in Samba tatsächlich angelegt sind, kann in der Datei /etc/smbpasswd/ überprüft werden. Ist der Benutzer korrekt angelegt, so steht der Benutzername in einer Zeile und dahinter das verschlüsselte Passwort.
Benutzerverwaltung und Windows Benutzernamen
Beispiel zum Anmelden:
Den Windows Benutzernamen „Gerd Zeiler“ unter Samba PDC anmelden. UserMap anlegen in der steht, daß User Gerd Zeiler der Linux-User gz ist. Eintrag in der smb.conf, username map= /etc/samba/username.map. In der username.map steht dann
!gz = „Gerd Zeiler“
!fz = „Franz Zeiler“
guest = *
Das mappt den Windows-User Gerd Zeiler auf den Unix-User gz und einen Windows-User Franz Zeiler auf den Unix-User fz und alle anderen auf den Unix user guest.
Das Ausrufezeichen am Anfang teilt samba mit, das<es nach einem Treffer in der Zeile nicht weiter suchen soll. Das ist notwendig, weil Gerd Zeiler ja sonst in der „Catch all“gefunden wird.
Die usermap Datei wird zeilenweise gelesen. Jede Zeile besteht aus einem einzelnen Unix Benutzernamen und einem oder mehreren Client Benutzernamen, die durch das = Zeichen getrennt werden. Wird ein Clientbenutzername während der Anmeldung in einer Zeile gefunden, wird der Benutzername auf den Unix Benutzername abgebildet. Auch wenn ein Benutzer gefunden wurde wird die Datei weiter durchsucht.
Auch Unix Gruppen können durch den Syntax @group angegeben werden. In diesem Fall wird jeder Benutzer der Gruppe @group an der Stelle eingefügt.
Zeilen die mit dem Zeichen # und ; werden ignoriert und dienen als Kommentarzeilen. Bei ! Wird nur für Benutzer weitergesucht, für die noch keine Zuordnung gefunden wurde.
Beispiele:
root = admin administrator
Hier werden die Benutzer admin und administrator des sich anmeldenden Clients auf den Linux Benutzer root des Samba Servers abgebildet.
sys = @system
Hier wird Samba angewiesen, das jeder Benutzer der Gruppe system auf den Unix Benutzer sys abzubilden ist.
Verzeichnisse anlegen
Vorgehen beim Anlegen von Verzeichnissen. Vorausgesetzt wird, das Unix Benutzer und Gruppen angelegt und zugeordnet wurden. Die Samba Benutzer und Gruppen anlegen und zuordnen
Verzeichnisse erstellen und Datei Attribute setzen.
Was ist los, Transparenz durch Log Dateien
Zuerst kann in der /var/log/messages nachgesehen werden ob Hinweise auf Fehler zu finden sind. Die Datei kann fortschreitend mit tail -f /var/log/messges beobachtet werden.
Die log zu Samba Dateien liegen meistens in /var/lock/samba. Sollte etwas nicht klappen, so kann hier nach Informationen zur Fehlersuche gesehen werden. Die Dateien werden erst erstellt, wenn zu zu protokollierenden Ereignissen kommt. Die Dateien sind log.nmbd und log.smbd. Was protokolliert werden soll, wird in der Samba Konfigurationsdatei smb.conf eingestellt.
Mögliche Fehler:
bad Password hier sollte die Eingabe erst nocheinmal versucht werden, dann sollte in der Datei smbpasswd nachgesehen werden, ob der Benutzer in Samba angelegt wurde. Dann kann in der log Datei nachgesehen werden, ob Informationen zum verwehrten Zugriff vorhanden sind. evtl Level verändern. Danach sollten die Parameter in der Datei smb.conf überprüft werden , host allow, host deny, invalid user, valid user.
Man kann es auch mit einem leeren-Passwort versuchen. Dazu benötigt man aber einen gütigen Gastbenutzer und die Einträge guest account und guest valid
connection refused diese Fehlermeldung erhält man, wenn der smb-Dämon nicht richtig gestartet wurde.
Session request failed diese Fehlermeldung deutet darauf hin , daß der Server die Verbindung zurückgewiesen hat. Hier helfen nur die Log Dateien weiter, weil es hierzu viele Gründe geben kann.
Speichern von Dateien
Dateien werden mit den Rechten des angemeldeten Benutzers am Windows Clients abgespeichert. Dies führt vor allem dann wenn verschiedene Benutzer Dateien in einem Verzeichnis abspeichern zu Problemen.
Eine Möglichkeit um zu verhindern, daß die Dateien eines Verzeichnisses unter unterschiedlichen Benutzerkennungen abgespeichert werden, ist die Funktion force user. Mit diesem Parameter werden alle Zugriffe unter dem angegebenen Benutzernamen ausgeführt.
Der angemeldete Benutzer muß die Benutzerrechte zum Zugriff auf die Freigabe haben. Der aufgezwungene (force) Benutzername wird erst verwendet, wenn der Zugriff erlaubt wurde. Einmal verbunden werden dann alle Zugriffe mit dem erzwungenen Benutzer ausgeführt.
Konfigurationsdateien.
Aufbau der /etc/samba/smb.conf. In dieser Datei erfolgt die zentrale Konfiguration von Samba.
Die Datei besteht aus mehreren Sektionnen die jeweils mit dem Sektionsnamen beginnen. Dieser steht in den eckigen Klammern.
[global] enthält allgemein gültige Konfigurationsanweisungen
[homes] hier stehen automatisch die Freigaben auf das Unix Heimatverzeichnis
[printers], hier stehen die Druckerfreigaben
Die Passwortdatei ist die /etc/samba/smbpasswd
Freigaben in smb.conf Sektion Shares
Mit dem Parameter path in der Sektion Shares wird die Freigabe eines Verzeichnisses im Unix Verzeichnisbaum zugewiesen. Auf alle Dateien und Unterverzeichnisse hat der Benutzer, der sich mit der Freigabe verbindet, mit den selben Rechten Zugriff, die für den Benutzer auch unter Unix gelten würden.
Mit writeable kann ein Schreibschutz aktiviert werden, auch wenn die Unix Rechte dies gestatten würden. Dieselbe Funktion ist mit dem Parameter read only möglich. Die Parameter read only = yes und writeable = no sind identisch.
Beispielkonfiguration
# Samba als PDC ( Samba-2.2.3a )
[global]
netbios name = File-Server
workgroup = PMZ
server string =Samba Server Version %v
interfaces = 10.0.0.100/255.255.255.0
min passwd length = 0
time server = Yes
keepalive = 30
wins support = yes
encrypt passwords = yes
os level = 64
preferred master = yes
local master = yes
domain logons = yes
logon path = \\%L\profiles\%U\%a
logon home = \\%L\%U
logon drive = H:
logon script = scripts\%U.bat
domain admin group = root
add user script = /usr/sbin/useradd -d /dev/null -g machines -c 'Machine
Account' -s /bin/false -M %u
# Passwort synchronisieren
# password chat = *ew\sUNIX\spassword:* %n\n
# *etype* %n\n
# *all\sauthentication\stokens\supdated\ssuccessfully*
unix password sync = true
passwd program = /usr/bin/passwd %u
[netlogon]
path = /export/samba/netlogon
writeable = no
write list = root
[profiles]
path = /export/samba/profiles
writeable = yes
create mask = 0600
directory mask = 0700
[homes]
comment = Heimverzeichnis fuer %U
browseable = no
writeable = yes
create mode = 0750
[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No
[bdaten]
comment = buerodaten
path = /pmzdaten
guest account = ftp
valid users = +pmz
force user = martin
force group = +pmz
browseable = Yes
read only = No
create mask = 0777
directory mask = 0777
[temp]
comment = temp
path = /tmp
guest account = ftp
read only = No
Administration über das Netzwerk
Zur Administration über das Netzwerk ist Swat ein sehr komfortables Werkzeug. Wenn swat in entfernten Netzen eingesetzt wird sollte man beachten das die Verbindung nicht sicher ist. In lokalen Netzen sollte hier kein Sicherheitsproblem entstehen. Swat funktioniert unter Windows nur mit Netscape. Aufgerufen wird das Programm mit der IP des Sambaservers und der Portnummer 901durch Doppelpunkte getrennt. z. B. 10.0.0.121:901. Swat ist nicht für alle Unix Versionen verfügbar. Wichtiger Hinweis: Swat löscht Kommentarzeilen aus der Samba Konfigurationsdatei.
Über Webmin ist eine Administration über das Netzwerk auch möglich. Webmin hat den Vorteil, das auch eine verschlüsselte Verbindung über SSL möglich ist. Webmin ist mit allen Unix Versionen einsetzbar.
Zeit-Server
Um die Möglichkeit eines Zeitservers zu nutzen muss der Parameter Time Server eingestellt werden.
[global]
time offset = 60 time server = yes
..
Wenn time server = yes gestzt wurde kann die Zeit auf jedem Microsoft Client nach dem Server gestellt werden. Bei Windows NT/ 2000 Clients müssen die normalen Benutzer die Berechtigung dazu eingerichtet bekommen.
Auf dem Windows-wird ein Logon-Script ausführt, das die Zeitinformationen durch
NET TIME \\Sambaserver /SET /YES vom Server bezieht.
Mit ntrights -m \\KAYAK +r SeSystemtimePrivilege -u Benutzer kann das Recht zum ändern der Uhrzeit eingerichtet werden NTRIGHTS.EXE ist Teil des WindowsNT/2000-RessourceKit. Alternativ muss jeden User in die lokale Gruppe der Administratoren
oder im Bereich der Dienste-Verwaltung die Möglichkeit, bestimmten Usern das Stellen der lokalen Rechneruhr zu erlauben.
Login Script
In der Sektion Global wird mit Hilfe der Zeile domain logons=yes wird die Abarbeitung der Skripten beim Einloggen eingeschaltet. Die variable logon script enthält den Namen der Datei, die ausgeführt werden soll. Hier wird der Name des aktuellen Loginscripts eingetragen.
In der Sektion [netlogon] wird der Pfad zum gemeinsamen Verzeichnis mit den Scripten festgelegt mit read only=yes zusätzlich festgelegt, da? Die Benutzer ihr eigenes Loginsript nicht ändern dürfen. Das Verzeichnis /home/netlogon muß der Administrator natürlich zunächst einmal anlegen und dort die einzelnen Dateien unterbringen. Zu beachten ist noch das die Dateien im Dos und nicht im Unix Format vorliegen sollen, weil sie auf dem Klientrechner abgearbeitet werden. Am besten wir die Datei auf einem Windows PC erstellt und in das Verzeichnis kopiert. Am Windows Client muss noch das abarbeiten der Script-Datei eingestellt werden.
Lesestoff
Empfehlenswert ist das Buch Using Samba von Robert Ecksten, David Collier-Brown und Peter Kelly aus dem Verlag O´Reilly das auch als kostenlose Online-Version unter www.oreily.com/catalog/samba/ als HTML- oder PDF-Version. Noch mehr Links zu Dokumentationen sind auch unter http://de.samba.org/samba/docs/
Eine Mail an „listproc@samba.org“ ohne Betreff mit dem Nachrichtentext: subscibe samba Vorname Nachname erzeugt einen Eintrag in die Samba-Mailing-Liste.
Samba Freigaben unter linux mounten
smbmount //IP/Verzeichnis /mnt -O username=martin
smbclient -L 10.0.0.121 -U martin
smbpasswd -a martin
mount -t smbfs -o username=martin //10.0.0.121/martin /mnt
smbmount //10.0.0.121/martin /mnt -O username=kurs
Samba als PDC für win2000, NT
Einstellungen in der Sektion wenn die Anmeldung in einer Domäne erfolgen soll
Einrichtung der smb.conf wenn Anmeldesripte genutzt werden sollen
[Global]
workgroup = PMZ
domain logons = yes
domain master = yes
local master = yes
preferred master = True
domain master = True
os level = 34
security = user
encrypted passwords = yes
logon script = %U.bat
[netlogon]
comment = Anmeldedienst für die Domäne
path = /export/samba/logon
public = no
writeeable = no
browsable = no
Anlegen des Maschinenkontos
mit useradd rechnername wird ein Mschinenkonto estellt anschließend die Datei /etc/passwd editieren und hinter dem Rechnernamen ein $ Zeichen Anfügen mit * den Passwortentrag füllen. Altenatief können die Maschinen konnten per Hand in der /etc/passwd erfolgen
Beispiel buero:*:1000:900Vertrauensstellung:/dev/null:/dev/null
Verschlüsseltes Passwort für das Samba Maschinenkonto erstellen mit smbpasswd -a -m buero
case Einstellungen für klein und Grossschreibung in Verzeichnisnamen
mangle case =
case sensitive=
default case=
preserve case
Erklährung der Parameter
domain admin group = Administrator, root (Admistrator zur Benutzeranlage vom Windowsrechner aus.
logon path = //%L/%U/profile (%L=eigener Servername, auch Servername möglich, %U username, %U Username, Jeder User hat sein eigenes Profil //%L/Netlogon/%U heist auf diesem Rechner im Home Verzeichnis wird angelegt mit Laufwerksbuchstaben)
logon drive = H: um die Daten auf einem anderen Rechner abzulegen, Trennug File-Server Domaincontroller
Win XP Clients in Domäne einbinden
Hinweis zu Win XP und 2000
Windows XP lies sich an einer SAMBA-NT-Domäne erst anmelden, nachdem folgender Registry-Eintrag geändert wurde:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters] "requiresignorseal"=dword:00000000 der war auf 1 gesetzt und damit funktionierte es nicht. Bei Win2K ist es standardmäßig auf 0 gesetzt. Oder in der Netzwerkeinrichtung bei TCP,IP Winsupport=Yes, Winsserver, Tux eintragen Samba-Laufwerke mounten
mount -t smbfs -o username=martin,password=1234 //rechner/Freigabe /mnt/mountpoint
oder in /etc/fstab
//Rechner/freigabe /mnt/mountpoint smbfs noauto, uid 500, gid 100, fmask=664,dmask775,username=martin,password=1234 0 0
oder Eintrag wie CD-Rom
/cdrom ..... , password=1234,user 00
credentials=dateiname mit PW
Quellen:
Mail von Sascha Schneider vom 11.05.2001 (Benutzernamen Mappen)
Samba von Jens Kühnel, mitp Verlag
Linux Samba HOWTO, von David Wood
http://gladewitz.de/linux/samba/
Suse Der Netzwerkserver für Linux Samba
Linux Intern 3/2001
Das Handbuch zu SuSe 7.0
Linux-Magazin 02 2003
Nützliche Hilfsmittel
Webmin http://www.webmin.com/ Putty http://www.chiark.greenend.org.uk/~sgtatham/putty/ linneighborhood http://www.bnro.de/~schmidjo/
Seite