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.




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.


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:



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 12 © PMZ 2003