Lion-Macs in der Active Directory – Homes auf netatalk-Server

Nehmen wir mal an, dass man einige Macs in die Active Directory integrieren will.
Das ist ja eigentlich straightforward, da es von Apple genug Anleitungen dazu gibt, wie man dabei vorzugehen hat.

Komplizierter wird es dabei schon, wenn man man abweichende HOME-Verzeichnisse für  Mac (AFP)-Clients haben will, während die Windows-Clients die Standard-Homes auf dem Windows-Server nutzen.

Das Home-Verzeichnis der Mac-Clients liegt dabei auf einem Unix/Linux/FreeBSD-Server

Im Prinzip sind es 3 Schritte die man dafür durchführen muss. Schritt 1 und 2 lasse ich erstmal mangels Zeit weg (werden aber benötigt), Schritt 3 ist der interessante.

Schritt 1: Intergration in die AD

-> Server Admin 10.6 Help: Konfigurieren des Zugriffs auf eine Active Directory-Domain

Schritt 2: Single Sign On/GSSAPI mit Netatalk

<to be filled> Stichworte: samba, net ads keytab, uams_gss.so, kinit

Schritt 3: Den Client zum richtigen Home bringen

Dieser Schritt ist ein wenig knifflig rauszufinden.

Die Apple-Dokumentation geht von ein und dem selben Home-Verzeichnis aus, das in der ADS unter homeDirectory steht.

Die Einstellung „Zu verwendendes Netzwerkprotokoll“ aus der Apple-Doku steuert im Prinzip nur den Automounter des Unix-Subsystems, d.h:


# Protokoll AFP
/usr/libexec/od_user_homes joe
-> afp://;AUTH=NO%20USER%20AUTHENT@/UserShares/joe
# Protokoll SMB
/usr/libexec/od_user_homes joe
-> smb:///UserShares/joe

Das ganze wird über die Datei /etc/auto_home gesteuert:

#
# Automounter map for /home
#
+auto_home # Use directory service
#
# Get /home records synthesized from user records
#
+/usr/libexec/od_user_homes

Wie man sieht, wird das od_user_homes-Skript hier aufgerufen.


...
#+/usr/libexec/od_user_homes
+/usr/local/libexec/od_user_homes_linux

Den Aufruf ersetzen wir durch ein eigenes Skript

#!/bin/sh

/usr/libexec/od_user_homes $1 | grep -q $1 && {
echo "afp://;AUTH=NO%20USER%20AUTHENT@linuxserver.domain/$1"
}

Dies liefert die Linux-netatalk-Variante zurück, wenn der Original-Aufruf etwas zurückliefert. Im Prinzip kann hier alles stehen. Auch eine Snow-Leopard-Variante ist möglich, da dort od_user_homes gar nicht vorhanden.

Fazit

Wenn alle Schritte funktionieren hat man Mac-Clients mit automatisch zugewiesenen Home-Verzeichnissen auf einen Netatalk-Server.