Gelöschten Benutzer wiederherstellen/in Nextcloud restlos löschen

Hallo,
seit kurzem kann ich keine Benutzer mehr in Nextcloud 25.0.8 auf meinem Univention Server 5.0-4 anzeigen.
Nextcloud läuft dort in einer Docker-Instanz.

Statt dessen erscheint nach Aufruf “Benutzer” die Meldung “Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.”

Im Nextcloud Log steht folgendes:

[no app in context] Fehler: RuntimeException: nc_admin does not exist at <<closure>>

0. /var/www/html/lib/private/User/Manager.php line 206
   OC\User\Database->getRealUID()
1. /var/www/html/lib/private/User/Manager.php line 308
   OC\User\Manager->getUserObject()
2. /var/www/html/apps/provisioning_api/lib/Controller/UsersController.php line 187
   OC\User\Manager->search()
3. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 225
   OCA\Provisioning_API\Controller\UsersController->getUsersDetails()
4. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 133
   OC\AppFramework\Http\Dispatcher->executeController()
5. /var/www/html/lib/private/AppFramework/App.php line 172
   OC\AppFramework\Http\Dispatcher->dispatch()
6. /var/www/html/lib/private/Route/Router.php line 298
   OC\AppFramework\App::main()
7. /var/www/html/ocs/v1.php line 64
   OC\Route\Router->match()
8. /var/www/html/ocs/v2.php line 23
   require_once("/var/www/html/ocs/v1.php")

GET /nextcloud/ocs/v2.php/cloud/users/details?offset=0&limit=25&search=
from xxx.yyy.zzz.aaa  by benutzername at 2023-07-17T09:45:53+00:00

Der User “nc_admin” existiert nicht auf dem Univention-Server (ich vermute LDAP), löschen des Datensatzes in der psql-Nextcloud-Datenbank “oc_accounts” half nicht weiter.
Der UCS läuft als Stand-alone-Server ohne Active Directory.
Unter UCS 4.4-8, von dem ich vor ca 3 Monaten auf 5.0.2 aktualisiert hatte, funktionierte die Benutzeranzeige in Nextcloud noch.

Die config.php:

<?php
$CONFIG = array (
  'passwordsalt' => '********secret*********',
  'secret' => '************secret***********',
  'trusted_domains' =>
  array (
    0 => 'ucs.mydomain.de',
    1 => '192.168.xx.yy',
  ),
  'datadirectory' => '/var/lib/univention-appcenter/apps/nextcloud/data/nextcloud-data',
  'dbtype' => 'pgsql',
  'version' => '25.0.8.2',
  'overwrite.cli.url' => 'https://ucs.mydomain.de/nextcloud',
  'dbname' => 'nextcloud',
  'dbhost' => '172.aa.bb.1',
  'dbport' => '5432',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => '*******secret******',
  'installed' => true,
  'instanceid' => 'ocrdv1wakrog',
  'updatechecker' => 'false',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'overwriteprotocol' => 'https',
  'overwritewbroot' => '/nextcloud',
  'htaccess.RewriteBase' => '/nextcloud',
  'ldapIgnoreNamingRules' => false,
  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
  'trusted_proxies' =>
  array (
    0 => '172.aa.bb.1',
  ),
  'mail_smtpdebug' => true,
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => 'meinemail',
  'mail_domain' => 'maildomain.net',
  'mail_smtphost' => 'mail.maildomain.net',
  'mail_smtpport' => '465',
  'maintenance' => false,
  'loglevel' => 3,
  'theme' => '',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtpname' => 'meinemail@domain.net',
  'mail_smtppassword' => 'meinSMTPPasswort',
  'trashbin_retention_obligation' => '10, 30',
  'versions_retention_obligation' => '10, 30',
  'memcache.distributed' => '\\OC\\Memcache\\APCu',
  'default_phone_region' => 'DE',
  'mail_smtpsecure' => 'ssl',
  'allow_local_remote_servers' => true,
  'one-click-instance' => true,
  'one-click-instance.user-limit' => 500,
  'one-click-instance.link' => 'https://nextcloud.com/univention/',
);

Nachtrag:
Ich meine, vor längerer Zeit den Benutzer “nc_admin” auf dem Univention-Server angelegt und Monate später gelöscht zu haben.
Es existieren zudem noch die Konten “ncadmin” und “Administrator” als Administratorkonten, wobei ich bei “ncadmin” ebenfalls ein “User does not exist” erhalte, wenn ich das Konto mit occ aktivieren will.

Der occ-Befehl ergibt folgende Meldung:

root@nextc-29272196:/var/www/html# sudo -u www-data ./occ user:list

