close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#4015 closed Defekt (erledigt)

NC: Einige Nutzer haben UID als internen Nutzernamen

Reported by: Rüdiger Kupper Owned by: Rüdiger Kupper
Priority: schnell erledigen Milestone: Nextcloud: Optimierungen
Component: Webdienst: Kepler-Cloud Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc: bau

Description

Siehe sudo -u www-data php /var/www/nextcloud/occ user:list.

Eigentich ist NC so konfiguriert, dass es das LDAP-Attribut $uid als internen Nutzernamen verwendet. Das klappt offenbar bei einigen Nutzern nicht. Der interne Nutzername muss aber mit dem LML-Nutzernamen übereinstimmen, damit die Nutzer sich am Fileserver anmelden können.

Change History (10)

comment:1 by Rüdiger Kupper, 5 years ago

Ein paar Beispiele:

  - bcc55932-ea4b-1034-9421-674792057872: Luisa Schneider
  - bd7fdaaa-d0fc-1033-8b35-776a170b54e0: Kailin Zhu
  - bdfe36ca-ea4b-1034-9422-674792057872: Lucio Wolf
  - befe7260-ea4b-1034-9423-674792057872: Franka Stammer
  - benzdiana: Diana Benz
  - bf36cc32-d0fc-1033-8b36-776a170b54e0: Jennifer Wu
  - bf47f792-facb-1034-8897-674792057872: Carmen Bratulescu
  - bib-01: ExamAccount
  - boeckleal: Alisa Boeckle
  - bogomolov1: Melanie Bogomolov
  - braun: Birgit Braun

Das problem scheint überwiegend Schüler zu betreffen, die Lehrernamen sehen richtig aus.
Wie man sieht gibt es aber durchaus auch Schüler, die den richtigen internen Namen haben.

comment:2 by bau, 5 years ago

Ich denke mal, dass im LDAP die UID stimmt - oder?

LDAP für benzdiana:
 
createTimestamp 20131026102303Z
creatorsName cn=admin,dc=kg-fds,dc=de
dn uid=benzdiana,ou=accounts,dc=kg-fds,dc=de
entrycsn 20210818170258.462017Z#000000#000#000000
entryDN	uid=benzdiana,ou=accounts,dc=kg-fds,dc=de
entryUUID 5726b4d6-d274-1032-9d12-d91d5fdf7c7a
hasSubordinates	FALSE
modifiersName cn=admin,dc=kg-fds,dc=de
modifyTimestamp	20210818170258Z
structuralObjectClass inetOrgPerson
subschemaSubentry cn=Subschema

cn Diana Benz
description	Diana Benz
displayName	Diana Benz
E-Mail benzdiana@kg-fds.de
gecos Diana Benz
gidNumber 10052
givenName Diana
homeDirectory /home/attic/benzdiana
loginShell /bin/bash
objectClass inetOrgPerson posixAccount shadowAccount top sambaSamAccount sophomorixData
Passwort ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
sambaAcctFlags [UX]
sambaHomeDrive H:
sambaHomePath \\paedml\benzdiana
sambaKickoffTime 2147483647
sambaLMPassword ••••••••••••••••••••••••••••••••
sambaLogoffTime 2147483647
sambaLogonTime 0
sambaNTPassword ••••••••••••••••••••••••••••••••
sambaPrimaryGroupSID S-1-5-21-3878879208-3767656771-1509607135-21105
sambaPwdCanChange 0
sambaPwdLastSet 1346320647
sambaPwdMustChange 2147483647
sambaSID S-1-5-21-3878879208-3767656771-1509607135-26306
sn Benz
sophomorixstatus T
uidNumber 12653
User Name benzdiana

LDAP für Zhu Kailin
createTimestamp 20140915081921Z
creatorsName cn=admin,dc=kg-fds,dc=de
dn uid=zhukailin,ou=accounts,dc=kg-fds,dc=de
entrycsn 20210818162529.326009Z#000000#000#000000
entryDN uid=zhukailin,ou=accounts,dc=kg-fds,dc=de
entryUUID bd7fdaaa-d0fc-1033-8b35-776a170b54e0
hasSubordinates FALSE
modifiersName cn=admin,dc=kg-fds,dc=de
modifyTimestamp 20210818162529Z
structuralObjectClass inetOrgPerson
subschemaSubentry cn=Subschema

cn Kailin Zhu
description Kailin Zhu
displayName Kailin Zhu
E-Mail zhukailin@kg-fds.de
gecos Kailin Zhu
gidNumber 10320
givenName Kailin
homeDirectory /home/students/13e/zhukailin
loginShell /bin/bash
objectClass inetOrgPerson posixAccount shadowAccount top sambaSamAccount sophomorixData
Passwort ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
sambaAcctFlags [UX]
sambaHomeDrive H:
sambaHomePath \\paedml\zhukailin
sambaKickoffTime 2147483647
sambaLMPassword ••••••••••••••••••••••••••••••••
sambaLogoffTime 2147483647
sambaLogonTime 0
sambaNTPassword ••••••••••••••••••••••••••••••••
sambaPrimaryGroupSID S-1-5-21-3878879208-3767656771-1509607135-21641
sambaPwdCanChange 0
sambaPwdLastSet 1410768840
sambaPwdMustChange 2147483647
sambaSID S-1-5-21-3878879208-3767656771-1509607135-27958
sn Zhu
sophomorixstatus U
uidNumber 13479
User zhukailin

Ich sehe keine eklatanten Unterschiede.
Man könnte mal in der Maria-Datenbank nachsehen, wo NextCloud das fälschlicherweise einträgt.
Die komische UID erzeugt der wohl selbst oder?
Die könnte man natürlich per einfachem SQL-Befehl korrigieren lassen.

