Own-/Nextcloud Userpflege: automatisch funktioniert nicht -> selfmade

Hallo Liste,

da es noch kein OwnCloud / Nextcloud Thema gibt, habe ich mal das passendste ausgewählt.

Ich möchte meine Cloud (seit gestern Nextcloud) von alten Usern bereinigen. Dazu gibt es eine Variable
‚ldapUserCleanupInterval‘ => 51,
in der config.php, die eigentlich dafür sorgen soll, dass alle 51 Minuten 50 (diese Anzahl ist nicht einstellbar) LDAP-Benutzer überprüft werden, ob sie noch auf dem LDAP existent sind, und wenn nicht, sie als „gelöscht“ markiert werden (anschließend kann man sie dann löschen).
Dies funktioniert bei mir überhaupt nicht. Nutzt das jemand, funktioniert es bei Euch? Im Netz habe ich nichts dazu gefunden.

Nun habe ich das owncloud-datenverzeichnis (bei mir /owncloud-data) in eine liste gepackt, meines Erachtens die einzige Möglichkeit, alle Nutzernamen zu bekommen:

ls /owncloud-data/ | grep -v "\." > /tmp/userlist

und dann den check-user-Befehl drauf losgelassen:

for i in `cat /tmp/userlist` ; do sudo -u www-data php occ ldap:check-user $i; done

Nun kann man die als gelöscht markierten Benutzer anschauen:

sudo -u www-data php occ ldap:show-remnants | cut -d "|" -f 2 | grep -v ^+ | grep -v ownCloud | cut -b 2- >> /tmp/zuloeschendeuser
cat /tmp/zuloeschendeuser

und nach einer Überprüfung löschen.

for i in `cat /tmp/zuloeschendeuser`; do sudo -u www-data php occ user:delete $i; done

freue mich auf Anmerkungen,

viele Grüße,

Max

Hi Max :),

schön, dass wir immer dieselben Probleme oder auch Lösungen haben. Scheinbar kein anderer :slight_smile:
Ich habe hier mal geschrieben, wie ich das jetzt jedes Jahr machen würde:
http://www.linuxmuster.net/wiki/anwenderwiki:owncloud:schuljahreswechsel

Ich vermute, unsere Skripte machen dasselbe. oops, dein Skript löscht natürlich mehr user. Nämlich auch, die, die es nach check-user gefunden hat.

Ich habe von der owncloud/nextcloud internen Sache gar nichts gewusst.

Möchte noch mehr Themen anschneiden, die mich nachdenklich stimmen, wie gut nextcloud wirklich in eine Schullösung passt:

Userpflege: Datenübernahme

Hier las ich, dass man Daten übernehmen muss, sonst sind sie weg (z.B. lehrer A teilt sein geschriebenes Curriculum mit den Kollegen -> weg?), klar gibt es dafür eine Kommandozeile:
https://docs.nextcloud.com/server/11/admin_manual/configuration_server/occ_command.html#file-operations

Eigentlich kann das nicht unsere (administrative) Aufgabe sein, sich um die Inhalte zu kümmern. Beim Tausch-Ordner ist halt zwar der User weg, aber die Dateien bleiben im Tauschordner oder man holt sich Daten aus dem Backup zurück. Bei Cloud ist das wesentlich schwieriger…das ist z.B. beim Kalender wesentlich komplizierter.

Achso, der naheliegende Workaround: Alles gehört einem Admin, der es mit den Lehrern teilt, nennt Nextcloud “Persistent file shares” führt das Sharing konzept etwas ad absurdum, aber es ist vermutlich praktikabel. Wenn der Ordner dann für private Daten eines Lehrers mißbraucht wird, dann leben die dort auch ewig.

Userpflege: usernamen ändern, domäne ändern

Eher selten: Wer den usernamen am server ändert, der wird auch bei der cloud neu anfangen müssen. Auch selten: Wer die Domäne auf dem Server ändert (so wie ich gerade), der kann auch auf die Nase fliegen. User werden neu angelegt und die haben natürlich nix mehr.

Userpflege: Teilen mit Klassen

Während es bei den Tauschverzeichnissen die Möglichkeit gibt, Lehrer aus den Klassen am SJ-Ende rauszuschmeißen, müssen Lehrer, wenn sie etwas mit der “8a” geteilt haben, am Ende des Jahres selbst dafür sorgen, dass dies nicht mehr so ist.
(Oder hast du da Kommandozeilenparameter gefunden, die shares der User zu manipulieren?)

Viele liebe Grüße,
Tobias

Hi Max,

i don’t get it.