In Database.php line 515:

  nc_admin does not exist

Hat jemand eine Idee, wie ich das Problem lösen kann?

Hat niemand einen Vorschlag, das Problem zu lösen?

Den Thread nochmal hochholen

Moin

cat /var/lib/univention-appcenter/apps/nextcloud/conf/admin.secret

schau mal dort rein, da steht das Kennwort für den nc_admin.

Grüße aus Berlin

Ben

Hallo Ben,

  1. das Konto nc_admin existiert nicht mehr auf dem UCS
  2. Das Konto wurde von mir angelegt und später gelöscht
    nc_admin ist kein UCS-Systemkonto, allenfalls ncadmin, wenn Nextcloud installiert wird.

/var/lib/univention-appcenter/apps/nextcloud/conf/admin.secret

existiert nicht, da offenbar der Nextcloud-Admin der UCS-Administrator ist.

Gerade noch einmal bei einer aktuellen Installation geschaut.
Kennwort aus
/var/lib/univention-appcenter/apps/nextcloud/data/integration/admin.secret
genommen und Benutzer nc_admin
Damit war der login möglich. Bei mir ist der nc_admin der default user von der Installation

Gruß Ben

Da sind sie wieder, meine Probleme:

Als ich in grauer Vorzeit mein UCS 4.4-0 installiert hatte, gab es nur den “Administrator”

Moin
hast du das Problem gelöst?
Ggf. mit folgendem Komando einen lokalen Admin anlegen um dann weiter zu machen.
sudo -u www-data php7.4 /var/www/nextcloud/occ user:add BENUTZERNAME -g admin
php ggf an deine Version anpassen.
Sind denn viele Benutzer auf der Cloud? Ansonsten Daten sichern und die Cloud neu aufspielen.

Gruß Ben

Das ist das Perverse:

root@ucs:~# univention-app shell nextcloud sudo -u www-data php /var/www/html/occ user:list

In Database.php line 515:

nc_admin does not exist

user:list [-l|–limit [LIMIT]] [-o|–offset [OFFSET]] [–output [OUTPUT]] [-i|–info]

Zwischenzeitlich hatte ich in der UMC den Benutzer nc_admin angelegt, als Nextcloud-Admin festgelegt und nachdem er in Nextcloud unter “Benutzer” unter Gruppen: “Benutzer” angezeigt wurde, auch wieder gelöscht.

Anschließend Deinen Vorschlag angewandt:

root@ucs:~# univention-app shell nextcloud
root@nextc-29272196:/# sudo -u www-data php /var/www/html/occ user:add nc_admin -g admin
Enter password:
Confirm password:
The user “nc_admin” was created successfully

In ExceptionConverter.php line 55:

An exception occurred while executing a query: SQLSTATE[23505]: Unique violation: 7
FEHLER: doppelter Schlüsselwert verletzt Unique-Constraint »oc_group_user_pkey«
DETAIL: Schlüssel »(gid, uid)=(admin, nc_admin)« existiert bereits.

In Exception.php line 26:

SQLSTATE[23505]: Unique violation: 7 FEHLER: doppelter Schlüsselwert verletzt Unique
-Constraint »oc_group_user_pkey«
DETAIL: Schlüssel »(gid, uid)=(admin, nc_admin)« existiert bereits.

In Statement.php line 92:

SQLSTATE[23505]: Unique violation: 7 FEHLER: doppelter Schlüsselwert verletzt Unique
-Constraint »oc_group_user_pkey«
DETAIL: Schlüssel »(gid, uid)=(admin, nc_admin)« existiert bereits.

user:add [–password-from-env] [–display-name [DISPLAY-NAME]] [-g|–group [GROUP]] [–]

aber:
Du bist mein Held!!!

Trotz der Fehlermeldungen funktionierte die Anweisung:

univention-app shell nextcloud sudo -u www-data php /var/www/html/occ user:list
  - Administrator: Administrator
  - k***i: K***i
  - m**i: M********r
  - nc_admin: nc_admin
  - ncadmin: ncadmin
  - ucs-sso: SSO
  - w**r: V*********r

wieder!

Und ich kann jetzt wieder mir die aktiven Benutzer in Nextcloud anzeigen lassen, ohne, dass die Fehlermeldung erscheint.
Der Benutzer “nc_admin” taucht aber nicht (wie auch “ncadmin”) in der Benutzerverwaltung der Univention-Management-Console auf, obwohl beide Konten in Nextcloud existieren.

Ich hege die Vermutung, dass bei Löschen des nc_admin nicht alle Einträge in den Datenbanken gelöscht wurden.

Es freut mich, dass es wieder geht.

Gruß aus Berlin

Ben

Mastodon