Linux-Client in Windows Domain

Aus Linupedia.org
Wechseln zu: Navigation, Suche

Autor: TrialAndError

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 unten, 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, ...


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)

# 
# /etc/samba/smb.conf
# 

[global]
	workgroup = WORKGROUP
	winbind separator = +
	winbind use default domain = yes
	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
	security = domain
	password server = *

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-06-14


Zurück zu Samba