Seit der Version 2.0 von Samba kann ein kompletter Windows-NT PDC (Primärer Domainen Controller) emuliert werden und so ein Netz aufgebaut werden, das alle Vorteile von NT-Domains bietet, ohne dass Lizenzgebühren anfallen. Allerdings ist diese Fähigkeit noch ziemlich beta, was nicht bedeutet, dass sie wackelig ist oder nicht funktioniert. Die Einschränkungen beziehen sich wesentlich mehr auf die Fragen der Verwaltungsarbeit.

Alleine über dieses Thema kann man ein ganzes Buch schreiben und wird noch genug weglassen müssen. Ich werde mich hier also ganz kurz fassen und eine einfache Konfiguration eines PDC mit Samba darstellen. Knifflige Details wie trusted domains oder Hybridserver werde ich nicht weiter beschreiben, auch wenn sie durchaus realisierbar sind.

Der Beispielserver

Um einen kleinen NT-Server zu emulieren brauchen wir entsprechende Verzeichnisse, die den wesentlichen Verzeichnissen des NT-Servers entsprechen. Die Namen und die Position der Verzeichnisse auf der Unix-Ebene sind frei wählbar, die Freigabenamen sollten – zumindestens bei Profiles und Netlogon – so gewählt werden wie im Beispiel.

Die Verzeichnisstruktur lege ich in diesem Beispiel in die /usr/local Hierarchie, sie kann genausogut an anderer Stelle angelegt werden.

Folgende Verzeichnisse werden erstellt, mit den jeweiligen Zugriffsrechten und Gruppenzugehörigkeiten:

Die Gruppe samba wurde von mir extra vorher angelegt, es kann natürlich auch mit anderen Gruppen gearbeitet werden.

Die Konfigurationsdatei /etc/smb.conf des Beispielservers

Wie üblich werden alle notwendigen Angaben in der Datei /etc/smb.conf vorgenommen. Die [global]-Sektion ist allerdings etwas größer als sonst.

[global]

workgroup = MYDOMAIN netbios name = NTPDC server string = Linux Samba Server %v security = user encrypt passwords = Yes domain logons = Yes guest account = nobody local master = Yes preferred master = Yes domain master = Yes os level = 65 domain groups = samba,root domain admin group = root domain admin users = root,otto,hans logon home = \\%L\Profiles\%U logon path = \\%L\Profiles\%U logon drive = z: logon script = %U.log.bat username map = /usr/local/samba/users.map message command = /bin/mail -s ‚message from %f on %m‘ root < %s; rm %s

[homes]

comment = Heimatverzeichnis read only = No create mask = 0750 browseable = No [Profiles] comment = Profiles (WIN9x+NT) path = /usr/local/samba/profiles/ read only = No create mask = 0700 directory mask = 0770 browseable = YES

[netlogon]

comment = Netlogon Share (Read-Only) path = /usr/local/samba/netlogon browseable = YES [TREIBER] comment = Treiber und Tools path = /usr/local/samba/treiber write list = root,hans valid users = root,hans,otto,peter [DATEN] comment = Daten path = /usr/local/samba/daten force group = samba read only = No create mask = 0777 Im ersten Abschnitt der [global]-Sektion findet sich nichts wesentlich neues. Mit workgroup = MYDOMAIN definieren wir die Domain, für die der Server zuständig ist. Die Anweisung netbios name = NTPDC erklärt sich von selbst, hier wird der NetBIOS Name des Servers vergeben, der in diesem Fall vom DNS-Namen abweicht. Der Server String wurde im ersten Beispiel schon erklärt.

Der zweite Abschnitt enthält jetzt die Sicherheitseinstellungen. Ein NT-Server arbeitet mit der Einstellung security = user. Ein häufiger Fehler ist es, hier statt user domain anzugeben, aber wir wissen ja inzwischen, dass diese Angabe uns an einem anderen PDC anmeldet. Nachdem wir hier aber ja selbst der PDC sind, steht die Einstellung auf user. Natürlich arbeitet der Server mit verschlüsselten Passwörtern, daher die Angabe encrypt passwords = Yes. Die erste neue Anweisung ist jetzt domain logons = Yes. Diese Angabe ermöglicht es, Domain-Anmeldungen zu realisieren.

Der nächste Abschnitt erklärt uns zum Domain Master Browser, wie wir es im letzten Beispiel detailiert durchgesprochen haben.

Im folgenden Abschnitt finden sich die Einstellungen für die Domainverwaltung. Die Gruppen und User, die hier angegeben sind, beziehen sich auf die unter Linux gültigen Gruppen- und Usernamen. Damit werden also die Unix-User definiert, die sich überhaupt an der Domain anmelden dürfen (domain groups Mitglieder), die Verwaltungsarbeiten erledigen dürfen (domain admin group Mitglieder) und die Administratoren sind (domain admin users).

