Bug 24225 - Posix UID Mapping für Samba4 Update Szenario 1
Posix UID Mapping für Samba4 Update Szenario 1
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba4
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0 - RC
Assigned To: Stefan Gohmann
Arvid Requate
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-10-27 08:28 CEST by Arvid Requate
Modified: 2011-12-13 15:50 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2011-10-27 08:28:36 CEST
Dieser Bug fiel auf bei Update Szenario 1: Aufbau einer neuen Windows
Domäne

Wenn die SID-Synchronisation per connector/s4/mapping/sid="false" deaktiviert ist, funktioniert die IDMAP-Pflege per samba4-idmap Listener nicht mehr:

1. Liest der Listener die Samba3-SIDs aus dem OpenLDAP, und schreibt diese in idmap.ldb, statt die Samba4-SIDs.

2. Bekommt der Listener nicht mit, wenn Samba4 eine SID vergiebt.


Aktuell sehe ich hier folgende fünf Optionen:

a) winbind3 mit idmap_nss starten und von Samba4 verwenden lassen.

b) Die Funktionalität von idmap_nss in Samba4 rein patchen. D.h. die Funktion idmap_sid_to_xid in Samba4 so anpassen, dass dort SID to name und dann getpwnam/getgrnam verwendet wird, analog zu idmap_nss_sids_to_unixids aus source3/winbindd/idmap_nss.c

c) Workaround im samba4-idmap Listener, d.h. 1. richtige SIDs aus Samba4-LDB heraussuchen und 2. irgendwie triggern, dass der Listener überhaupt aufgerufen wird (z.B. modify auf ein trigger-Attribut).

d) Ein LDB-Modul (oder die Erweiterung eines existierenden).

e) Ein sperater Daemon, der auf jedem Samba4-System läuft und dort entweder analog zum S4-Connector LDB-Änderungen pollt oder per dirsync auf LDB-Änderungen triggert.



+++ This bug was initially created as a clone of Bug #23917 +++

Samba4 verwendet aktuell nicht die Posix-ID Zuordnung, die im OpenLDAP
definiert ist:
Comment 1 Stefan Gohmann univentionstaff 2011-10-27 12:24:22 CEST
Wir hatten jetzt besprochen, dass der Connector die SID von S4 in ein anderes Attribut synchronisiert. Der Listener reagiert dann auf diese SID.
Comment 2 Arvid Requate univentionstaff 2011-10-27 12:42:36 CEST
Ok, das ist Variante c). Als Attributname könnte man univentionSamba4SID verwenden (Das AD-Attribut "sIDHistory"  hat eine andere Semantik und gibt es noch nicht im Samba3-Schema).

Todo:

 * Attribut im Schema in univention-ldap-config definieren

 * Im S4 Connector in dieses Attribut schreiben, wenn connector/s4/mapping/sid="false"

 * Im samba4-idmap Listener das Attribut verwenden, das in samba4/idmap/sidattribute definiert ist.

 * Wenn die UCR-Variable samba4/idmap/sidattribute auf einem der Samba4-Systeme nicht definiert ist, beim Start des Listener-Moduls prüfen, ob windows/domain == sambaDomainObject ist. Falls ja, sollte es die sambaSID in die idmap schreiben, sonst die univentionSamba4SID.
Comment 3 Stefan Gohmann univentionstaff 2011-10-28 06:16:53 CEST
fixed

root@master51:~# ucr get connector/s4/mapping/sid
false
root@master51:~# samba-tool user add karl univention
User 'karl' created successfully
root@master51:~# univention-ldapsearch uid=karl uidNumber sambaSID univentionSamba4SID -LLL
dn: uid=karl,cn=users,dc=deadlock5,dc=local
uidNumber: 2020
sambaSID: S-1-4-2020
univentionSamba4SID: S-1-5-21-1436884104-1881371918-1669042584-1123

root@master51:~# ldbsearch -H /var/lib/samba/private/idmap.ldb xidNumber=2020
# record 1
dn: CN=S-1-5-21-1436884104-1881371918-1669042584-1123
cn: S-1-5-21-1436884104-1881371918-1669042584-1123
objectClass: sidMap
objectSid: S-1-5-21-1436884104-1881371918-1669042584-1123
type: ID_TYPE_UID
xidNumber: 2020
distinguishedName: CN=S-1-5-21-1436884104-1881371918-1669042584-1123

# returned 1 records
# 1 entries
# 0 referrals
root@master51:~# 
(In reply to comment #2)


> Ok, das ist Variante c). Als Attributname könnte man univentionSamba4SID
> verwenden (Das AD-Attribut "sIDHistory"  hat eine andere Semantik und gibt es
> noch nicht im Samba3-Schema).
> 
> Todo:
> 
>  * Attribut im Schema in univention-ldap-config definieren

Das Attribut ist im samba Schema definiert mit einer OID von uns.
 
>  * Im S4 Connector in dieses Attribut schreiben, wenn
> connector/s4/mapping/sid="false"

Ist angepasst.
 
>  * Im samba4-idmap Listener das Attribut verwenden, das in
> samba4/idmap/sidattribute definiert ist.
> 
>  * Wenn die UCR-Variable samba4/idmap/sidattribute auf einem der Samba4-Systeme
> nicht definiert ist, beim Start des Listener-Moduls prüfen, ob windows/domain
> == sambaDomainObject ist. Falls ja, sollte es die sambaSID in die idmap
> schreiben, sonst die univentionSamba4SID.

Dafür sollte die connector/s4/mapping/sid Variable gesetzt werden, da es nur für eine Übergangszeit ist, sollte das aus meiner Sicht reichen,
Comment 4 Arvid Requate univentionstaff 2011-11-24 13:53:12 CET
Funktioniert.
Comment 5 Stefan Gohmann univentionstaff 2011-11-29 16:06:35 CET
Es ist aufgefallen, dass die univentionSamba4SID für neue Benutzer übernommen wird, allerdings nicht für existierende Benutzer.
Comment 6 Stefan Gohmann univentionstaff 2011-11-29 16:34:35 CET
Neue Version baut.

In der QA bitte auch nochmal die Standard-Synchronisation testen.
Comment 7 Stefan Gohmann univentionstaff 2011-11-30 12:23:55 CET
(In reply to comment #5)
> Es ist aufgefallen, dass die univentionSamba4SID für neue Benutzer übernommen
> wird, allerdings nicht für existierende Benutzer.

Das war in meiner Testumgebung noch so.
Comment 8 Stefan Gohmann univentionstaff 2011-11-30 18:18:26 CET
fixed

Für eine bessere Fehlerbeschreibung: Bug #25037.
Comment 9 Arvid Requate univentionstaff 2011-12-01 19:38:52 CET
Verified:
 * Auch an Benutzern, die angelegt worden sind bevor der univention-s4-connector auf dem neuen UCS 3.0 Samba4 DC Backup installiert wurde, ist danach das Attribut univentionSamba4SID mit der SID gesetzt, die Samba4 vergeben hat.
 * An Benutzern, die danach angelegt wurden funktionierte das auch weiterhin.
Comment 10 Sönke Schwardt-Krummrich univentionstaff 2011-12-13 15:50:33 CET
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert
werden: "Clone This Bug"