Bug 37611 - homeShare and homeSharePath are not unmapped
homeShare and homeSharePath are not unmapped
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UDM (Generic)
UCS 4.2
Other Mac OS X 10.1
: P5 normal (vote)
: UCS 4.2-1-errata
Assigned To: Johannes Keiser
Florian Best
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2015-01-24 17:46 CET by Lutz Willek
Modified: 2017-07-05 13:06 CEST (History)
3 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 3: Simply Wrong: The implementation doesn't match the docu
Who will be affected by this bug?: 4: Will affect most installed domains
How will those affected feel about the bug?: 2: A Pain – users won’t like this once they notice it
User Pain: 0.137
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Ticket number:
Bug group (optional): External feedback, Usability
Max CVSS v3 score:
best: Patch_Available+


Attachments
patch (1.51 KB, patch)
2015-02-11 15:36 CET, Florian Best
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Lutz Willek 2015-01-24 17:46:39 CET
Hallo,

Current UCS version is 4.0-0 errata48

Ich bin mir nicht sicher ob ich einen Bug gefunden oder nur ein Feature nicht verstanden habe, beim Versuch alle Userhomes auf ein NFS Share zu bekommen. 

Folgendes Vorgehen, hier am Beipiel der cli. (Verhalten des Webinterface ist identisch zur CLI)

# udm shares/share list --filter name=homes |grep DN
DN: cn=homes,cn=shares,dc=belug,dc=de
--> Das Share ist da.

# udm users/user list --filter username=lutz |grep homeShare
  homeShare: None
  homeSharePath: None
--> Kein Share ist für den User gesetzt.

# udm  users/user modify --dn uid=lutz,cn=users,dc=belug,dc=de \
  --set homeShare=cn=homes,cn=shares,dc=belug,dc=de \
  --set homeSharePath=lutz
Object modified: uid=lutz,cn=users,dc=belug,dc=de
--> Share wird für User gesetzt.

# udm users/user list --filter username=lutz |grep homeShare
  homeShare: None
  homeSharePath: None
--> Das Share ist für den User nicht gesetzt??

??? Hä? Ich hätte hier in etwa folgende Ausgabe erwartet, die aber nicht kommt:
  homeShare: cn=homes,cn=shares,dc=belug,dc=de
  homeSharePath: lutz

Gleiches passiert, wenn anstelle der cli die Weboberfläche benutzt wird: Es fühlt sich so an, als wenn homeShare sowie homeSharePath nicht gespeichert wird. (Man kann sowohl über web als auch auf cli ohne Probleme/Fehler die Einstellungen entsprechend setzen)

Im Ldap wird das sehr wohl gespeichert:
# univention-ldapsearch -LLL uid=lutz automountInformation
dn: uid=lutz,cn=users,dc=belug,dc=de
automountInformation: -rw nfs.belug.lan:/nfs/homes/lutz

... und dementsprechend funktioniert auch alles wie es soll:
# su lutz -c "cd ~; pwd ; df ."
/home/lutz
Dateisystem                   1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
nfs.belug.lan:/nfs/homes/lutz 102049152   61504  96780800    1% /home/lutz

freundliche, wenn auch verwirrte Grüße
Lutz Willek
Comment 1 Alexander Kläser univentionstaff 2015-02-10 15:08:35 CET
Hallo und vielen Dank für das Feedback!

Vielleicht hilft die folgende Handbuchstelle die Zusammenhänge genauer zu erklären:

http://docs.univention.de/manual-4.0.html#windows:serverhome:samba4

Sicher ist, dass an dieser Stelle eine Fehlernachricht oder auch ein zusätzlich erläuterneder UMC-Tooltip helfen würde.

