Bug 27468 - GPO's werden beim Löschen nicht zuverlässig im Dateisystem entfernt
GPO's werden beim Löschen nicht zuverlässig im Dateisystem entfernt
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba4
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.1-1
Assigned To: Stefan Gohmann
Arvid Requate
:
Depends on:
Blocks: 47579
  Show dependency treegraph
 
Reported: 2012-06-06 14:28 CEST by Tim Petersen
Modified: 2018-08-13 11:51 CEST (History)
4 users (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 Tim Petersen univentionstaff 2012-06-06 14:28:18 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.
Comment 1 Ingo Steuwer univentionstaff 2013-01-31 09:08:05 CET
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.
Comment 2 Arvid Requate univentionstaff 2013-01-31 13:39:51 CET
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.
Comment 3 Stephan Hendl 2013-01-31 15:51:43 CET
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.
Comment 4 Stefan Gohmann univentionstaff 2013-03-08 11:12:10 CET
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
Comment 5 Arvid Requate univentionstaff 2013-03-18 18:49:52 CET
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.
Comment 6 Stefan Gohmann univentionstaff 2013-03-18 20:32:26 CET
(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.
Comment 7 Arvid Requate univentionstaff 2013-03-19 17:49:07 CET
Verified:
* GPO detection works
* move works
* cronjob works
* changelog OK
Comment 8 Stefan Gohmann univentionstaff 2013-03-25 19:56:44 CET
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".