Windows-Heimatverzeichnis und Profilverzeichnis

Hallo,

bei uns besteht leider aktuell das Problem, dass das Profilverzeichnis von Windows auch auf dem Netzlaufwerk und und unter dem Profilverzeichnis gespeichert wird. Die Speicherung erfolgt unter windows-profiles. Es sind jedoch jeweils unterschiedliche Angaben unter Windows-Heimatverzeichnis und Profilverzeichnis gemacht worden. Das Windows-Heimatverzeichnis wird über eine Heimatverzeichnisfreigabe erstellt und das Windows-Heimatverzeichnis nutzt das UNIX-Heimatverzeichnis. Woran kann es liegen, dass trotzdem bei beiden Speicherorten windows-profiles vorhanden ist und Windows Clients auch an beide Orte speichern?

Huhu,

ich bin etwas verwirrt ob Ihrer Beschreibung. Beispiele könnten helfen! Können Sie bitte mal für einen Benutzer die exakten Werte zeigen, die Sie jeweils hinterlegt haben?

Gruß
mosu

Hallo,

gerne gebe ich ein Beispiel:

Für den User Max Mustermann sind im Bezug auf Profil und Netzlaufwerk folgende Werte gesetzt:

Laufwerk für das Windows-Heimatverzeichnis: leer (kein Wert)
Anmeldeskript: leer (kein Wert)

Windows-Heimatverzeichnis: \dc01\Users\mustermann\data
Profilverzeichnis: %LOGONSERVER%%USERNAME%\windows-profiles\default

UNIX-Heimatverzeichnis: /home/users/mustermann
Heimatverzeichnisfreigabe: Users (/var/shares/users auf dc01.domain.tld)
Pfad zum Heimatverzeichnis: mustermann/data

Nun ist das Problem, dass Win 7 Clients nicht nur unter %LOGONSERVER%%USERNAME%\windows-profiles\default bzw. auf dem Master /home/users/mustermann/windows-profiles\default speichern, sondern auch auf der Freiagabe, welches eigendlich für das User-Netzwerklaufwerk gedacht ist.

Es gibt auch keine zusätzlichen GPOs.

Ich hoffe, ich habe es nachvollziebarer beschrieben?

Huhu,

Das hier zusammen ergibt keinen Sinn. Die »Heimatverzeichnisfreigabe« ist dafür da, um das Linux-/Unix-Home via NFS von einem Linux-Server auf einem anderen Linux-Server einzubinden. Wenn das LInux-/Unix-Home also /home/users/mustermann ist, so sollte es eine Heimatverzeichnisfreigabe für entweder /home (mit »Pfad zum Heimatverzeichnis« users/mustermann) oder für /home/users (mit »Pfad zum Heimatverzeichnis« mustermann) geben. Das würde mehr Sinn ergeben.

Ist leider immer noch nicht wirklich eindeutig. Können Sie zwei exakte Linux-Pfade zeigen, in denen Profile geschrieben werden? Und dann gleich auch bitte die Ausgabe von stat NTUSER.DAT aus beiden Pfaden, in die die Profile geschrieben werden.

Danke.

Gruß
mosu

Huhu,

ich verstehe es leider noch nicht so richtig. Nach meinem Verständnis ist es so: Es gibt zwei Freigaben, die eine ist unter /home/users/USERNAME bzw. per default unter /home/USERNAME. Diese Freigabe ist unter Windows unter \SERVERNAME\USERNAME aufrufbar.

Dann kann noch eine weitere Freigabe angelegt werden. Dies geschieht über ein ereits eingerichtete Freigabe der Domäneneinstellungen. Diese Freigabe wird bei den Nutzereinstellungen ausgewählt und es kann noch ein zusätzlicher Userpfad definiert werden, welcher erstellt wird. Zum Beisp. mustermann/data

Die eine Freiageb dient für das Heimverzeichnis und die andere für das Profilverzeichnis. So verstehe ich es.

Auf dem Server im UNIX-Heimverzeihnis wird zwar das Userverzeichnis unter /home/users/mustermann erstellt, jedoch ohne Inhalt, also nicht die Verzeichnise Downloads und windows-profiles. Auf der anderen Freigabe unter /var/shares/users/mustermann/data sind dies beiden Ordner erstellt und scheinbar werden dorthin auch das Profil geschrieben und dieses Laufwerk ist auch als Heimverzeichnis im Win-Explorer eingebunden. Darin liegt dann auch das Problem.

Können Sie sonst eine Beispielkonfiguration nennen, mit zwei Freiagben (eine für das Homelaufwerk und eine für das Profilverzeichnis), welche unter Windows-Clients und Linux-Clients (z.B. Ubuntu) funktioniert? Vielen Dank für Ihre Unterstützung!

Huhu,

nee, so ist’s nicht.