Hab ich probiert, ebenso mein Skript.
Ich bin der Überzeugung, occ würde die user löschen, auch wenn sie laut LDAP nicht mehr im System wären.
Stattdessen kommt:

user:delete <uid>


                                     
  [OC\User\NoUserException]          
  taste is not a valid user anymore  
                                     

für alle user ??häh??

also, vllt. hatte ich die eben schon gelöscht, aber deren Verzeichnisse sind ja weiterhin da.
Also ich muss wohl noch die Verzeichnisse von hand löschen, wenn sie aus LDAP erstmal raussind.
Ob sie jetzt noch in der Datenbank sind, ist mir unklar.

VG, Tobias

Hallo Tobias,

diese Meldung kommt auch bei mir, wenn ich einen user von Hand in occ lösche. Lässt man sich anschließend die remnants anzeigen, ist der soeben gelöschte user wieder dabei. Das war früher bei der owncloud nicht der Fall. Google zeigt für das Problem eine opended issue:

Viele Grüße

Wilfried

HI Max,

ist zwar nicht Userpflege, aber irgendwie schon:

Kalender in Nextcloud/Owncloud pflegen

Ich pflege für meine Kollegen zwei Kalender “öffentlich” und “intern” und jetzt beim Schuljahreswechsel fällt mir auf, dass ich jedes Jahr die Kalender bereinigen muss, d.h. alte Daten rausschmeißen muss, weil die Pflege sonst unglaublich viel langsamer wird.
Beispiel: Ich habe ca. 100 Einträge im Kalender fürs nächste Schuljahr, einen weiteren hinzuzufügen kostet über das webinterface in meiner konstellation ca. 3 Sek. Zeit. Wenn ich in einen Kalender, der schon Termine zweier Schuljahre enthält (ca. 180 Einträge) hinzufüge, kostet das ca. 18 Sek. Zeit.
Das Hinzufügen ist zwar irrelevant, aber ich vermute, dass auch das Lesen des Kalenders immer langsamer wird.

VG, Tobias

Hallo Tobias,

nein, occ löscht bei mir nicht mehr vorhandene LDAP-User nicht, auch wenn es behauptet wird. Deshalb hatte ich den Umweg über das script gemacht. Ich glaube, die Ordner der Nutzer musste ich dann auch nochmal von Hand löschen. Das war aber alles unter OC. Unter NC habe ich noch nichts probiert. Aber die Userpflege ist noch sehr lästig.

Dein Issue mit den Kalendern ist auch seltsam. 180 Einträge sollten nicht die Welt sein, oder?

LG
Max

Hallo Tobias,

da hänge ich auch gerade. Ich habe dazu

gefunden, verstehe aber nur Bahnhof, wie ich das richten kann.

Vll. hst Du eine Idee?

LG
Max

Hi Max,

ich kann auch nur lesen und für mich steht da: ist ein Bug, “blizzz” hat einen bugfix, keiner hat ihn angeguckt, er wurde bisher nicht akzeptiert, er müsste sowieso auf 12 backgeportet werden, was so viel heißt, wenn ihn überhaupt jemand anschaut und er akzeptiert wird, kommt das in Version 13 wieder … oder so ähnlich.
So lange würde ich die User drin lassen, denn die home-verzeichnisse von hand löschen könnte bedeuten, dass selbst mit bugfix die karteileichen in der datenbank bleiben werden.

Wie gesagt: mir schwant, dass die userpflege nicht so passend für Schulen sind, wie es sophomorix kann.
(Sophomorix händelt user aus dem ldap, und man kann selbst restdaten von gelöschten usern noch finden und anderen usern zuordnen. DAs würde mit owncloud nicht klappen (muss vllt. auch nicht))

VG, Tobias

Hallo!

So, es hat mich so genervt, dass ich 1000 Benutzer in der NC habe, dass ich auf Version 13beta3 gegangen bin und schwupps :slight_smile: Die LDAP-Benutzer lassen sich löschen.
Das habe ich gleich mal mit dem script ganz oben ausgeführt, jetzt bin ich die in LDAP gesperrten und gelöschten los. Mal schaun, ob ich doch noch auf den Snapshot zurück muss (ich hoffe, nicht), weil ich irgendwas verhakelt hab…

LG
Max

welches meinst du. das hier?

vg, Tobias

Ja. Das.
Man sollte die zuloeschendeuser aber nochmal durchsuchen…
Aber ich habe mich (vielleicht) zu früh gefreut. Er sagt zwar “User deleted” und zeigt sie nicht mehr in der NC an, aber über die shell sehe ich die User immer noch als “remnants” und ihre Daten sind auch noch da (bäh).
Da muss ich nochmal ran.

