Linux-Client in Windows Domain: Unterschied zwischen den Versionen
(→Ubuntu) |
(→Ubuntu 6.06.1 (Dapper Drake)) |
||
Zeile 188: | Zeile 188: | ||
session optional pam_foreground.so | session optional pam_foreground.so | ||
− | Bei dieser Konfiguration funktionieren cron und | + | Bei dieser Konfiguration funktionieren cron und at nicht. Für diese beiden Dämonen muss die Benutzung der @include-Dateien auskommentiert werden. Hier meine Datei für cron. |
# | # |
Version vom 31. Mai 2007, 19:22 Uhr
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.
Mithilfe von pam_group können die User beliebigen Gruppen zugeordnet werden, z. B. für Sound-Ausgabe.
Dieses Verfahren wurde nur mit einer Windows NT-Domäne getestet. Für win200x-Domänen (Active Directory) siehe die Links unten.
Voraussetzungen
- SUSE-Linux 9.x, 10.0
(Ubuntu 6.06 siehe Links, ab 10.1 vollständig per Yast siehe Links)
- 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. # Sollte erstes Modul sein, damit es aus /etc/skel/ kopiert! 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 Linux-Varianten 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 # mkhomedir unbedingt vor mount! 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, ...
- Wenn man die Domain User bestimmten Gruppen zuordnen möchte (z. B. audio) lautet das Stichwort "group.conf"! Siehe z. B. hier: http://blog.gmane.org/gmane.linux.skolelinux.user.german/day=20050924
Links
Suse 10.1 (auch Active Directory)
http://www.uni-bielefeld.de/hrz/pcserv/adlinux.htm
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
Ubuntu 6.06.1 (Dapper Drake)
User bekommen ihr Domain-Home mit pam_mount gemounted und die notwendigen Gruppenrechte mit pam_group zugewiesen.
Hier meine wohlgetesteten PAM-Dateien aus /etc/pam.d :
# # /etc/pam.d/common-auth - authentication settings common to all services # auth optional pam_mount.so auth sufficient pam_unix.so nullok_secure use_first_pass auth optional pam_group.so use_first_pass auth required pam_winbind.so use_first_pass
# # /etc/pam.d/common-account - authorization settings common to all services # account sufficient pam_winbind.so account required pam_unix.so
# # /etc/pam.d/common-session - session-related modules common to all services # session required pam_mkhomedir.so skel=/home/skel/ umask=0077 session optional pam_mount.so session required pam_unix.so session optional pam_foreground.so
Bei dieser Konfiguration funktionieren cron und at nicht. Für diese beiden Dämonen muss die Benutzung der @include-Dateien auskommentiert werden. Hier meine Datei für cron.
# # The PAM configuration file for the cron daemon # # @include common-auth auth required pam_unix.so nullok_secure auth required pam_env.so #@include common-account account required pam_unix.so # @include common-session session required pam_unix.so session optional pam_foreground.so # Sets up user limits, please define limits for cron tasks # through /etc/security/limits.conf session required pam_limits.so
In /etc/security/pam_mount.conf setze ich folgende Optionen für das Mounten:
iocharset=utf8,codepage=cp850,ttl=10000,uid=&,gid=users,dmask=0700
Mit utf8 und cp850 gelingt bei mir die Darstellung von Umlauten und geringere Last für die Kontrolle auf veränderte Dateien mit ttl=10000 (10 Sekunden anstelle von 1 Sekunde).
Die entscheidende Zeile aus /etc/security/group.conf :
* ; * ; * ; Al0000-2400 ; video, audio, cdrom, dip, plugdev, users, fuse
Links
http://www.ubuntuforums.org/showthread.php?t=5409&highlight=nt+authentication+howto (NT) http://www.ubuntuforums.org/showthread.php?t=91510&highlight=nt+authentication+howto (AD) http://ubuntuforums.org/showthread.php?t=77469 (audio, cdrom, video etc. für Domain User)
Edit: Yehudi Links bearbeitet, und hinzugefügt 2006-07-04; TrialAndError bearbeitet 2007-05-30