Standardmäßig gibt es bei Samba die Freigabe für Heimatverzeichnisse der Benutzer. Diese ist in der smd.conf der Abschnitt [homes]. Dies ist eine eingebaute Freigabe, die nicht in der Univention Management Console sichtbar ist. Diese Freigabe sorgt dafür, dass z.B. ich mich auf den Server auf \\fileserver\mbunkus verbinden kann. Der dazugehörige Linux-Pfad ist ~mbunkus, also das Linux-Heimatverzeichnis von mbunkus, was im Regelfall /home/mbunkus ist.

Diese eingebaute Freigabe kann man abschalten, indem man die UCR-Variable samba/share/home auf no setzt (Standard: yes).

Bisher ist dies von den Windows-Einstellungen des Benutzers komplett unabhängig.

Jetzt kommen wir zu den Einstellungen in der UMC beim Benutzer im Tab Konto, Abschnitt Windows.

Die beiden Punkte Laufwerk für das Windows-Heimatverzeichnis und Windows-Heimatverzeichnis sind zusammen zu betrachten. Sie sorgen dafür, dass ein UNC-Pfad unter Windows als Laufwerksbuchstabe eingebunden wird. Beispielsweise könnte man H: als Laufwerk nutzen und dort \\fileserver\mbunkus als UNC-Pfad einbinden lassen. Die im UNC benannte Freigabe muss natürlich existieren; für mein Beispiel tut sie das bereits in der Standardeinstellung (siehe oben).

Das Anmeldeskript ist ein UNC-Pfad zu einem Script, das beim Logon ausgeführt wird, z.B. \\master\sysvol\mbu-test.intranet\scripts\mylogon.bat Die sysvol-Share bietet sich an, da sie in einem Samba4-AD-Kontext eh immer existieren muss. Der dazugehörige Linux-Pfad ist /var/lib/samba/sysvol/<domain>/scripts.

Nun kommen wir zum Profilverzeichnis. Hier wird ein UNC-Pfad eingetragen, unter dem das Roaming Profile des Users gespeichert wird. Je nach Betriebssystem wird an diesen Pfad noch etwas angehängt, z.B. .V2 bei Windows 10. Beispiel: \\fileserver\mbunkus\windows-profiles\default

Auch hier muss man darauf achten, dass es die Freigabe auf dem Server (im Beispiel also mbunkus auf fileserver) auch wirklich gibt. Für die Heimatverzeichnisfreigabe ist das, wie oben beschrieben, standardmäßig der Fall.

Möchte man seine Windows-Profile aber Linux-seitig nicht in /home/<username>/windows-profiles speichern, sondern z.B. in /srv/windows-profiles/<username>, so muss man selber in der UMC erst einmal eine Windows-Dateifreigabe für /srv/windows-profiles anlegen, z.B. mit dem Namen windows-profiles. Anschließend schreibt man z.B. \\fileserver\windows-profiles\<username>\default in den Windows profile path. Natürlich muss man nun dafür sorgen, dass das Linux-Verzeichnis /srv/windows-profiles/<username> auch wirklich angelegt wird, denn das geschieht nicht automatisch (für die Heimatverzeichnisse hingegen schon — was ein großer Vorteil ist, die Profile im Heimatverzeichnis zu speichern!).

All das hat nichts mit den Einstellungen Heimatverzeichnisfreigabe und Pfad zum Heimatverzeichnis im Abschnitt POSIX (Linux/Unix) zu tun! Wirklich gar nichts!

Die Daten im Abschnitt POSIX (Linux/Unix) sind dafür da, das Heimatverzeichnis eines Users von einem Linux-Server auf einem anderen Linux-Server via NFS einzubinden. Wenn also z.B. das Heimatverzeichnis von mbunkus auf fileserver in /home/mbunkus zu finden ist, und ich möchte, dass der gleiche Inhalt auch beim SSH-Login auf databaseserver in /home/mbunkus vorhanden ist, so muss ich:

  1. in der UMC eine NFS-Freigabe für /home auf fileserver anlegen,
  2. den Benutzer mbunkus so konfigurieren, dass bei der Heimatverzeichnisfreigabe in POSIX (Linux/Unix) die Freigabe home (/home auf fileserver) ausgewählt ist und
  3. beim Benutzer mbunkus der Pfad zum Heimatverzeichnis ebenfalls mbunkus lautet (dieser Pfad ist relativ zum Pfad der in Schritt 2 ausgewählten Freigabe zu sehen, also /home + mbunkus = /home/mbunkus).

