Ubuntu 12.04 Precise Pangolin
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Diese Anleitung beschreibt beispielhaft die Einrichtung eines PDC (Primary Domain Controller) mit Hilfe von Samba 3. Ein PDC wird benötigt, um in Windowsnetzwerken eine zentrale User- und Dateiverwaltung zu erhalten. Dabei werden Benutzername und Passwort nicht vom Windowsrechner, sondern vom PDC überprüft. Zusätzlich hält der PDC auch sämtliche Profildaten für die Benutzer der Domäne bereit. Bevor man sich daran setzt diese Anleitung umzusetzen, sollte man grundsätzliche Kenntnisse in der Verwendung von Domaincontroller und Samba haben, und der Samba-Server muss natürlich installiert sein.
Möchte man Windows 7 Clients der Domäne hinzufügen, muss mindestens die Samba Version 3.3.x installiert sein! Samba 4 ist nicht Thema des Artikels.
Es empfiehlt sich die Standard-Konfigurationsdatei von Samba zu sichern, sollte man einen Fehler machen. Das macht man am besten in einem Terminal [1] mit dem Befehl:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.default
Jetzt erstellt man nach der Vorlage (siehe unten) eine neue Konfigurationsdatei /etc/samba/smb.conf in einem Texteditor [2] mit Root-Rechten. Wer sich mit der Samba-Konfiguration nicht so gut auskennt, kann diese Konfiguration einfach übernehmen. Lediglich die Einträge "workgroup = domain" und "interfaces = eth0" müsste man an das Netzwerk anpassen.
[global] ## Server Identifikation - so meldet sich der Server im Netzwerk netbios name = PDC server string = PDC (%h) workgroup = domain ## Welche Netzwerkkarte soll von Samba benutzt werden? interfaces = eth0 ## Sicherheits- und Passwort-Einstellungen security = user encrypt passwords = true passdb backend = tdbsam obey pam restrictions = yes unix password sync = no passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . ## Domain-Einstellungen local master = yes preferred master = yes os level = 200 domain master = yes domain logons = yes # Speichert das Windows-Profil im durch die Freigabe [profile] angegebenen Verzeichnis: logon path = \\%L\profile\%U # Soll das Windows-Profil dagegen im User-Home abgelegt werden, kann man "logon path" auf Standardeinstellung belassen: #logon path = \\%L\%U\profile # oder auch direkt im User-Home: #logon path = \\%L\%U logon drive = h: #Logon Script einkommentieren falls gewuenscht (muss im Netlogon-Verzeichnis abgelegt sein -> /home/samba/netlogon/) #logon script = login.bat # DEM Addon 2007-02-20: Empfehlenswert für servergespeichertes Windows Profil hide files = /desktop.ini/ntuser.ini/NTUSER.*/Thumbs.db/ ## DNS-Einstellungen wins support = no # name resolve order = wins lmhosts host bcast ## Log-Einstellungen log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d ## Diverse Einstellungen ## DEM Addon 2007-02.20: Manchmal kann die Geschwindigkeit erhöht werden, wenn statt der ersten Zeile die zweite Zeile verwendet wird: socket options = TCP_NODELAY #socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #======================= Share Definitions ======================= [homes] comment = Home Directories browseable = yes valid users = %S writeable = yes create mode = 0600 directory mode = 0700 [profile] comment = Profildateien path = /home/samba/profile guest ok = yes browseable = no create mask = 0600 directory mask = 0700 writeable = yes # DEM Addon 2007-02-20: Folgende Zeile ist wichtig für Servergespeichertes Profil # um Probleme mit z.b. desktop.ini unter Windows zu beheben. profile acls = yes [netlogon] comment = Network Logon Service path = /home/samba/netlogon guest ok = yes writeable = no
Für die Details der Konfiguration siehe den smb.conf-Artikel.
Jetzt muss man die Samba-Dienste nur noch neu starten:
sudo /etc/init.d/samba restart
Speziell unter Ubuntu wird das klassische SysV-Init-System nach und nach durch Upstart ersetzt. Die Datei /etc/init.d/samba ist ab Ubuntu 10.04 Lucid Lynx nicht mehr vorhanden. Ein Neustart des Samba-Servers wird nun wie folgt ausgeführt:
sudo initctl restart smbd sudo initctl restart nmbd
Man sollte die Dienste unbedingt neu starten, da der Samba-WINS-Dienst nmbd jetzt eine ganz andere Rolle übernimmt.
Damit sich Benutzer auch am System anmelden können, müssen diese natürlich noch angelegt werden [4] bzw. schon vorhandene Benutzer in Samba aktiviert werden.
Einen neuen Benutzer legt man im Terminal [1] mit
sudo adduser Benutzername
an.
Will man nicht, dass sich die Windows-Benutzer per ssh am Server anmelden können, kann man den Benutzer mit der Option --disabled-login anlegen:
sudo adduser --disabled-login Benutzername
Bei der o.g Methode kann es vorkommen, dass den angelegten Benutzernamen bei Windows-Klienten Kommata angefügt werden. Diese entstehen durch die GECOS
-Angaben die bei Anlegen eines Benutzers mit adduser
abgefragt werden.
Um dieses zu umgehen, kann man alternativ die Benutzer auch mit useradd
anlegen. Die so angelegten Benutzer enthalten keine GECOS
-Angaben und werden auch in Windows 7 ordnungsgemäß angezeigt. Für die beiden oberen Befehle müsste es dann so aussehen:
sudo useradd Benutzername
bzw.
sudo useradd -s /bin/false Benutzername
Als nächstes muss man den eben angelegten Benutzer noch freischalten.
Damit der gewünschte Benutzername auch in Samba verfügbar ist, muss man ihn noch mit
sudo smbpasswd -a Benutzername
aktivieren. Nach der Aktivierung kann man diesen Benutzernamen verwenden, um auf die Sambadomäne zuzugreifen. Um einen PC in der Domäne anmelden zu können, muss der Benutzer "root" (nur) für Samba freigeschaltet werden. Das erledigt man wie oben beschrieben:
sudo smbpasswd -a root
Damit man einen PC mit Microsoft Windows auch in der Domäne anmelden kann, muss man ein Maschinenkonto für den PC am Sambaserver anlegen. Das geschieht am besten mit den folgenden Befehlen [1]:
sudo useradd -s /bin/false PC1$ sudo smbpasswd -a -m PC1$
Hierbei ist darauf zu achten, dass "PC1" mit dem Netbios-Namen des PCs übereinstimmt, den man in der Domäne anmelden will, und dass ein $-Zeichen an den Namen angehängt wird
Damit servergespeicherte Profile mit Samba funktionieren, muss man das Verzeichnis /home/samba und die zwei Unterverzeichnisse netlogon und profile anlegen [1]:
sudo mkdir /home/samba sudo mkdir /home/samba/netlogon sudo mkdir /home/samba/profile
Jetzt müssen noch die Berechtigungen für die Verzeichnisse korrigiert werden [3]:
sudo chmod 777 /home/samba sudo chmod 755 /home/samba/netlogon sudo chmod 777 /home/samba/profile
Im Verzeichnis profile muss jetzt für jeden Benutzer ein Verzeichnis angelegt werden, das genauso benannt wird wie der Benutzername lautet. Danach müssen noch Dateirechte sowie Besitzer des Verzeichnisses angepasst werden. Die Gruppenzugehörigkeit des Verzeichnisses ist egal, da nur der Benutzer Rechte für dieses Verzeichnis bekommt.
Bei Verwendung der Befehle weiter unten ist darauf zu achten, dass USER durch den Benutzernamen des Benutzers ersetzt wird, dessen Profilverzeichnis angelegt werden soll. Die Profilverzeichnisse bei Windows Vista und 7 müssen USER.V2 heißen!
sudo mkdir /home/samba/profile/USER sudo chmod 700 /home/samba/profile/USER sudo chown USER /home/samba/profile/USER
Tests mit Samba 3.6.3 zeigten, dass die Ordner von Samba selbständig angelegt werden sobald sich ein Benutzer das erste mal in der Domäne anmeldet. Dabei wird auch automatisch auf das korrekte Format (USER/USER.V2) geachtet. Daher ensteht keine Fehlermeldung wenn sich ein Benutzer von zwei unterschiedlichen Systemen (Win2k & Vista/7) anmeldet.
Nachdem man jetzt einen Domaincontroller für ein Windows-Netzwerk zur Verfügung hat, kann man Windows-PCs in der Domäne anmelden. Danach werden Benutzerdateien inkl. des Eigene Dateien-Ordners auf dem Server gespeichert und der Benutzer kann sich auf jedem Windows-PC anmelden und bekommt seine Einstellungen und Dateien zur Verfügung gestellt.
Um einen Windows-PC in der Domäne anzumelden, muss man sich am Windows-PC mit "Administrator"-Rechten oder bei Windows XP mindestens mit "Hauptbenutzer"-Rechten anmelden.
"Systemsteuerung" öffnen
Den Punkt "System" auswählen und öffnen
Im nun erscheinenden Dialog auf den Button "Ändern" klicken
Im nächsten Dialog kann man unten zwischen den Punkten "Arbeitsgruppe" und "Domäne" wählen. Den Punkt "Domäne" auswählen und den Wert der Variable "workgroup" der smb.conf eintragen. In diesem Beispiel wäre das domain.
Jetzt erscheint ein Dialog, der zur Eingabe eines Benutzernamens und Passwortes auffordert. Mit "root" und dem zugehörigen LINUX-Passwort (vom Server) anmelden.
Es erscheint eine Willkommensmeldung für die neue Domäne
Bei Microsoft Windows XP Professional kann es vorkommen, dass die Domäne nicht gefunden wird. Abhilfe schafft hier, das Netzwerkkabel zu trennen, den Computer zu irgendeiner neuen Arbeitsgruppe hinzuzufügen und neu starten. Nachdem der Computer neu gestartet wurde, das Netzwerkkabel wieder anschließen und wie oben beschrieben den Domänenbeitritt durchführen.
Wird bei Windows 7 die Domäne nicht gefunden oder konnte die Verbindung nicht hergestellt werden, dann helfen folgende Änderungen in der Registrierung ("Start/Ausführen/regedit"): Unter “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters” die Schlüssel
DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0
setzen. Danach kann man Windows 7 der Domäne hinzufügen. Die Fehlermeldung
Changing the Primary Domain DNS name of this computer to "" failed. The name will remain "MYDOM". The error was:
The specified domain either does not exist or could not be contacted
kann ignoriert werden.
Tipp: Um nicht alle Änderungen in der Registry händisch durchzuführen - Registry-Datei Win7_Samba3DomainMember.reg vom Samba sourcecode: $SOURCE/docs-xml/registry/Win7_Samba3DomainMember.reg oder Samba-Wiki installieren.
Jetzt kann man im Anmeldebildschirm des Windows-PCs unter den Benutzername- und Passwort-Feldern in einem Dropdown-Menü den Namen der Domäne auswählen. Um sich an der Domäne anzumelden, muss in diesem Dropdownmenü der Name der Domäne ausgewählt sein und eine Benutzer/Passwort-Kombination, die auf dem Server gültig ist, eingegeben werden.
Diese Revision wurde am 5. September 2014 02:50 von aasche erstellt.