Viele Grüße
Alexander Kläser
Comment 2 Lutz Willek 2015-02-11 02:50:00 CET
(In reply to Alexander Kläser from comment #1)
> Vielleicht hilft die folgende Handbuchstelle die Zusammenhänge genauer zu
> erklären:
> 
> http://docs.univention.de/manual-4.0.html#windows:serverhome:samba4

Sehr geehrter Herr Kläser,

dankeschön für den Verweis aufs Handbuch.

Leider ist diese Stelle im Handbuch wenig hilfreich für mich: Wir setzen hier kein Windows und kein Samba ein, UCS wird hier in einer reinen Linuxumgebung betrieben. Die Frage war ausgehend von einem mount des unix homedir eines users von einem NFS-Share gestellt. 

Ich glaube hier liegt auch ein Missverständnis vor: Per udm erstellte NFS-Shares werden angezeigt und können auch ausgewählt werden. Kein Wunder, schließlich ist das genau so gedacht, siehe auch univention/admin/handlers/users/user.py, Zeile 651, Zeile 662. Nach dem setzen des Homeshares per udm wird nach dem Login des Users über /etc/pam.d/common-session der mount getriggert, genauer wegen dem dem Eintrag: "session    required   pam_runasroot.so program=/usr/sbin/univention-mount-homedir". Kurz: Das Heimatverzeichnis wird anstandslos über NFS gemountet. Das war auch alles gar nicht die Fragestellung, weil das setzen per udm funktioniert genau wie erwartet und die Funktion ist genau wie per udm eingestellt, hier also alles schön!

Meine Frage ist lediglich, warum *nach* dem setzen des shares die gesetzten Einstellungen nicht mehr mit "udm users/user list" angezeigt werden. (bzw. das entsprechende Feld auf der Weboberfläche wieder leer ist)
Schließlich kann ich es ja auch setzen und es wird ja auch problemlos benutzt.

Hintergrund der Fragestellung: Nicht alle User haben ein über NFS freigegebenes Heimatverzeichnis, sondern einige haben einen ganz normalen Ordner (/home/<username>), dann eben jeweils auf dem lokalen Rechner auf dem der User sich gerade anmeldet. Mittels udm ist so momentan nicht erkennbar ob für den User jetzt ein share gemountet werden wird oder nicht. Einzige Möglichkeit an diese Information zu kommen ist momentan ein ldapsearch, wie bereits in der Ursprungsmail geschrieben.

Was mache ich falsch? Wie kann das Share so gesetzt werden, das es mittels udm nach dem setzen auch per udm angezeigt wird? Oder sollte das eigentlich angezeigt werden und ich bin hier über einen Bug gestolpert?

Gruß
Lutz Willek

> Sicher ist, dass an dieser Stelle eine Fehlernachricht oder auch ein
> zusätzlich erläuterneder UMC-Tooltip helfen würde.
> 
> Viele Grüße
> Alexander Kläser
Comment 3 Florian Best univentionstaff 2015-02-11 14:29:54 CET
(In reply to Alexander Kläser from comment #1)
> Hallo und vielen Dank für das Feedback!
> 
> Vielleicht hilft die folgende Handbuchstelle die Zusammenhänge genauer zu
> erklären:
> 
> http://docs.univention.de/manual-4.0.html#windows:serverhome:samba4
> 
> Sicher ist, dass an dieser Stelle eine Fehlernachricht oder auch ein
> zusätzlich erläuterneder UMC-Tooltip helfen würde.
In der Bug-Beschreibung geht es um den homePath und homeSharePath (POSIX) und nicht um den verlinkten Windows-Home-Path.

I reproduced the problem and did a little code review. Yes, the homeShare and homeSharePath are correctly set in LDAP but it is not unmapped leading to the problem that it is always displayed as empty in UMC or UDM-CLI.
Comment 4 Florian Best univentionstaff 2015-02-11 14:33:06 CET
(In reply to Lutz Willek from comment #2)
> Was mache ich falsch? Wie kann das Share so gesetzt werden, das es mittels
> udm nach dem setzen auch per udm angezeigt wird? Oder sollte das eigentlich
> angezeigt werden und ich bin hier über einen Bug gestolpert?
Sie machen nichts falsch, das ist tatsächlich ein Produktfehler! Siehe auch comment #3.

Vielen Dank für Ihr Feedback und viele Grüße
Florian Best
Comment 5 Florian Best univentionstaff 2015-02-11 15:36:13 CET
Created attachment 6665 [details]
patch

I created a patch for this: The error consists of 2 errors:
A ldap search using the UDM property names instead of the LDAP attributes was done. The ldap search may fail if the set up share did not have a trailing slash / on it's path defined.
Comment 6 Lutz Willek 2015-02-12 03:40:45 CET
(In reply to Florian Best from comment #5)
> Created attachment 6665 [details]

Sehr geehrter Herr Best,
Kurz: Patch getestet, alles schön so, vielen Dank!

Lang: Der Patch aus comment #5 gegen ucs 4.0-1 errata82 getestet löst das Problem vollständig. Über cli und auch auf der Weboberfläche können jetzt posix homeshares gesetzt und auch wieder ausgelesen werden. Vor dem Einspielen des Patches angelegte Sharedefinitionen werden korrekt angezeigt.


udm users/user list --filter username=lutzm |grep homeShare
  homeShare: None
  homeSharePath: None

udm users/user modify --dn uid=lutzm,cn=users,dc=belug,dc=de --set homeShare=cn=homes,cn=shares,dc=belug,dc=de --set homeSharePath=lutzm
Object modified: uid=lutzm,cn=users,dc=belug,dc=de

udm users/user list --filter username=lutzm |grep homeShare
  homeShare: cn=homes,cn=shares,dc=belug,dc=de
  homeSharePath: lutzm

Btw: Schön zu sehen wie die Informationen aus automountInformation wieder in homeShare und homeSharePath zerlegt werden.

Gruß
Lutz Willek
Comment 7 Johannes Keiser univentionstaff 2017-06-29 17:53:50 CEST
(In reply to Florian Best from comment #5)
> Created attachment 6665 [details]
> patch
> 
> I created a patch for this: The error consists of 2 errors:
> A ldap search using the UDM property names instead of the LDAP attributes
> was done. The ldap search may fail if the set up share did not have a
> trailing slash / on it's path defined.

Applied patch:

r 80651
univention-directory-manager-modules (12.0.17-32) 
* Bug #37661: Applied patch from Florian Best - Correctly unmap homeShare
and homeSharePath

r 80653
univention-directory-manager-modules (12.0.17-33) 
* Bug #37661: Applied additional patch for escaping


YAML: r 80652
Comment 8 Florian Best univentionstaff 2017-06-29 19:47:06 CEST
OK: change still works ^^ homeShare and homeSharePath are correctly unmapped
OK: ldap filter escaping
OK: YAML
Comment 9 Janek Walkenhorst univentionstaff 2017-07-05 13:06:16 CEST
<http://errata.software-univention.de/ucs/4.2/79.html>