comment:3 by Rüdiger Kupper, 5 years ago

Die Nummer kommt aus dem LDAP-Feld "entryUUID". Aber NC soll eigentlich das Feld "uuid" verwenden. Komisch, dass das bei manchen nicht funktioniert.

Version 0, edited 5 years ago by Rüdiger Kupper (next)

comment:4 by Rüdiger Kupper, 5 years ago

Ich kann mir eigentich nur vorstellen, dass im Moment des Account-Anlegens irgend etwas bei der LDAP-Abfrage fehlschlägt, so dass das Feld "uid" nicht gelesen werden kann. Die UUID bekommt der Empfänger wahrscheinlich immer, die ist nämlich ein "virtuelles Attribut" und wird vom LDAP-Server berechnet. Falls also die LDAP-Abfrage irgendwie fehlschlägt könnte es schon sein, dass zwar die UUID, aber nicht das (echte) Feld "uid" ankommt. Und dann nimmt NC natürlich die UUID als Benutzernamen.

So irgendwie vermute ich. Vielleicht ist das Ganze ein Nebeneffekt der hohen Last?
Ich setze jetzt erst mall alle Accounts mit UUID-Namen zurück.

comment:5 by Rüdiger Kupper, 5 years ago

Da ist ohnehin etwas faul, denn Nextcloud behauptet, es kennt 501 Nutzer:

root@cloud:~# sudo -u www-data php /var/www/nextcloud/occ user:list|wc  
    501    1896   21164

Und da sind wie gesagt auch noch die Exam- und Maschinen-Accounts dabei. Das sind doch viel zu wenige, oder? Wie viele Schüler und Lehrer haben wir denn?

(Und die Abfrage oben hat beim ersten Mal etwa zwanzig Sekunden gedauert, das kommt mir auch sehr lange vor für eine einfache LDAP-Suche?!)

comment:6 by Rüdiger Kupper, 5 years ago

Wenn ich vom cloud-Rechner aus auf der Kommadozeile die selbe Abfrage mache, die Nextcloud machen sollte, dann geht das gefühlt instantan:

ldapsearch -w ***password-removed*** -D cn=admin,dc=kg-fds,dc=de -b ou=accounts,dc=kg-fds,dc=de "(|(objectclass=inetOrgPerson))"

Und ich bekomme dort 1569 Nutzer geliefert:
dapsearch -w ***password-removed*** -D cn=admin,dc=kg-fds,dc=de -b ou=accounts,dc=kg-fds,dc=de "(|(objectclass=inetOrgPerson))"|grep "dn:"|wc
  1569    3138   72897

Also hat NC irgendwelche Probleme, mit dem LDAP-Server zu kommunizieren(?)

comment:7 by Rüdiger Kupper, 5 years ago

Wieder etwas gelernt: Die Einträge mit den UUIDs stammen vermutlich aus der Phase, als der LDAP-Zugriff noch nicht richtig konfiguriert war. NC hat die Einträge gespeichert und versuchte, sie mit dem selben Nutzernamen wiederherzustellen.

NC ist ein Datensammler: alles, was es einmal in die Finger bekommen hat, landet in der Datenbank und wird weiter benutzt. Das ist bei einem System wie dem unseren, bei dem wir noch herumprobieren, gar nicht so praktisch. Wahrscheinlich sollten wir die Datenbank einmal komplett löschen und neu anlegen lassen, bevor wir in den Produktivbetrieb gehen.

comment:8 by Rüdiger Kupper, 5 years ago

Resolution: → erledigt
Status: new → closed

Die Accints mit UUID-Einträgen ließen sich zurücksetzen (ohne dass ein Verzeichnis unter /var/www/nextcloud/data angelegt worden war). Danach lieferte eine Anfrage per occ user:list nur noch korrekte Usernamen und keine UUIDs mehr.

comment:9 by Rüdiger Kupper, 5 years ago

Ich habe nun vorerst die Nutzerliste eingeschränkt. Einerseits sind wir uns über die Konfiguration noch nicht sicher und andererseits möchte ich nicht, dass sich Schüler zu dieser Zeit schon einloggen.

Der LDAP-Filter ist nun so eingestellt, dass nur die folgenden LDAP-Nutzer sich einloggen können: kup, bau, lehrer, schuelte. Und natürlich der lokale User akup.

Alle anderen Nutzeraccounts werden gerade gelöscht.

comment:10 by Rüdiger Kupper, 5 years ago

Vor der Einschränkung sah die Abfrage so aus:

root@cloud:~# sudo -u www-data php /var/www/nextcloud/occ user:report
+----------------+------+
| User Report    |      |
+----------------+------+
| Database       | 1    |
| LDAP           | 1272 |
|                |      |
| total users    | 1273 |
|                |      |
| disabled users | 0    |
+----------------+------+

1272 Datensätze für Schüler und Lehrer (auch die im attic) scheinen mir plausibel.

Nach der Einschränkung sieht es jetzt so aus:

root@cloud:~# sudo -u www-data php /var/www/nextcloud/occ user:report
+------------------+---+
| User Report      |   |
+------------------+---+
| Database         | 1 |
| LDAP             | 4 |
|                  |   |
| total users      | 5 |
|                  |   |
| user directories | 1 |
| disabled users   | 0 |
+------------------+---+

Und die Nutzerliste, die Nextcloud kennt, ist nun überschaubar:

root@cloud:~# sudo -u www-data php /var/www/nextcloud/occ user:list   
  - akup: Rüdiger Kupper (Admin)
  - bau: Jens Baumgaertner
  - kup: Ruediger DrKupper
  - lehrer: Test Lehrer
  - schuelte: Test Schueler
Note: See TracTickets for help on using tickets.