Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
anwenderwiki:owncloud:schuljahreswechsel [2018/03/11 15:39] – Tobias | anwenderwiki:owncloud:schuljahreswechsel [2023/09/10 16:22] – [Noch nicht gelöschte Accounts anzeigen] tobias | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{tag> }} | ||
+ | ====== Schuljahreswechsel nextcloud: Alte Benutzer löschen ====== | ||
+ | |||
+ | Wer seine Owncloud/ | ||
+ | |||
+ | - Backup machen | ||
+ | - Nicht verwendete Accounts anzeigen und durchgehen | ||
+ | - vorsichtig folgendes Skript laufen lassen oder Benutzer manuell löschen | ||
+ | |||
+ | ===== Backup machen ===== | ||
+ | [[anwenderwiki: | ||
+ | |||
+ | ===== Alle Accounts löschen, die nicht mehr in LDAP sind ===== | ||
+ | |||
+ | - Der Pfad zur Owncloud/ | ||
+ | - Der Pfad zu Owncloud/ | ||
+ | |||
+ | |||
+ | (danke @max, der [[https:// | ||
+ | |||
+ | |||
+ | ==== Alle User überprüfen ==== | ||
+ | |||
+ | Nun habe ich das owncloud-datenverzeichnis (bei mir ''/ | ||
+ | |||
+ | < | ||
+ | ls / | ||
+ | </ | ||
+ | und dann den check-user-Befehl drauf losgelassen: | ||
+ | < | ||
+ | for i in `cat / | ||
+ | </ | ||
+ | Das findet nochmal alle die User, die bisher noch als vorhanden geglaubt wurden. | ||
+ | |||
+ | ==== Noch nicht gelöschte Accounts anzeigen ==== | ||
+ | Auf dem Cloudserver folgender Befehl zeigt alle nicht (mehr) in LDAP gefunden User an: | ||
+ | < | ||
+ | sudo -u www-data php / | ||
+ | </ | ||
+ | |||
+ | Bei mir erscheinen hier auch viele Computerkonten, | ||
+ | < | ||
+ | root@cleese: | ||
+ | +---------------+--------------------+---------------+---------+---------------+-----+--------+ | ||
+ | | ownCloud name | Display Name | LDAP UID | LDAP DN | Last Login | Dir | Sharer | | ||
+ | +---------------+--------------------+---------------+---------+---------------+-----+--------+ | ||
+ | | lzdisplay01 | ||
+ | | lzdisplay02 | ||
+ | | lzlaptop01 | ||
+ | | test | | | ||
+ | | zztop | ||
+ | +---------------+--------------------+---------------+---------+---------------+-----+--------+ | ||
+ | </ | ||
+ | |||
+ | Zudem: Achtung, manchmal findet `ldap: | ||
+ | Ein check-user (siehe oben) überprüft aber tatsächlich, | ||
+ | |||
+ | ==== Accounts manuell löschen ==== | ||
+ | Die mit '' | ||
+ | <note important> | ||
+ | |||
+ | Natürlich werden alle Daten der Karteileichen entfernt. Wenn also dem ehemaligen Benutzer Daten gehören, die er/sie geteilt hat und die andere noch sehen konnten, so sind diese nach dieser Löschung spätestens verschwunden.</ | ||
+ | < | ||
+ | sudo -u www-data php / | ||
+ | </ | ||
+ | ===== Accounts per Skript löschen ===== | ||
+ | Mit folgendem Skript landen alle zu loeschenden User in einer Zwischendatei in ''/ | ||
+ | < | ||
+ | sudo -u www-data php / | ||
+ | </ | ||
+ | bevor man mit dem zweiten Befehl die User tatsächlich löscht. | ||
+ | < | ||
+ | for i in `cat / | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Achtung, dieser Befehl zeigt nur an was getan wird. Für das richtige Löschen, entferne man das " | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== Komplettes Skript vom Server aus ==== | ||
+ | |||
+ | <note important> | ||
+ | Achtung, folgendes Skript testet, ob der der server auch " | ||
+ | Ebenso heißt der Server auf dem nextcloud läuft " | ||
+ | Ebenso müssen die Lage der installation und der Daten angepasst werden. | ||
+ | Das Skript löscht zudem (nach Entfernen von echo im Befehl echo rm -rf) auch noch User, die nicht mehr in der Datenbank sind, aber noch auf der Platte ein Verzeichnis haben (passierte bei mir vermutlich während Nextcloud 12-13). | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code bash update_clouddata.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | lmnservername=" | ||
+ | nextcloudservername=" | ||
+ | occ="/ | ||
+ | data="/ | ||
+ | |||
+ | if [ `hostname` = " | ||
+ | echo " | ||
+ | scp $0 ${nextcloudservername}: | ||
+ | ssh -t ${nextcloudservername} $0 | ||
+ | exit 0 | ||
+ | fi | ||
+ | |||
+ | hardlist=`mktemp` | ||
+ | |||
+ | pv --version > /dev/null | ||
+ | if [ $? -ne 0 ] ; then | ||
+ | apt install pv | ||
+ | fi | ||
+ | |||
+ | echo -n " | ||
+ | ls $data | grep -v " | ||
+ | echo `cat / | ||
+ | |||
+ | echo " | ||
+ | for i in `cat / | ||
+ | if sudo -u www-data php $occ ldap: | ||
+ | # not a local user? | ||
+ | if ! sudo -u www-data php $occ user:info " | ||
+ | echo " | ||
+ | fi | ||
+ | else | ||
+ | echo -n " | ||
+ | fi | ||
+ | done | pv -s `cat / | ||
+ | |||
+ | echo -n "Users nicht mehr im LDAP:" | ||
+ | sudo -u www-data php / | ||
+ | if [ -s / | ||
+ | cat / | ||
+ | echo " | ||
+ | read | ||
+ | if [ " | ||
+ | for i in `cat / | ||
+ | sudo -u www-data php / | ||
+ | done | ||
+ | fi | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | |||
+ | echo -n "Users in $hardlist, deren Home gelöscht werden könnte $data:" | ||
+ | if [ -s $hardlist ]; then | ||
+ | cat $hardlist | paste -s -d " " | ||
+ | echo " | ||
+ | read | ||
+ | if [ " | ||
+ | for i in `cat $hardlist`; do | ||
+ | echo rm -rf $data/$i | ||
+ | done | ||
+ | fi | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | </ |