Univention Bugzilla – Bug 27468
GPO's werden beim Löschen nicht zuverlässig im Dateisystem entfernt
Last modified: 2018-08-13 11:51:27 CEST
Folgendes wurde im Zuge der Bearbeitung von Ticket #2012060621001041 beobachtet: (UCS 3.0-1 errata 77, Master+Backup Umgebung) Wird mit AD-Managementtools (z.B. die Remoteserver-Verwaltungstools) eine GPO gelöscht, so wird diese erfolgreich auf den UCD DC's aus der LDB entfernt. Es verbleiben hier allerdings die GPO-Verzeichnisse unterhalb von /var/lib/samba/sysvol/<domain>/Policies/ und entsprechend /var/cache/univention-samba4/sysvol-sync/<host>/<domain>/Policies Auffällig ist u.U. dass diese Verzeichnisse beim Hinzufügen neuer GPO's auch mit abweichenden Berechtigungen im Dateisystem erstellt werden: root@master:/var/lib/samba/sysvol/domain.local/Policies# ls -la insgesamt 40 drwxr-xr-x+ 5 root adm 4096 6. Jun 14:06 . drwxr-xr-x+ 4 root adm 4096 6. Jun 09:53 .. drwxr-xr-x+ 4 root adm 4096 6. Jun 09:53 {31B2F340-016D-11D2-945F-00C04FB984F9} drwxr-xr-x+ 4 root adm 4096 6. Jun 09:53 {6AC1786C-016F-11D2-945F-00C04FB984F9} drwxrwx---+ 4 root Domain Admins 4096 6. Jun 14:04 {E8A8CF82-2573-4E1B-BE54-7B5F86773B67} Die ersten beiden Verzeichnisse sind hier die Standard Domain-Policies und das letzte Verzeichnis die neue Test-GPO. ############################################################################## root@master:/var/lib/samba/sysvol/terminator.local/Policies# samba-tool gpo listall | grep GPO GPO : {6AC1786C-016F-11D2-945F-00C04FB984F9} GPO : {31B2F340-016D-11D2-945F-00C04FB984F9} ############################################################################## root@master:/var/lib/samba/sysvol/terminator.local/Policies# univention-s4search cn={E8A8CF82-2573-4E1B-BE54-7B5F86773B67} # Referral ref: ldap://terminator.local/CN=Configuration,DC=terminator,DC=local # returned 1 records # 0 entries # 1 referrals ############################################################################## Nach Absprache mit Arvid wird das Anlegen/Löschen der Verzeichnisse von Samba selbst umgesetzt - evt. würde hier ein Listener-Modul, welches prüft und aufräumt o.Ä. Sinn machen. Nach Absprache als Enhancement.
Nach Feedback u.a. aus Ticket#: 2013011121000717 scheint die Sysvol-Replikation zwischen mehreren Samba4-DCs das Löschen von Dateien nicht zuverlässig zu replizieren.
Bisher wird nichts gelöscht. Man könnte hier z.B. bei der Replikation auf dem Zielsystem prüfen, welche GPOs im lokalen Samba Verzeichnisdienst registriert sind. GPO-Verzeichnisse, die noch im Samba Verzeichnisdienst in GPCs registriert sind, sollten besser (noch) nicht gelöscht werden, auch wenn sie auf einem anderen DC verschwinden. Das Löschen sollte per UCR deaktiverbar sein.
Für uns wäre das Löschen nicht mehr im Verzeichnisdienst vorhandener GPOs aus dem Filesystem shr hilfreich, da es mehrfach zu Verwirrungen - insb. beim Debugging - geführt hat. Unabhängig von einem ggf. zu erstellenden Listener-Modul wäre ein einmal täglich auszuführender cronjob m.E. ausreichend.
Problematisch an der aktuellen Implementierung ist, dass der GPOs im Dateisystem zeitgleich auf allen DCs verschoben werden müssen. Zumindest darf kein Sync dazwischen gehen. Man könnte sich nun alle möglichen Methoden überlegen, wir bereits einmal gelöschte GPOs markiert werden usw., das würde das - ohnehin schon nicht ganz einfache - Handling aber nur noch weiter verkomplizieren. Hinzu kommt, dass benötigte und nicht vorhandene GPOs ein kritisches Problem sind (keine Anmeldung möglich), überflüssige GPOs im Dateisystem sind unschön, aber unkritisch. Per Default wird der Sync Cron Job alle 5 Minuten ausgeführt. Das bedeutet in der Zwischenzeit müssen diese lokalen GPOs verschoben werden. Ich habe jetzt ein Tool hinzugefügt /usr/share/univention-samba4/scripts/sysvol-cleanup.py. Damit können GPOs, die noch im LDAP definiert sind, aber lokal im Dateisystem noch vorhanden sind, in ein Backup Verzeichnis verschoben werden. Dieses Tool wird jetzt jeden Tag um 04:04 Uhr durch sein. Die Operationen sind lokal und sollten damit vor dem nächsten Sync, der um 04:05 Uhr gestartet wird durch sein. Alternativ können die Cron Jobs per UCR an die eigene Umgebung angepasst werden oder ganz entfernt werden. Tool: /usr/share/univention-samba4/scripts/sysvol-cleanup.py Backup Verzeichnis: /var/lib/samba/sysvol_backup UCR Variablen: samba4/sysvol/cleanup/cron samba4/sysvol/cleanup/parameters
Das tool sucht momentan nach gPLink und findet so nur GPOs, die mit irgendwas verknüpft sind. Ich glaube es ist besser den Suchfilter wie folgt anzupassen: univention-s4search '(objectClass=groupPolicyContainer)' cn Btw: Ich habe schon mehrfach gesehen, dass in Samba GPOs ohne "name" attribut angelegt waren, was dazu führt dass z.B. "samba-tool drs listall" abbricht. Ggf. könnte das Skript kurz mit testen ob "name" gesetzt ist und sonst eine Warnung mit ausgeben? Aber vielleicht ist das auch nicht zielführend.
(In reply to comment #5) > Das tool sucht momentan nach gPLink und findet so nur GPOs, die mit irgendwas > verknüpft sind. Ich glaube es ist besser den Suchfilter wie folgt anzupassen: > > univention-s4search '(objectClass=groupPolicyContainer)' cn Ja, definitiv. Ist umgestellt. > Btw: Ich habe schon mehrfach gesehen, dass in Samba GPOs ohne "name" attribut > angelegt waren, was dazu führt dass z.B. "samba-tool drs listall" abbricht. > Ggf. könnte das Skript kurz mit testen ob "name" gesetzt ist und sonst eine > Warnung mit ausgeben? Aber vielleicht ist das auch nicht zielführend. Nein, ich glaube hier passt das nicht hin.
Verified: * GPO detection works * move works * cronjob works * changelog OK
UCS 3.1-1 has been released: http://download.univention.de/doc/release-notes-3.1-1_en.pdf http://download.univention.de/doc/release-notes-3.1-1.pdf If this error occurs again, please use "Clone This Bug".