Ich interpretiere Ihre Aussagen so, dass Sie die Windows-Profile unabhängig vom Linux-Heimatverzeichnis speichern wollen. Also müssten Sie:

  1. Eine Samba-Freigabe für die Profile anlegen (hatte ich oben schon geschrieben); nennen wir sie windows-profiles, Pfad ist in der Freigabe /var/shares/users,
  2. Eine NFS-Freigabe für die Linux-Heimatverzeichnisse anlegen; nennen wir diese linux-home mit Pfad /home,
  3. Den Benutzer wie folgt konfigurieren:
    1. Windows:
      1. Laufwerk für das Windows-Heimatverzeichnis: H: (optional, nur dann, wenn von Windows aus ebenfalls Zugriff auf das Linux-Heimatverzeichnis vorhanden sein soll, nur zusammen mit 2.)
      2. Windows-Heimatverzeichnis: \\server\<username> (optional, nur dann, wenn von Windows aus ebenfalls Zugriff auf das Linux-Heimatverzeichnis vorhanden sein soll, nur zusammen mit 1.)
      3. Profilverzeichnis: \\server\windows-profiles\<username>\default
    2. POSIX (Linux/Unix):
      1. UNIX-Heimatverzeichnis: weiterhin /home/<username>
      2. Heimatverzeichnisfreigabe: linux-home (/home auf server)
      3. Pfad zum Heimatverzeichnis: mbunkus

Ob das via NFS auch unter Ubuntu automatisch funktioniert, weiß ich nicht, da ich das Ubuntu-Integrationspaket von Univention bisher noch nicht ausprobiert habe.

Noch ein Hinweis zu den Windows-Profilverzeichnissen. Ich hatte oben geschrieben, dass die Heimatverzeichnisse automatisch angelegt werden (via PAM), die externen WIndows-Profilverzeichnisse aber nicht. Zum Einen wird beim Anlegen des Heimatverzeichnisses ein Basisbestand an Dateien in Verzeichnissen hinterlegt. Diese sind in /etc/univention/skel zu finden. Dazu gehören z.B. auch windows-profiles, auch wenn man die gar nicht im Heimatverzeichnis gespeichert haben möchte. Will man das verhindern, dann diese aus /etc/univention/skel entfernen.

Weiterhin kann man über PAM durchaus auch dafür sorgen, dass neben /home/<username> auch andere Verzeichnisse automatisch angelegt werden, z.B. das Profilverzeichnis in /var/shares/users/<username>. Das geht aber echt ein Stück zu weit; Google hilft. Leider erfordert das das Ändern von PAM-Konfigurationsdateien, die aus Univention-Vorlagen erzeugt werden; das muss man bei Updates dann immer gesondert betrachten und migrieren.

Gruß
mosu

1 Like

Hallo,

vielen Dank für die ausführliche Beschreibung!

Also ist Pfad zum Heimatverzeichnis in POSIX (Linux/Unix) ausschließlich für Linux/UCS Clients und Server gedacht und keine SMB Freigabe z.B. für Windows?
Eigendlich möchte ich nur, dass sich im eingebunden Heimlaufwerk vom User nicht die Ordner windows-profiles und Downloads befinden. Könnte ich auch anders herum in /etc/univention/skel ein weiteres Verzeichnis mit dem Namen data erstellen. Nun könnte ich auch das Homelaufwerk direkt dort hin zeigen lassen und der User kann nicht mehr per Verknüpfung im Explorer auf windows-profiles zugreifen. Müssen ich für weitere Verzeichnise unter /etc/univention/skel etwas beachten, wie z.B. Besitzer oder Berechtigungen?

Huhu,

Korrekt.

Dazu hatte ich oben genau beschreiben, was du machen musst, nämlich eine eigene Samba-Freigabe für die Profile anlegen und alles entsprechend konfigurieren.

Der Downloads-Ordner wird in der Tat nicht über den skel-Mechanismus angelegt, denn der existiert in /etc/univention/skel nicht. Auf meiner UCS-Installation wird so ein Ordner auch nicht automatisch angelegt. Ich tippe hier eher darauf, dass Programme wie Firefox oder die üblichen Linux-Desktop-Systeme (KDE, GNOME…) den Ordner angelegt haben.

Das sollte funktionieren. Unter Windows kann man sowohl ganze Freigaben als auch Unterordner von Freigaben als Laufwerksbuchstaben einbinden, z.B. so:

net use T: \\server\mbunkus\data

Übersetzt in die UMC-Einstellungen bedeutet das:

  1. beim Windows-Profilpfad: \\fileserver\<username>\windows-profiles\default (so wie vorher auch, denn windows-profiles liegt weiterhin im Linux-Home des Nutzers)
  2. beim Windows-Heimatverzeichnis: \\fileserver\<username>\data

Nein. Sollte der Vollständigkeit root:root gehören. Der Besitzer wird beim Anlegen automatisch auf <username>:<primäre Gruppe> geändert. Der Modus wird mit Oktal 066 maskiert — sprich die User-Bits werden komplett beibehalten, bei den Gruppen- und Andere-Bits wird nur das Execute-Bit beibehalten.

Zu beachten ist natürlich, dass der skel-Mechanismus nur dann greift, wenn das Linux-Heimatverzeichnis noch gar nicht existiert. Für existierende muss man die Verzeichnisse manuell anlegen, z.B. so (ungetestet):

cd /home
for DIR in * ; do
  mkdir -m 0700 -p ${DIR}/data
  chown ${DIR}: ${DIR}/data
done

Gruß
mosu

Mastodon