|
Unix Home-Verzeichnisse auf SMB FreigabenÜberblickWenn Ihr Unternehmen ein gemischtes Netzwerk aus Windows und Unix Computern betreibt, ist es verlockend, für beide die selbe Domänen-Infrastruktur zu benutzen. Diese gemeinsame Infrastruktur wird meist von Windows Domänen-Controllern bereitgestellt, weil es einfacher ist, Unix Computer in die Windows-Domäne einzubinden als umgekehrt.Folgende Probleme müssen dazu gelöst werden:
Im restlichen Teil dieses Kapitels werden zwei Herangehensweisen beschrieben. Die erste ist ein kommerzielles Produkt namens DirectControl der Firma Centrify, das Unix Computer in die Windows Domäne integriert. Im zweiten Teil schlagen wir kein spezielles Produkt vor, sondern beschreiben, wie Sharity mit Software von Drittanbietern zusammen arbeiten kann. Sharity und DirectControlCentrify's DirectControl ist eine anwenderfreundliche Lösung zur Integration von Unix Computern in die Windows Domäne. Objective Development und Centrify haben gemeinsam an einem möglichst nahtlosen Zusammenspiel ihrer jeweiligen Programme gearbeitet. Das bedeutet:
Wo ist das Home-Verzeichnis?In einer Domäne werden alle Anwender-spezifischen Daten zentral am Domänen-Controller verwaltet. So auch die Position des Home-Verzeichnisses. Um das Home-Verzeichnis auf einen Netzwerk-Pfad zu konfigurieren, starten Sie "Active Directory-Benutzer und -Computer", doppel-klicken Sie dort einen Benutzer und wählen Sie den Abschnitt "Profil" (siehe Beispiel rechts). Dort können Sie einstellen, dass es sich um ein Netzwerk-Laufwerk handelt und welcher Netzwerk-Pfad verbunden werden soll.Unix Computer können das Verzeichnis natürlich nicht als Laufwerk "Z:" ansprechen, so wie das Windows tut. Sie müssen es an einem bestimmten Pfad im Dateisystem mounten. Ausserdem können auf einer Unix Maschine mehrere Benutzer geichzeitig eingeloggt sein; die Pfade, auf denen gemountet wird, müssen also für jeden Benutzer anders sein. Üblricherweise werden die Home-Verzeichnisse einfach nach dem Login-Namen des Benutzers benannt, z.B. /home/james. Sharity muss volle Kontrolle über das Verzeichnis mit den Home-Verzeichnissen haben, weil es dort im Bedarfsfall die Home-Verzeichnisse der Benutzer mounten muss. Wir erreichen das am einfachsten, indem dort ein spezielles Dateisystem (x-homes:) gemountet wird. Wenn sich ein Benutzer einloggt und sein Home-Verzeichnis erstmals benutzt wird, fragt Sharity den Domänen-Controller nach dem Netzwerkpfad des Home-Verzeichnisses und verweist mit einem symbolischen Link zu diesem Netzwerk-Pfad. DirectControl KonfigurationWir haben nur eine Anforderung an Ihre DirectControl Konfiguration: Das Unix Home-Verzeichnis der Netzwerk-Benutzer muss auf einen Pfad konfiguriert sein, auf dem Sharitys "x-home:" Dateisystem gemountet ist und es muss den Unix Login-Namen des Benutzers als letzte Komponente enthalten. Beispiele für Home-Verzeichnis Templates in der DirectControl Zonen-Konfiguration:/nethome/$domain/$userAusserdem empfehlen wir, dass Sie alle Benutzer in die DirectControl Zonen aufnehmen, nicht nur jene, die auch tatsächlich Unix Computer benutzen. Nur so kann auch zu jeder Windows Security-ID (SID) eine entsprechende Unix Benutzer-ID (UID) gefunden werden. Sharity KonfigurationUm die Dienste von DirectControl in Anspruch nehmen zu können, muss Sharity dynamische Libraries von DirectControl laden. Centrify empfiehlt daher, dass Sie Ihre Environment-Variablen systemweit so anpassen, dass diese Libraries von allen Programmen verwendet werden. Wenn Sie das nicht tun wollen oder wenn diese Einstellungen zum Zeitpunkt des Systemstarts noch nicht aktiv sind, können Sie sie für Sharity separat setzen. Editieren Sie dazu die Datei /usr/local/sharity3/var/local-profile.sh, z.B. auf Linux:LD_LIBRARY_PATH=/usr/share/centrifydc/kerberos/lib:$LD_LIBRARY_PATHDanach müssen Sie sicherstellen, dass das x-homes: Dateissystem dort gemountet ist, wo DirectControl die Benutzer Home-Verzeichnisse erwartet. Das erreichen Sie am besten durch einen Eintrag in der Datei /usr/local/sharity3/var/fstab. Wenn z.B. Ihre Zonen-Template das Benutzer-Home als /nethome/$user definiert, fügen Sie die Zeile x-homes:company.com /nethomezu dieser Datei hinzu. Das x-homes: Dateisystem funktioniert übrigens nur, wenn irgendwo das x-browser: Dateisystem (normalerweise auf /CIFS) gemountet ist. Das Verzeichnis /nethome müssen Sie einmal händisch mit mkdir erzeugen. Mit dieser Konfiguration können Sie sich auf dem Unix Computer einloggen und Ihr Home-Verzeichnis wird automatisch gemountet, z.B.: login: jamesNachdem die grundsätzliche Konfiguration funktioniert, können Sie noch ein paar Feineinstellungen vornehmen. Obwohl die folgenden Parameter in der Datei /usr/local/sharity3/etc/config/*.cfg stehen (und auch dort dokumentiert sind), sollten Sie sie dort nicht ändern. Diese Datei wird nämlich bei jedem Upgrade überschrieben und Ihre Änderungen wären dann verloren. Schreiben Sie Ihre Änderungen stattdessen besser in /usr/local/sharity3/var/local.cfg. Diese Datei wird bei Upgrades nicht verändert. Beispiel: main = { autoUnmountTimeout = 7200000; // in ms }; cifs = { homesLocalHomeDir = "/home/$user"; }; autoUnmountTimeout: Wenn ein automatisch gemountetes Verzeichnis so lange nicht benutzt wird, wird es wieder entfernt. Da ein Mount viele System-Ressourcen benötigt, empfehlen wir Ihnen, diese Möglichkeit zu nützen. Bei einem automatischen Unmount können keine Daten verloren gehen, weil Sharity das Verzeichnis bei Bedarf einfach wieder mountet. homesLocalHomeDir: Wenn sich ein Benutzer anmeldet, fragt Sharity das Home-Verzeichnis vom Domänen-Controller ab. Wenn keines oder kein Netzwerk-Pfad konfiguriert ist, stellt Sharity ein lokales Verzeichnis (auf der eigenen Festplatte) bereit. Die Variablen $user und $domain werden dazu mit dem Unix Login-Namen des Benutzers und der Domäne ersetzt.
Wenn Sie in der Sharity Applikation im Abschnitt "Optionen" die Option "Windows ACLs konvertieren" wählen (siehe Bild rechts), dann berechnet Sharity die Unix Dateiattribute aus dem Windows Security Descriptor und damit aus der Zugriffskontrollliste (ACL) der Datei. Besitzer und Gruppe der Datei werden aus den entsprechenden Windows-Attributen konvertiert und Zugriffsrechte für Besitzer, Gruppe und die Windows-Gruppe "Jeder" berechnet. Bitte beachten Sie, dass der Zugriff auf den Security Descriptor eine zusätzliche Abfrage beim Server erfordert und somit den Durchsatz reduziert.
Integration von Sharity mit anderer SoftwareAuthentifizierungWenn Sharity einen Benutzer beim Server authentifizieren muss, braucht es dafür entweder ein Passwort (für die NTLMv2 Authentifizierung) oder ein gültiges Kerberos-Ticket. Wenn Sie Ihren Unix Computer in die Windows Domäne integrieren wollen, müssen Sie Sharity entweder Ihr Passwort oder ein Kerberos-Ticket zur Verfügung stellen.Authentifizierung mit Kerberos. Wenn Kerberos auf Ihrem System bereits konfiguriert ist, dann sollte Sharity ohne weitere Konfiguration die Kerberos-Tickets nutzen können. Einige Installation verwenden allerdings ungewöhnliche Datei-Namen für den Ticket-Cache. Um sich auch daran anzupassen, kann Sharity nach dem Ticket-Cache suchen. Öffnen Sie die Datei /usr/local/sharity3/etc/config/cifs.cfg in einem Editor und suchen nach krb5credCacheTemplate. Diese Option enthält ein Shell Matching-Pattern, mit dem potentielle Ticket-Cache Dateien gefiltert werden. Die erste Datei, die zu dem Matching-Pattern passt und dem aktuellen Benutzer gehört, wird als Ticket-Cache verwendet. Wenn Sie diese Option permanent ändern wollen, sollten Sie das in der Datei /usr/local/sharity3/var/local.cfg tun. Weitere Infos dazu finden Sie im vorigen Abschnitt. Authentifizierung mit Passwort. Wenn Sie Kerberos aus irgendwelchen Gründen nicht verwenden können oder wollen, dann müssen Sie irgendwie zum Klartext-Passwort des Benutzers kommen. Dieses Passwort übergeben Sie dann dem Kommando "sharity login", eventuell gleich mit der Option, es im Schlüsselbund als default zu speichern. Das Hauptproblem hier ist es, das Passwort beim Login abzufangen. Wenn die Authentifizierung in Ihrem System auf PAM basiert, machen Sie eine Web-Suche nach pam_extern und pam_script. Beide Module erlauben es, eigene Kommandos in den Login-Prozess zu schleusen. VerzeichnisdienstWenn Sharity in Active Directory nach dem Home-Verzeichnis eines Benutzers sucht, verwendet es die letzte Komponente das lokalen (Unix-) Home-Verzeichnisses als Suchbegriff. Wir haben die Suchmaske so eingestellt, dass der Suchbegriff mit dem Windows Login-Namen (SAM Account Name) übereinstimmen muss. Sie können aber jede beliebige andere Active Directory Suchabfrage konfigurieren. Der LDAP Suchfilter ist in der Datei /usr/local/sharity3/etc/config/cifs.cfg in der Option ldapAccountNameSearchTemplate definiert. Wie bereits erwähnt, sollten Sie diese Datei besser nicht ändern und Ihre Konfiguration in /usr/local/sharity3/var/local.cfg unterbringen. Die Suchmaske kann die Variablen $user und $domain enthalten.Wenn Sie die Option "Windows ACLs konvertieren" im Abschnnitt "Optionen" der grafischen Benutzeroberfläche aktivieren, dann sollten Sie auch eine Liste zur Umsetzung von Windows Security IDs (SIDs) auf Unix Benutzer- und Gruppen-IDs (UIDs/GIDs) bereitstellen. Diese Liste wird in der Datei /usr/local/sharity3/var/idmap.cfg konfiguriert und das Dateiformat ist auch dort beschrieben. Immer, wenn Sie diese Datei ändern, sollten Sie auch Sharity davon informieren, sodass es die Liste neu Lädt. Das geschieht am einfachsten mit dem Unix HUP Signal an den Prozess sharityd oder mit dem Kommando sharity reload. Home-VerzeichnisseDas x-homes: Dateisystem funktioniert auch hier genau so wie im vorigen Abschnitt beschrieben. Ein typisches Mount-Kommando sieht wie folgt aus:sharity mount x-homes:company.com /nethomeDer Domänen-Name wird benutzt, um den Benutzer beim richtigen Domänen-Controller zu suchen. Wenn Sie Benutzer aus verschiedenen Domänen haben, müssen Sie eine weitere Verzeichnisebene einziehen. Home-Verzeichnisse werden dann als /nethome/$domain/$user erzeugt. Das x-homes: Dateisystem erkennt die zusätzlche Ebene daran, dass Sie beim Mounten keine Domäne angeben: sharity mount x-homes: /nethomeWenn Sie nur ein paar Benutzer haben, können Sie die erforderlichen symbolischen Links auch händisch erzeugen. Damit ersparen Sie sich den Umgang mit dem x-homes: Dateisystem. Wenn z.B. die Home-Verzeichnisse der Benutzer auf den Netzwerk-Pfaden \\server\homes\james, \\server\homes\susie usw. verfügbar sind erzeugen Sie die symbolischen Links im Homes-Verzeichnis wie folgt: /home/james -> /CIFS/homes[server]/james EinschränkungenUnix Home-Verzeichnisse von Windows Servern zu bedienen bring gewisse Einschränkungen: Eigenschaften, die normalerweise von einem Unix Dateisystem (und daher von Unix Home-Verzeichnissen) erwartet werden, sind teilweise bei Windows nicht vorhanden. Obwohl Sharity versucht, fehlende Features und abweichende Semantik so gut wie möglich zu emulieren, sollten Sie die folgenden Themen prüfen:
| |||||
|