Linux-Client in Windows Domain
Autor: TrialAndError
Inhaltsverzeichnis
Zusammenfassung
Das unten beschriebene Vorgehen besteht im Wesentlichen aus vier Schritten. Zunächst werden mit YAST der Dienst nscd gestoppt und der Client in die Domäne aufgenommen. Anschließend werden mit einem Editor die Dateien smb.conf und xdm angepasst. Am Server selbst sind keine Veränderungen vorzunehmen.
Bei Bedarf können mithilfe von pam_mount das Home auf dem Server und andere Shares direkt mit dem Login zur Verfügung gestellt werden.
Dieses Verfahren wurde nur mit einer Windows NT-Domäne getestet. Für win200x-Domänen (Active Directory) siehe die Links unten.
Vorraussetzungen
- SUSE-Linux 9.x, 10.0 (Für andere Linusse siehe Anhang. Bitte postet Erfahrungen mit Suse 10.1.)
- Windows NT-Domäne bzw. Samba-PDC (Primary Domain Controller) (Windows XP-Clients müssen möglich sein.)
Vorgehen
- Per YAST/System/Runlevel-Editor den Dienst nscd (Name Service Cache Damon) abschalten.
(Dies legt das winbindd-HowTo nahe. Ob es wirklich nötig ist habe ich nie getestet.)
- In YAST/Netzwerkdienste/Samba-Client Domäne wählen und "Zusätzlich SMB-Informationen zur Linux-Authentifikation verwenden" auswählen.
Nach der Bestätigung wird der Client in die Domäne aufgenommen. Hierzu braucht man die entsprechende Berechtigung. (Das Verfahren ist das gleiche wie mit winXP. Bei meinem Samba-PDC ist z. B. root mit Passwort einzugeben.) YAST installiert ggf. außerdem winbindd und schreibt eine smb.conf als Konfigurations-Datei, passt /etc/nsswitch.conf an.
- Die smb.conf von YAST ist nicht optimal. Diese funktioniert:
/etc/samba/smb.conf
# smb.conf is the main Samba configuration file. You find a full commented # version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the # samba-doc package is installed. # Date: 2005-06-02 [global] winbind separator = + winbind use default domain = yes winbind uid = 10000-20000 winbind gid = 10000-20000 winbind cache time = 15 winbind enum users = yes winbind enum groups = yes template homedir = /home/%D/%U template shell = /bin/bash idmap gid = 10000-20000 idmap uid = 10000-20000 workgroup = WORKGROUP
Wichtig sind folgende Zeilen:
winbind use default domain = yes # Login ohne "WORKGROUP+", wie mit Windows. Außerdem zum Mounten mit pam_mount (siehe Anhang).
winbind separator = + # Bei mir im Zusammenspiel mit pam_mount notwendig.
Nun sollten alle Domänen-Benutzernamen unter KDE/Kontrollzentrum/Systemverwaltung/Anmeldungsmanager/Vereinfachung zu sehen sein.
- /etc/pam.d/xdm anpassen (nur grafisches Login).
/pam.d/xdm
Code:
#%PAM-1.0 auth required pam_env.so auth sufficient pam_winbind.so # pam_winbind fragt das Login ab. auth required pam_unix2.so use_first_pass # pam_unix2 übernimmt das Login von pam_winbind account sufficient pam_winbind.so # Login account required pam_unix2.so password required pam_unix2.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 # Falls nicht vorhanden wird ein Home erzeugt. session required pam_unix2.so session required pam_devperm.so session required pam_resmgr.so
Damit das Login gelingt, muss abschließend im Home-Verzeichnis ein Unterverzeichnis mit dem Namen der Domäne erstellt werden, hier als root: md /home/WORKGROUP. (Großschreibung beachten!) (Die kommentierten Zeilen wurden der Originaldatei hinzugefügt.)
Anhang
- Bei anderen Linussen muss der Rechner von Hand der Domäne hinzugefügt und nsswitch.conf angepasst werden. Die Standard-Datei /etc/pam.d/xdm sieht wahrscheinlich anders aus. (Siehe Links unten.)
- Wenn man ein Verzeichnis beim Login mounten möchte, ist zusätzlich pam_mount erforderlich (apt).
/etc/pam.d/xdm sieht dann wie folgt aus:
/etc/pam.d/xdm
Code:
#%PAM-1.0 auth required pam_env.so auth optional pam_mount.so auth sufficient pam_winbind.so use_first_pass auth required pam_unix2.so use_first_pass account sufficient pam_winbind.so account required pam_unix2.so password required pam_unix2.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 session optional pam_mount.so # Falls das Mounten scheitert, gelingt das Login trotzdem. # Falls dies nicht gewünscht ist, "optional" durch "required" ersetzen. session required pam_unix2.so session required pam_devperm.so session required pam_resmgr.so
pam_mount ist in der Datei /etc/security/pam_mount.conf gut kommentiert. Am Ende der Datei ist die Konfiguration vorzunehmen. Wie und was man mountet, ... Hier nur zwei Beispiele:
Domänen-Home als Verzeichnis im Client-Home:
volume * smb <IP des Servers> & ~/Windows-Laufwerk_Z - - -
Gemeinsamer MP3-Ordner:
volume * smb <IP des Server> MP3 ~/MP3 - - -
Links
Für Active Directory besonders hilfreich
http://www.pro-linux.de/work/server/samba3-domaene.html
http://www.samba.org/samba/docs/man/Samba3-HOWTO/domain-member.html#ads-member
Andere
http://www.linuxquestions.org/questions/showthread.php?s=&threadid=155887
http://lilly.csoft.net/~vdebaere/handleiding/samba-activedirectory/index_en.html
http://www.timkennedy.net/docs/Linux+Active_Directory.html
http://gertranssmb3.berlios.de/output/winbind.html
http://www.linux-club.de/viewtopic.php?t=42392&
http://www.linux-club.de/viewtopic.php?t=51446&
http://www.linux-club.de/viewtopic.php?t=53340
Active Directory ohne winbind:
http://www.oo-services.com/de/articles/sso.aspx
Edit: Yehudi Links bearbeitet, und hinzugefügt 2006-07-04