Frage zum erstellen des Windows-Heimatverzeichnis

german

#1

Guten Tag liebe Forengemeinde,

ich habe mal eine Frage zu den Heimatverzeichnis Einträgen in “Benutzer -> Konto”.
Ich habe ein Verzeichnis erstellt, und dieses per Netlogon Script geladen, dies funktioniert auch.
Nun gibt es bei “Benutzer -> Konto” die Felder “Laufwerk für das Windows-Heimatverzeichnis” und “Windows-Heimatverzeichnis”. Kann man damit das Script ersetzen?
Denn so habe ich es verstanden, nur funktioniert dies nicht.

Eingetragen habe ich es wie folgt:
U:
“Laufwerk für das Windows-Heimatverzeichnis”
\server%USERNAME%
“Windows-Heimatverzeichnis”

Nachtrag: gebe ich unter dem Punkt “Windows-Heimatverzeichnis” einen Pfad an, sollte dieser dann automatisch erstellt werden, oder muss ich ihn selbst anlegen?

lg,
zbr


#2

Moin,

Ja, für diese eine Laufwerk zumindest.

[quote]Denn so habe ich es verstanden, nur funktioniert dies nicht.

Eingetragen habe ich es wie folgt:
U:
“Laufwerk für das Windows-Heimatverzeichnis”
\server%USERNAME%
“Windows-Heimatverzeichnis”[/quote]

Variablen funktionieren hier nicht. Es muss der Benutzername selber eingegeben werden (also »\server\gmueller«), dann funktioniert das auch. Das konnte ich eben in einem kurzen Test auch noch mal verfizieren (beides: dass es mit Variablen nicht geht, wohl aber mit Benutzernamen, und das Ganze ohne Logon-Script).

Kommt darauf an.

Univention hat einen Mechanismus, dass das Linux-Home-Verzeichnis einer Benutzerin automatisch angelegt wird, wenn sie sich am Server anmeldet. Das funktioniert mit verschiedenen Diensten: SSH, IMAP, aber auch Samba.

Wenn also das Windows-Heimatverzeichnis auf das Linux-Home-Verzeichnis zeigt, so wird dieses Verzeichnis auch automatisch angelegt. Andernfalls nicht.

Die Variante \servername\username zeigt in der Tat auf die Linux-Home-Verzeichnisse. Damit klappt es also. Falls Sie aber eine neue Share anlegen, z.B. »daten«, darunter dann ein Verzeichnis »Benutzer« und dann als Windows-Heimatverzeichins »\servername\daten\Benutzer\gmueller« einsetzen, so wird dies nicht automatisch angelegt.

Gruß,
mosu


#3

Vielen Dank, das hat mir sehr weiter geholfen :slight_smile:


#4

Ich habe auch noch eine Frage zu dem Thema:

Bei einem Kunden wurde ebenfalls das Windows-Verzeichnis bei neuen Usern nicht automatisch angelegt.

Ich habe dann am System den Fehler gesucht und festgestellt, dass der Profilordner (welcher ein anderer ist als das Windows-Home- oder Linux-Home-Verzeichnis) sehr wohl angelegt wird - das Home-Verzeichnis aber nicht.
Nach einigen Tests mit neu angelegten Usern wurde plötzlich auch der Profilordner nicht mehr automatisch erstellt, obwohl mir nicht bewusst gewesen wäre, dass ich etwas verändert hätte.

Leider habe ich erst danach diesen Beitrag gefunden.
Ich habe nun in der Benutzervorlage den Linux-Heimatpfad auf das gleiche Verzeichnis wie das Windows-Homeverzeichnis gelegt. Nun wird letzteres auch automatisch angelegt. Leider jedoch das Profilverzeichnis nicht mehr.
Wenn ich mich mit einem Testuser anmelden will, erhalte ich wieder nur ein temporäres Profil.

Was ich auch in den erweiterten Samba-Einstellungen der home-Freigabe gefunden habe, war ein “root preexec”-Skript.

Der Schlüssel lautet:
root preexec

Der Wert:
/root/scripts/samba_create_home_share.sh

und das Skript sah so aus:

#!/bin/bash

echo $1 > /tmp/test

if [ "$1" = "" ]; then
        exit 1
fi

if [ ! -d "/data/userdata/home/$1" ]; then
        mkdir "/data/userdata/home/$1"
        chmod 700 "/data/userdata/home/$1" -R
        chown "$1" "/data/userdata/home/$1" -R
        chgrp users "/data/userdata/home/$1" -R
fi

