SAMBA UND WINDOWS NT 4.0 (PDC) Versionen: Autor: Thomas King (king@t-king.de) V1.0 V1.1 V1.2 V1.3 V1.4 V1.5 V1.6 V1.62 V1.7 V1.71 V1.8 V1.81 09.05.2000 (Erweitert) Copyright: Dieses Dokument darf gemäß der GPL Lizenz verbreitet werden. Das Copyright liegt bei Thomas King. Danksagung: - Roland Ribi (roland.ribi@gmx.net) - Cordula Hörter (c.hoerter@t-online.de) - Alle die mich mit Informationen versorgt haben Aktuelle Version: Die aktuellste Version dieses Dokuments bekommt man unter: http://www.t- king.de/linux/samba.html. Weiterentwicklung: Ich möchte diese Anleitung auch für Windows 2000 weiterentwickeln und suche deshalb In- formationen über Windows 2000 und Samba. Ich würde mich über Informationen per Mail sehr freuen! Vorab: Samba ist eine kostenlos erhältliche Software für Linux, die Linux über das SMB-Protokoll zu einem File- und Printserver macht. Wie viele andere Software in der Linux-Welt wird Samba auch weiterentwichelt. Die hier beschriebenen Funktionen (PDC) des Samba können leider noch nicht ganz das leisten, was die PDC-Funktionen eines Windows-NT-Server zu leisten vermögen (aber dafür kann Samba einiges was Windows-NT-Server nicht können). Die Entwicklung geht weiter und die Bestrebungen gehen in die Richtung das Samba irgend- wann einen kompletten Windows-NT-Server ersetzen kann. Ich habe die meisten Informationen für die Anleitung aus der englischen „FAQ for Samba NTDOM PDC support" und aus diversen Newsgroups. Mit welchen Samba-Versionen funktioniert PDC: Mit folgenden Versionen wurde PDC erfolgreich getestet: - Version 2.0.0 - Version 2.0.1 - Version 2.0.2 - Version 2.0.4 - Version 2.0.5 - Version 2.0.6 - Version 2.0.7 (Windows 2k „kompatibel") Mit folgenden Versionen wurde PDC nicht erfolgreich getestet: - Version 2.0.3 Erfahrungsberichte über andere Samba-Versionen bitte an king@t-king.de. Download: Da der PDC von Samba noch in der Entwicklung ist, sollte man immer die neuste Version von Samba verwenden. Es gibt mehrere Möglichkeiten Samba zu bekommen: CVS-Entwicklerversion (aktuellster Code, „buggy"): Diese CVS-Entwicklerversion eignet sich nicht um in produktiven Umgebungen eingesetzt zu werden da sie noch „buggy" ist. Dafür enthält diese Version immer noch ein paar Features mehr. Diese Version eignet sich sehr gut für Entwickler und Beta-Tester. Um die CVS-Entwicklerversion downzuloaden muß man sich als root einloggen und in ein neues Verzeichnis wechseln (z.B. samba) und folgende Befehle ausführen (es wird vorausge- setzt, das cvs installiert ist): cvs –d :pserver:cvs@samba.anu.edu.au:/cvsroot login Bei der Frage nach dem Passwort cvs eingeben. Nachdem dieser Befehl beendet wurde fol- gendes eingeben: cvs –d :pserver:cvs@samba.anu.edu.au:/cvsroot co samba Nach Beendigung dieser Befehle hat man den Quellcode von Samba vorliegen. Falls gewünscht, kann man ein Update mit cvs update –d –P durchführen. Eine Anleitung zu cvs findet man auf der Manpage von cvs (man cvs). Offizielle freigegebener Code: Den offiziell freigegebenen Samba-Quellcode kann man über FTP von ftp://samba.anu.edu.au/pub/samba/ herunterladen. Einige Linux-Distributionen geben angepaßte und kompilierte Versionen von Samba heraus (meistens im RPM-Format). Sie sind besonders für Einsteiger einfacher einzuspielen (rpm - Uvh ). Auf der Homepage des Linux-Distributors und auf der Samba Ho- mepage kann man nach solchen Informationen suchen. Falls man eine solche Samba-Version verwendet kann man den nächsten Schritt in der Anleitung überspringen. Kompilieren: Seit einiger Zeit liegt Samba das Konfigurationsprogramm configure bei. Dieses Programm liegt im Verzeichnis //samba/source und kann mit configure gestartet werden. Configure checkt das vorhandene System und erzeugt die Datei Makefile. Eigentlich kann man jetzt gleich zum kompilieren übergehen, aber man sollte vorsichtshalber nochmals die Angaben in der Datei Makefile kontrollieren (vi Makefile), damit nachher auch alles stimmt. Wenn alles in Ordnung ist, kann man Samba mit dem Befehl make install kompilie- ren und installieren. Nach einiger Zeit (kann mehrere Minuten dauern) sollte dann Samba kompiliert und installiert vorliegen. Konfiguration von Linux: Für jede Workstation muß man auf dem Linux-Server einen eigenen Account einrichten (kei- ne Passwörter vergeben). Als Benutzernamen verwendet man den Workstationnamen an den man noch ein „$" anhängt (s. Anhang – passwd). Nun muß man die smbpasswd generieren. Dazu verwendet man am besten das Script mksmbpasswd.sh aus dem Samba-Source-Code (//samba/source/script/mksmbpasswd.sh). Damit man das Skript aus- führen kann muß man es noch ausführbar machen (chmod +x mksmbpasswd). Als root fol- gendes aufrufen (Pfade ggf. ändern): cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd, damit die smbpasswd erzeugt wird. Jetzt muß man der Datei smbpasswd erklären, das die Einträge der Workstations auch Work- stations sind. Dies wird (als root) so erledigt: smbpasswd –a –m . Die Datei smb.conf im Verzeichnis /etc sollte so oder ähnlich aussehen wie sie im Anhang abgedruckt ist. Die kommentierten Einträge (; Kommentar) sind für den PDC notwendig. Die restlichen Einträge haben Beispielcharakter. Wenn man nun einen Benutzer zur Domain hinzufügen will muß man ihm ganz normal einen Account auf dem Linux-Server geben (mit Passwörtern). Anschließend muß man den Eintrag in der smbpasswd noch erstellen: smbpasswd –a und die gewünschten Passwörter vergeben. Dann noch die Unterverzeichnisse in den gewünschten Verzeichnissen (z.B. /shares/Profile und shares/Homes) anlegen und die Besitzrechte an den Benutzer geben (chown .users ) Nach einem Neustart sollte dann alles funktionieren. Weitere Konfigurationsmöglichkeiten: Password ändern auf Linux und Windows gleichzeitig: Folgendes muß noch in den [Global]-Abschnitt der smb.conf: unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *password* %n\n *password* %n\n *successfull* Man muß darauf achten das der Pfad der mit dem Parameter passwd program definiert wird auch vorhanden ist. Die Werte des Parameters passwd chat können je nach verwendeter Dist- ribution variieren. Die verwendeten Variablen haben bei diesem Parameter folgende Bedeu- tung: Variable: Bedeutung: %o Altes Passwort %n Neues Passwort /n Zeilenvorschub /r Return /t Tab /s Leerzeichen * Beliebige Anzahl von beliebigen Zeichen Diagnosetools für Samba und Windows: - Das beste Diagnosetool ist Samba selber. Mit der Option –d bei smbd und nmbd kann man den Debugger einschalten. In der smb.conf kann man mit debug level = (im Bereich von 1-100) die Menge der Informationen regeln. - Ein Version von tcpdump die auch SMB versteht (ftp://samba.anu.edu.au/pub/samba/tcpdump-smb). - Bei Windows ist standardmäßig ein Netzwerkmonitor dabei. Gegebenenfalls muß dieser nachträglich installiert werden. Drucken über Samba-Server mit Windows NT: Die Print-Server Funktion für den PDC sind leider noch nicht 100%ig fertiggestellt und kön- nen deshalb nur über Umwege genutzt werden. Als Administrator einen lokalen Drucker in- stallieren. Sich dann in Samba PDC einloggen und in der MS-DOS Eingabeaufforderung fol- gendes eingeben: net use \\\. Groß- und Kleinschreibung von Datei- und Verzeichnisnamen: Windows NT und 9x können leider nicht richtig mit der Groß- und Kleinschreibung von Da- tei- und Verzeichnisnamen umgehen. Möchte man beispielsweise eine Textdatei mit dem Namen „BEISPIEL.TXT" anlegen, so macht Windows „Beispiel.txt" daraus. Damit die Dateien und Verzeichnisse, die man auf ein Samba-Share ablegt, die Groß- und Kleinschreibung beibehalten, muß folgender Eintrag in die smb.conf (unter [Global]): mangle case = yes case sensitive = no default case = lower preserve case = yes short preserve case = yes Weitere Informationen: Weitere Informationen zu Samba und PDC findet man unter der offiziellen Homepage des Samba-Projekt (http://samba.anu.edu.au) und auf der man-Page smb.conf. Anhang: smb.conf: [global] workgroup = SAMBA ; Hier wird der Domainname vergeben debug level = 3 guest account = nobody keep alive = 30 os level = 2 security = user printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba.log.%m share modes = yes guest ok = yes allow hosts = 192.168.100. server string = %h Samba Server %v interfaces = 192.168.100.1/24 bind interfaces only = True encrypt passwords = yes ; Hier werden verschlüsselte Passwörter eingeschaltet ; (für WinNT 4.0 SP3, Win95b und Win98 notwendig) password level = 2 netbios name = server domain logons = yes ; Hier wird Domainlogon aktiviert domain sid = S-1-5-21-1290937831-1921083428-2172654181 ; ; Hier wird die Domainsid (aus der Datei MACHINE.SID) gesetzt ; Dieser Eintrag ist nicht notwendig wenn die Datei MACHINE.SID im ; gleichen Verzeichnis liegt wie die Datei smb.conf logon path = \\Server\Profile\%U\profile ; Hier wird der Logonpfad gesetzt. An diesem Pfad werden die Profile ; abgelegt wins support = yes ; Hier schaltet man nmbd als WINS Server ein [Homes] comment = Home Directories (read write) browseable = no public = yes read only = no writable = yes create mode = 0755 path = /shares/Homes/%S [Profile] comment = Profile browseable = yes public = yes read only = no writeable = yes create mode = 0755 path = /shares/Profile [printers] comment = HP-Deskjet 500c browseable = yes printable = yes public = yes writable = no create mode = 0700 directory = /tmp print ok = yes available = yes [All] comment = The whole Linux System path = /shares/All public = yes read only = no writable = yes create mode = 0660 force group = nobody passwd: ... livid-boy$:x:501:100::/home/livid-boy:/bin/false admin:x:502:100::/home/admin:/bin/bash cordula:x:503:100::/home/cordula:/bin/bash Samba und Windows NT 4.0 (PDC)