LG
Max

Hallo Max,

geht denn in Version 13 wenigtens wieder das händische Löschen als OCC?

Viele Grüße

Wilfried

Hallo!

wenn ich die Ausgabe von ldap:check-user ganz genau gelesen hätte… Die machen da " um den Namen. Damit gings bei mir, sogar die Order der User sind verschwunden…

Hurra!
hoffentlich habe ich mich nicht wieder zu früh gefreut…

LG
Max

1 „Gefällt mir“

Hi Max,

erstmal: kudos, again.
Hab jetzt auf nextcloud 13 ge-uppt und tatsäclhich funktioniert das Löschen.

ich hab die Wikiseite aktualisiert: anwenderwiki:owncloud:schuljahreswechsel [CommunityWiki]
und habe festgestellt, dass (obwohl seit dem letzten Versuch) weitere User weggekommen sind, sich die liste der remnants nicht veränderte, nachdem ich „check-user“ auf alle user der userlist losgelassen hatte.

D.h. teste du auch mal: vielleciht ist der ganze kram (ls/ ldap:check-user / show-remnants ) auch niht mehr nötig und ein „user:delete“ funktioniert sogar schon mit allen usern, die tatsächlich nicht mehr in LDAP sind.

VG, Tobias

Hallo Max und Tobias,

tausend Dank für euer Script.
Ich will jetzt nämlich auch endlich mal Nutzer löschen: und das sind in
meiner Nextcloud wohl 787 Stück ( von ca. 1550).

Sehe ich das richtig (ich habe NC 16), dass folgende Zeilen reichen würden?

sudo -u www-data php occ ldap:show-remnants | cut -d "|" -f 2 | grep -v ^+ | grep -v ownCloud | cut -b 2- >> /tmp/zuloeschendeuser

cat /tmp/zuloeschendeuser

for i in cat /tmp/zuloeschendeuser; do sudo -u www-data php occ
user:delete “$i”; done

Ich muß ja nciht vorher noch die Nutzer aus dem dataverzeichnis
auslesen: die findet ja schon ldap:show-remnants

Ich hab mir auch die /tmp/zuloeschendeuser angesehen: es sind 787 und
ich hab mit Stichproben jetzt keine gefunden, die noch im LDAP sind.

LG

Holger

Hi Holger,
ich hatte die aus dem data Verzeichnis genommen, da ich es wohl geschafft hatte, dort Leichen zu vergraben. Aber du kannst ja erstmal die 700 so löschen und gucken, ob in data was übrig bleibt…
Viel Erfolg, Max

aber zu Deiner Frage: ja, das sollte reichen…

Hi. Ich schiebe dieses Thema nochmal nach oben, da es bei uns in Sachen „NextCloud für alle“ demnächst auch damit losgehen wird, dass alte Accounts, die es im LDAP/AD gar nicht mehr gibt, auch unter NextCloud gelöscht werden müssen. Hat das jemand unter NC 18 ausprobiert und funktioniert das weiterhin so wie hier gezeigt?
Problematisch scheinen ja weiterhin die Files zu sein, die von Leuten geteilt wurden, die dann gelöscht werden sollen – oder?

Schöne Grüße,
Michael

Hallo Michael,
wie das mit Dateien ist, die geteilt wurden, weiß ich nicht, das müsste man mal ausprobieren.
Ich lösche meine Schüler jedenfalls immer noch so (war im Sommer aber noch NC15).
Eigentlich sollte es ja eine eingebaute LDAP-cleanup-funktion geben, in der config.php die Zeile

  'ldapUserCleanupInterval' => 5,

aber das hat bei mir keine Auswirkung. Ich habe allerdings auch von Version 6 ab hochgedatet, vielleicht ist da auch etwas einer älteren Version hängengeblieben…
Was jedoch mittlerweile geht, ist

 'activity_expire_days' => 14,

welches die Datenbankgröße der Aktivitäten schön klein hält, bis Version 14 oder so hatte ich noch ALLE jemals gespeicherten Aktivitäten drinnen.

LG
Max

Hallo Max.
OK, gut zu wissen.
Die Option zum Aufräumen der Aktivitäten habe ich zufällig gestern auch gesetzt. Es fiel auf, dass das bei Kalendereinträgen durchaus sinnvoll sein kann, da nicht alles zu loggen…
Die andere Option hatte ich auch schon gesehen - weiß aber auch nicht, ob es funktioniert. Wir denken über eine Cloud für Schüler nach… Da müssen solche Aufräumarbeiten jedenfalls regelmäßig laufen, damit das nicht unnötig voll läuft…
Schönen Gruß
Michael