Es erwartet also einen Übergabewert. Dieser wird scheinbar nicht richtig gesetzt - jedenfalls stand in /tmp/test immer nur eine leere Zeile.
Abgesehen davon, dass die Gruppe nicht stimmt: Wie müsste ein solches Skript korrekt in die Samba-Einstellung eingebunden werden, damit es tatsächlich wie erwartet ausgeführt wird?

LG,
Roland.


#5

Moin,

[quote=“roland.gsell”]Ich habe auch noch eine Frage zu dem Thema:

Bei einem Kunden wurde ebenfalls das Windows-Verzeichnis bei neuen Usern nicht automatisch angelegt.

Ich habe dann am System den Fehler gesucht und festgestellt, dass der Profilordner (welcher ein anderer ist als das Windows-Home- oder Linux-Home-Verzeichnis) sehr wohl angelegt wird - das Home-Verzeichnis aber nicht.[/quote]

Das Linux-Home-Verzeichnis wird unter UCS normalerweise automatisch angelegt, wenn eine PAM-Session für den User gestartet wird. Das ist in vielen Situationen der Fall, z.B. bei Anmeldung via Samba, via FTP, an einem PAM-benutzenden Mailserver… Das geschieht über das das PAM-Modul »pam_mkhomedir.so«, das in »/etc/pam/common-session« aufgerufen wird; die »common-session« wiederum wird von den ganzen dienstspezifischen PAM-Konfigurationsdateien includiert.

Das passiert aber nur, wenn die Baseconfig-Variable »homedir/create« gesetzt ist.

Das ist aber bisher nur das nackte Home. Beim Anlegen des Homes wird allerdings auch gleich noch das Script »univention-skel« aufgerufen (siehe wieder »common-session«, »session optional pam_runasroot.so user program=/usr/bin/univention-skel«). Dieses fungiert ähnlich wie der Skeleton-Mechanismus vom »useradd«-Befehl und bestückt ein leeres Home-Verzeichnis mit gewissen Dateien und Verzeichnissen aus »/etc/univention/skel«. Und hier wird dann normalerweise auch »windows-profiles« angelegt.

Hinzu kommt noch das Script »univention-mount-homedir«, das dafür zuständig ist, das Home via NFS zu mounten, sofern das konfiguriert ist. Auch dieses Script prüft, ob das Home existiert und legt es an, falls nicht.

Prüfen Sie also bitte auf dem Server, auf dem die Profilverzeichnisse liegen:

[ol][li]Enthält »/etc/pam.d/samba« ein »@include /etc/pam.d/common-session«?[/li]
[li]Ist die UCR-Variable »homedir/create« auf »yes« oder »true« gesetzt?[/li]
[li]Enthält »/etc/pam.d/common-session« die Zeile »session required pam_mkhomedir.so skel=/etc/skel umask=0066«?[/li]
[li]Enthält »/etc/pam.d/common-session« die Zeile »session optional pam_runasroot.so user program=/usr/bin/univention-skel«?[/li]
[li]Existiert »/etc/univention/skel«, und ist darin wiederum ein Unterverzeichnis namens »windows-profiles«?[/li][/ol]

Wenn »univention-mount-homedir« ein Verzeichnis anlegt, dann steht da übrigens eine Zeile in »/var/log/user.log«: »Oct 5 11:43:29 master univention-mount-homedir: Creating home directory ‘/home/mbunkus’«

Das sollte eigentlich alles sein, was nötig ist, damit sowohl Home-Verzeichnisse als auch Profil-Verzeichnisse in den Homes automatisch angelegt werden. Klappt das nicht, so kann man in »/usr/bin/univention-skel« auch Debugging aktivieren (die Zeile »# sys.stdout = open( ‘/tmp/univention-skel.log’, ‘w’ )« einkommentieren — ACHTUNG! Anschließend wieder deaktivieren, sonst ist das ein Sicherheitsproblem) und sich die Ausgaben anschauen.

Ich rate von Experimenten wie eigenen »root preexec«-Scripten eher ab. Man kann diese nutzen, wenn die Profilverzeichnisse nicht im Linux-Home des Users liegen, sondern in einem anderen Pfad.

Falls die Profile aber im Linux-Home des Users liegen, so rate ich dringend zu debuggen, warum das automatische Anlegen nicht funktioniert.

Das ist letztlich keine gute Idee, weil das Home dadurch ziemlich zugemüllt wird, und ein User eher mal denkt »och, das Unterverzeichnis default.V5 kann ich doch löschen«, als wenn er nur »windows-profiles« sieht und weiß, wofür das da ist.

Das ist definitiv nicht Standard und wurde von Ihnen oder Ihrem Kunden manuell erstellt. Das sieht also schon nach einem Workaround für ein nicht richtig gefixtes Problem aus.

Gruß,
mosu