Die folgenden Einstellungen regeln den Domain-Logon Vorgang. Die Angabe logon home = \\%L\Profiles\%U bezeichnet das Verzeichnis, das als Home-Verzeichnis benutzt wird, wenn sich ein User an der Domain anmeldet. Die Angabe logon path = \\%L\Profiles\%U bezeichnet das Verzeichnis, das die Profiles und userbezogene Registry enthält. Beide Befehle verstehen die Standard-Substitutionen, mit denen es möglich ist, jedem User ein eigenes Verzeichnis zuzuweisen.

Die Angabe logon drive = z: wird nur von NT-Workstations benutzt und gibt den Laufwerksbuchstaben an, der für das Profiles-Verzeichnis benutzt werden soll. logon script = %U.log.bat gibt das Script an, das beim Anmelden an eine Domain ausgeführt werden soll. Es ist entweder eine Batch-Datei (.bat) oder eine NT Kommando-Datei (.cmd). Diese Datei muß im DOS-Textformat vorliegen, das heißt, sie muß die DOS Zeilentrenner (CR/LF) benutzen. Der Pfad wird relativ zum [netlogon]-Share angegeben. In der Regel sind in dieser Datei DOS-Befehle enthalten, die bestimmte Netzlaufwerke verbinden. Eine Beispieldatei für den User hans (/usr/local/samba/netlogon/hans.log.bat) könnte bei unserem Server folgendermaßen aussehen:

  NET USE L: \\NTPDC\DATEN
  NET USE M: \\NTPDC\hans
  NET USE N: \\NTPDC\TREIBER
  NET USE Y: /HOME
  NET TIME \\NTPDC /YES

Die letzten beiden Zeilen der [global]-Sektion beschreiben noch interessante Neuigkeiten. Die Zeile

  username map = /usr/local/samba/users.map

verweist auf eine Datei, die NT-Usernamen in Unix-Usernamen übersetzt. Eine Zeile sollte darin in jedem Fall enthalten sein, nämlich

  # NT to Linux map for users
  root = admin administrator

Das würde den Unix-Usernamen „root“ sowohl in den Namen admin, als auch in den Namen administrator übersetzen. Wenn sich ein User also mit dem Namen admin an der Domain anmeldet, so wird er automatisch als root behandelt, muß dann aber auch das Passwort von root benutzen.

Die letzte Zeile der [global]-Sektion beschreibt ein Unix-Kommando, das ausgeführt werden soll, wenn der Server eine WinPopUp Message bekommt. Die Popup Nachricht wird in einer Datei abgelegt, die durch die Substitution %s ansprechbar ist. Unser Beispiel würde diese Nachricht an root mailen.

Die anderen Freigaben (homes, Profiles, netlogon, TREIBER und DATEN) sind genauso aufgebaut, wie bisher und enthalten nichts wesentlich neues mehr.

Damit sich User jetzt an unserer Domain anmelden können, sind noch ein paar Anmeldungen fällig. Zunächst müssen natürlich User angemeldet werden, die sowohl dem Unix-System, als auch Samba bekannt sind. In den meisten Fällen werden hier User angelegt, die sich unter Unix NICHT anmelden dürfen, also als Startshell das Programm /bin/false bekommen und kein Unix-Passwort erhalten. Diesen Usern wird dann mit smbpasswd ein Samba-Passwort vergeben und so können sie sich an der Domain, aber nicht am Unix-System anmelden. Aus der Sicht von Unix sollten die User der Gruppe samba zugeordnet werden.

  useradd -g samba -s /bin/false peter
  smbpasswd -a -e peter

Jetzt kann dem User ein Passwort vergeben werden.

Um auch NT-Rechner an einer Domain anzumelden, gibt es unter NT die Maschinen-Accounts. Auch die müssen wir anlegen, wenn wir NT-Workstations in unsere Domain aufnehmen wollen. Ein Maschinen-Account zeichnet sich durch ein Dollarzeichen am Ende des Namens aus. Ansonsten ist die Prozedur sehr ähnlich:

  useradd -s /bin/false RECHERNAME$
  smbpasswd -a -m RECHNERNAME$

Jetzt kann der Administrator der NT-Workstation diese Workstation in die Domain integrieren.

Insgesamt kann man sagen, dass es inzwischen möglich ist, die wichtigsten Funktionen eines NT-PDC unter Samba auszuführen. Einige Dinge, die die Verwaltung einfacher machen würden fehlen zwar noch, werden aber bereits entwickelt. Viele denkbare Möglichkeiten wurden hier noch nicht besprochen, weil es den Rahmen dieser Darstellung sprengen würde. Jede Samba-Distribution enthält aber eine sehr ausführliche Handbuchseite für die smb.conf Datei, sohwohl im man-Format, als auch in H T M L…