Teachers.csv - user exists already as sohpomorix user

Hallo zusammen,

ich will meine Lehrerzugänge via csv pflegen.
Wenn ich allerdings Änderungen daran vornehme (oder sogar mit dem BackUp-Pfeil zurücknehme), bekomme ich die Fehlermeldung:

Bildschirmfoto vom 2023-11-08 10-14-56

Woran könnte das liegen? Die bestehenden Nutzer sollten doch erkannt werden und nur geUpdated, falls notwendig?

Wenn ich die betreffende Zeile lösche, wird über den nächsten Nutzer gemeckert. Ist also wohl kein Problem der konkreten Zeile im csv…

Hallo,

ich will meine Lehrerzugänge via csv pflegen.
Wenn ich allerdings Änderungen daran vornehme (oder sogar mit dem
BackUp-Pfeil zurücknehme), bekomme ich die Fehlermeldung:

Bildschirmfoto vom 2023-11-08 10-14-56

Woran könnte das liegen? Die bestehenden Nutzer sollten doch erkannt
werden und nur geUpdated, falls notwendig?

Wenn ich die betreffende Zeile lösche, wird über den nächsten Nutzer
gemeckert. Ist also wohl kein Problem der konkreten Zeile im csv…

gibt es schon einen Rechner in der devices.csv der so heißt? Oder eine
Hardwareklasse oder eine Klasse?
Könnte auch in der extrastudents.csv sein.

LG

Holger

Hallo Holger,

meines Wissens nach nicht und auch als Problemursache unwahrscheinlich, da nach dem Löschen der Zeile ja der nächste Kollege mit der gleichartigen Fehlermeldung bemeckert wird :-(.

Was mich wundert ist allerdings, dass das ein Kollege mitten in der csv ist (also nicht der erste oder letzte) - wird die ggf. nicht in der Reihenfolge abgearbeitet?

Danke schon Mal für die Hilfestellung,
Guntram

Hallo Guntram,

meines Wissens nach nicht und auch als Problemursache unwahrscheinlich,

… „meines Wissens nach“ find ich jetzt nicht sonderlich sicher :slight_smile:

da nach dem Löschen der Zeile ja der nächste Kollege mit der
gleichartigen Fehlermeldung bemeckert wird :-(.

das dachte ich auch, aber es kann ja sein, dass es auch ihn als user
schon gibt.

Was mich wundert ist allerdings, dass das ein Kollege mitten in der csv
ist (also nicht der erste oder letzte) - wird die ggf. nicht in der
Reihenfolge abgearbeitet?

irrelevant. Ich weiß ja nicht, was du da gemacht hast: vielelicht hast
du einfach die Zeilen zwischendrin eingefügt.

Also:

  1. überprüfen ob nciht doch 2 mal der Name in der teachers.csv vergeben ist.
  2. nachprüfen, ob es die Namen nicht doch in der devices.csv gibt (das
    hatte ich nämlich mal: es liegt irgend wie nahe, dass man ein Gerät wie
    den Nutzer nennt …).
  3. Dreibuchstabennamen sind vielelciht bequem, aber sehr gefährlich: es
    gibt nämlich etliche Feste Nutzer und Befehle unter Linux, die eben aus
    drei Buchstaben bestehen.

Vielelicht erhellt ja auch der Befehl:
sophomorix-user -iv -u kls

die ganze Sache.

LG

Holger

Hallo Holger,

Ich habe einen solchen Rechner nicht aktiv angelegt. Ich kann natürlich nicht wissen, ob lmn so was aus welchen Gründen auch immer macht…

Nein.

Nein.

Stimme ich zu - hatte ich nicht auf dem Schirm…

Bekomme ich keine auffälligen Angaben:

sophomorix-user -iv -u kls
Command line::
Option json is a modifier option
Hmmh. do not know what to do with option info
Option verbose is a modifier option
* forcing info mode
Option combinations successfully checked
Retrieving RootDSE...
   * RootDSE: DC=linuxmuster,DC=lan
Binding with CN=administrator,CN=Users,DC=linuxmuster,DC=lan
Testing if the Sophomorix Schema exists (Sophomorix-User)...
   * Sophomorix-Schema exists  (SophomorixSchemaVersion=1)
OK: SophomorixSchemaVersion 1 matches required Version 1
#### Reading /usr/share/sophomorix/devel/sophomorix.ini                       ####
#### Distro-check: Ubuntu 22.04 is OK                                         ####
#### Reading /etc/samba/smb.conf                                              ####
#### Reading /usr/lib/linuxmuster-webui/etc/default-ui-permissions.ini        ####

##################################################################################
# Parsing: net conf list                                                         #
##################################################################################


##################################################################################
# Asking domain passwordsettings from samba                                      #
##################################################################################

#### Reading /usr/share/sophomorix/devel/master/sophomorix.conf.master        ####
#### Reading /etc/linuxmuster/sophomorix/sophomorix.conf                      ####

##################################################################################
# OK: default-school share exists                                                #
##################################################################################


##################################################################################
# OK: /etc/linuxmuster/sophomorix/default-school/school.conf                     #
##################################################################################

#### Reading /usr/share/sophomorix/devel/master/school.conf.master            ####
#### Reading /etc/linuxmuster/sophomorix/default-school/school.conf           ####

################################################################################
User 1/1 in AD: kls in school default-school
CN=kls,OU=Teachers,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
################################################################################
                   displayName: xxx xxx                         
                            sn: xxx                                   
                     givenName: xxx                               
      sophomorixFirstnameASCII: xxx                               
        sophomorixSurnameASCII: Klxxx                                   
    sophomorixFirstnameInitial: J.                                      
      sophomorixSurnameInitial: K.                                      
           sophomorixUserToken: ---                                     
           sophomorixBirthdate: 01.01.2000                              
                sophomorixUnid: ---                                     
          sophomorixAdminClass: teachers                                
      sophomorixExitAdminClass: unknown                                 
          sophomorixSchoolname: default-school                          
           sophomorixAdminFile: teachers.csv                            
             sophomorixComment: created by sophomorix                   
       sophomorixFirstPassword: &vcNaHf9LTDD                            
            sophomorixExamMode: ---                                     
--------------------------------------------------------------------------------
                sophomorixRole: teacher                                 
              sophomorixStatus: U                                       
        sophomorixCreationDate: 20230928151412.0Z                       
      sophomorixTolerationDate: 19700101000000.0Z                       
    sophomorixDeactivationDate: 19700101000000.0Z                       
            userAccountControl: 66048                                   
--------------------------------------------------------------------------------
                          mail: kls@linuxmuster.lan                     
           sophomorixMailQuota: ---:---:                                
 sophomorixMailQuotaCalculated: 1                                       
--------------------------------------------------------------------------------
               sophomorixQuota: default-school:---:---:new:---:         
               sophomorixQuota: linuxmuster-global:---:---:new:---:     
sophomorixCloudQuotaCalculated: ---                                     
--------------------------------------------------------------------------------
sophomorixWebuiPermissionsCalculated:
   core:config:read: true
   core:config:write: true
   filesystem:read: false
   filesystem:write: true
   lm:crontab:read: false
   lm:crontab:write: false
   lm:devices: false
   lm:devices:import: false
   lm:docker:change: false
   lm:docker:list: false
   lm:globalsettings: false
   lm:linbo:configs: false
   lm:linbo:examples: false
   lm:linbo:icons: false
   lm:linbo:images: false
   lm:quotas:apply: false
   lm:quotas:configure: false
   lm:quotas:ldap-search: false
   lm:samba_dns:read: false
   lm:samba_dns:write: false
   lm:schoolsettings: false
   lm:sync:list: false
   lm:sync:online: false
   lm:sync:sync: false
   lm:users:apply: false
   lm:users:check: false
   lm:users:customfields:read: true
   lm:users:customfields:write: true
   lm:users:extraclasses:read: false
   lm:users:extrastudents:read: false
   lm:users:globaladmins:create: false
   lm:users:passwords: true
   lm:users:schooladmins:create: false
   lm:users:students:read: true
   lm:users:students:write: true
   lm:users:teachers:list: true
   lm:users:teachers:read: false
   lm:users:teachers:write: false
   lmn:clients:config: false
   lmn:groupmembership: true
   lmn:groupmemberships:write: true
   lmn:oldsession:trans: true
   lmn:session:trans: true
   sidebar:view:/view/dashboard: false
   sidebar:view:/view/lmn/crontab: false
   sidebar:view:/view/lmn/devices: false
   sidebar:view:/view/lmn/dhcp: false
   sidebar:view:/view/lmn/docker: false
   sidebar:view:/view/lmn/globalsettings: false
   sidebar:view:/view/lmn/groupmembership: true
   sidebar:view:/view/lmn/home: true
   sidebar:view:/view/lmn/landingpage: true
   sidebar:view:/view/lmn/linbo4: false
   sidebar:view:/view/lmn/linbo_sync: false
   sidebar:view:/view/lmn/links: false
   sidebar:view:/view/lmn/nextcloud: false
   sidebar:view:/view/lmn/oldsession: true
   sidebar:view:/view/lmn/quotas: false
   sidebar:view:/view/lmn/samba_dns: false
   sidebar:view:/view/lmn/schoolsettings: false
   sidebar:view:/view/lmn/session: true
   sidebar:view:/view/lmn/sessionsList: true
   sidebar:view:/view/lmn/users/globaladmins: false
   sidebar:view:/view/lmn/users/listmanagement: false
   sidebar:view:/view/lmn/users/print-passwords: true
   sidebar:view:/view/lmn/users/schooladmins: false
   sidebar:view:/view/lmn/users/students: false
   sidebar:view:/view/lmn/users/teachers: false
   sidebar:view:/view/lmn/websession: false
   sidebar:view:/view/lmn_clients: false
------------- sophomorixCustom: ------------------------------------------------
---------- sophomorixIntrinsic: ------------------------------------------------
          sophomorixIntrinsic2: teachers/kls                            
--------------------------------------------------------------------------------
memberOf: CN=internet,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
memberOf: CN=intranet,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
memberOf: CN=printing,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
memberOf: CN=role-teacher,OU=Groups,OU=GLOBAL,DC=linuxmuster,DC=lan
memberOf: CN=teachers,OU=Teachers,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
memberOf: CN=webfilter,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
memberOf: CN=wifi,OU=Management,OU=default-school,OU=SCHOOLS,DC=linuxmuster,DC=lan
--------------------------------------------------------------------------------
          objectSid: S-1-5-21-1969362549-3265097694-1286828233-2134    
      homeDirectory: \\server\default-school\teachers\kls              
          homeDrive: H:                                                
     accountExpires: 0                                                 
    badPasswordTime: 0                                                 
        badPwdCount: 0                                                 
         pwdLastSet: 133403805864805390                                
         lastLogoff: 0                                                 
          lastLogon: 0                                                 
         logonCount: 0                                                 
     sAMAccountType: 805306368                                         
  userPrincipalName: kls@linuxmuster.lan                               
         uSNChanged: 13124                                             
         uSNCreated: 13124                                             
           codePage: 0                                                 
        countryCode: 0                                                 
  unixHomeDirectory: /srv/samba/schools/default-school/teachers/kls    
     primaryGroupID: 513                                               
--------------------------------------------------------------------------------
LOGFILES (1 Entries):
  ADD:  2023-09-28 15:14:12  kls (Klxxx, xxx) in teachers as teacher

Hallo Guntram,

Vielleicht steht einen ehemahligen Kollegen mit Login kls in den Logs von sophomorix ? Ich glaube das könnte auch ein Problem sein.

Gruß

Arnaud

Hallo,

die Namen im Samba/AD konkurieren nicht mit den namen der linux user.
Das AD ist eine eigene Baustelle. Aber alles im AD (Gruppennamen, Rechnernamen und Raumnamen(gruppen), …).

Vielleicht kannst du mal
sophomorix-check -vv
auf Konsole aufrufen (gibt viel output) und dain dann nach dem problematischen loginnamen suchen.

LG, Rüdiger

Hallo Arnaud,

Vielleicht steht einen ehemahligen Kollegen mit Login kls in den Logs
von sophomorix ? Ich glaube das könnte auch ein Problem sein.

das ist eine gute Idee.
Der User kls existiert ja: das sieht man ja an der ausgabe von
sophomorix-user -iv -u kls
Aber er hat den sophomorix-status: U
und nciht E wie ein aktiver Nutzer.
Es gab ihn also.
Und jetzt steht er wieder in der teachers.csv: aber wahrscheinlich mit
einem neuen Geburtsdatum: also mein sophomorix: hey, das ist nicht der
gleiche…

Also: erstmal den „alten“ komplett löschen (oder besser gesagt: alle. Du
hast ja Mehrere…)

LG

Holger

Hallo Guntram,

Bei uns war das auch so, dass ein Nutzer noch in den Sophomorix-Log-Dateien stand.

Wie sind fast kirre geworden, weil wir keine Spuren fanden. Nur ein grep über alle Dateien und das wagemutige Löschen der Zelle aus den Logs brachte dann die Erlösung.

Gibt es dazu eine Hintergrund dass sophomorix gegen alte Log-Dateien prüft?

Viele Grüße
Thomas

Hallo Thomas,

Gibt es dazu eine Hintergrund dass sophomorix gegen alte Log-Dateien prüft?

das ist eine Logdatei, die genau dazu dienen soll: dass Loginnamen nicht
wieder vergeben werden.
Der Hintergrund ist, dass der neue Nutzer nicht z.B. die Dateien des
vorherigen Nutzers in der Nextcloud zu Sehen bekommt.
Da gibt es also tatsächlich Gründe für :slight_smile:

LG

Holger

Hallo Holger,

Ja, sowas dachte ich mir. Aber:

  • es ist grundsätzlich doch eher ungewöhnlich, dass Log-Dateien ausgewertet werden
  • es provoziert ziemlich dämliche Situationen: wir haben Lehrerkürzel, die von der Schulleitung höchsthoheitlich vergeben werden - nur, weil es irgendwann mal einen Nutzer mit gleichem Kürzel gab, ist das für alle Zeit verbrannt? Die Schulleitung hustet mir einen :slight_smile:
  • wir haben bei uns einen „ordentlichen Abmeldeprozess“. Ich dachte, für den Zwischenzustand gibt es bei linuxmuster den Dachboden - aber wenn ich WIRKLICH lösche, dann möchte ich eigentlich auch WIRKLICH gelöscht haben. Dass das mit Nextcloud ein Problem geben könnte, kann ich nachvollziehen (wenn man halt nicht darauf achtet). Aber es ist irgendwie schlimm genug, wenn das der Regelfall sein sollte.

Ich fände gut, diese Funktionalität wäre „overrideable“. Und sie sollte halt irgendwo gut dokumentiert sein :wink:

Viele Grüße
Thomas

Vielen Dank für die vielen Antworten!

Bevor ich morgen wieder an den Server komme noch mal die grundsätzliche Verständnisfrage:

Die Funktion „csv im Editor bearbeiten“ dient doch aber auch zur Pflege der Daten und nicht nur dem Neu Anlegen - oder?

Ich kann also meinen bestehenden Datensatz nehmen, csv anzeigen lassen, diese (ggf. extern) editieren und dann speichern/importieren: da sind dann die alten, die neuen und ggf. modifizierte Datensätze drin.

Das mit dem Geburtsdatumswechsel könnte eine Sache sein: wie würde ich das sonst editieren können? Ich habe am Anfang Dummy-Geburtstag (01.01.1990) vergeben, wenn ich noch keins von dern Nutzern hatte - jetzt würde ich das ja aber auch mal aktualisieren wollen…

@Holger: was ist das dann für ein User mit den Status U? Wo taucht der auf?
Und jetzt kommt mein Ursprungsproblem aus dem anderen Thread: wenn ich jetzt Nutzer lösche und wieder neu anlege, kann ich ja kein Passwort mit importieren. Ich muss dann von Hand schauen, welche Kollegen ein neues PW kriegen müssten etc. … oder?

Hallo Guntram,

@Holger https://ask.linuxmuster.net/u/holger: was ist das dann für ein
User mit den Status U? Wo taucht der auf?

das stand in der von dir gelieferten Ausgabe von sophomorix-user (letzte
Nachricht).
Bei meinem eigenen Nutzer steht in der Ausgabe:

sophomorixStatus: E

Was sagt den bei dir ein
sophomorix-check
?
Gibt es NUtzer zum updaten?

Es gibt auch irgend wo eine logdatei von sophomorix wo die alten .csv
Dateien rumliegen: da findest du dann das „Orginal“ Geburtsdatum.
Übrigens: bei mir sind bei den Lehrern schon immer Phantasiegeburtsdaten
drin: mich geht ja das korrekte nix an und ich brauche es auch nicht
(Datensparsamkeit).

Und wenn du einen Nutzernamen wieder verwenden willst:

Hallo und guten Morgen,

ich möchte mich Thomas anschließen:

Wenn jemand die Schule verlässt, dann nimmt er seine Daten mit, wenn es ihm daran liegt. Nach dem Duldungszeitraum hat er keinen Zugriff mehr auf die ihm von unserer Schule zur Verfügung gestellten Services. Daten, die er den KuK zur Verfügung stellt, müssen von ihm autorisiert werden und dann gesondert abgelegt werden.

Wenn ich einen externen Dienst anbiete, dann schließt das diesen mit ein. Ich will - und ich denke, ich darf - auf gar keinen Fall für nicht Schulangehörige irgendwelche Daten aufbewahren. Hintergrund dienstliche Belange, der ist dann nämlich nicht mehr gegeben.

Beste Grüße

Thorsten

Hallo Thorsten,

Wenn ich einen externen Dienst anbiete, dann schließt das diesen mit ein. Ich will - und ich denke, ich darf - auf gar keinen Fall für nicht Schulangehörige irgendwelche Daten aufbewahren. Hintergrund dienstliche Belange, der ist dann nämlich nicht mehr gegeben.

darum ging es ja nicht.
Es geht darum, dass verhindert werden soll, dass ein anderer Nutzer auf
die Daten zugreifen kann.
Wenn du sicher stellst, dass deine NC immer aufgeräumt ist und alle
Dateien derjenigen, die nicht mehr da sind, gelöscht werden bevor neue
kommen, dann mach einen cronauftrag der die killlog löscht.

Ich hab die Entscheidung für das jetzige Verhalten nicht getroffen.
Ich kann beide Seiten verstehen, aber ich sehe ken stärkeres Argument fü
rdi eeine oder andere Seite, insofern ist es mir also wurscht: jetzt ist
es, wie es ist :slight_smile:

LG

Holger

sophomorix-check 
Command line::
Option verbose is a modifier option
Option json is a modifier option
Hmmh. do not know what to do with option info
* forcing info mode
Option combinations successfully checked
OK: SophomorixSchemaVersion 1 matches required Version 1
#### Reading /usr/share/sophomorix/devel/sophomorix.ini                       ####
#### Distro-check: Ubuntu 22.04 is OK                                         ####
#### Reading /etc/samba/smb.conf                                              ####
#### Reading /usr/lib/linuxmuster-webui/etc/default-ui-permissions.ini        ####
#### Parsing: net conf list                                                   ####
#### Asking domain passwordsettings from samba                                ####
#### Reading /etc/linuxmuster/sophomorix/sophomorix.conf                      ####
#### Reading /etc/linuxmuster/sophomorix/default-school/school.conf           ####
#### 0 ERRORS, 0 WARNINGS -> let's go                                         ####
#### Creating lock in /var/lib/sophomorix/lock/sophomorix.lock                ####
#### /usr/sbin/sophomorix-check started ...                                   ####
#### Cleaning up last check                                                   ####
Encoding extrastudents.csv: UTF8 (ENCODING=auto,*_FORCE=FALSE, *_CHECKED=UTF8)
Encoding students.csv: UTF8 (ENCODING=auto,*_FORCE=FALSE, *_CHECKED=UTF8)
Encoding teachers.csv: UTF8 (ENCODING=auto,*_FORCE=FALSE, *_CHECKED=UTF8)
#### Reading injected lines ...                                               ####
#### 0 ERRORS, 0 WARNINGS -> let's go                                         ####
#### Searching AD for users ...                                               ####
#### Query AD (begin)                                                         ####
#### Query AD (end)                                                           ####

#### ### School default-school: Matching lines in files to users in AD ...    ####
#### unidMATCH: 992 CHECKED in default-school, MATCH: 905, NOMATCH: 87, NOunid: 0####
#### exactMATCH: 87 CHECKED in default-school, MATCH: 42, NOMATCH: 45         ####
#### approxMATCH: 45 CHECKED in default-school, MATCH: 3 (Edit distance: 1)   ####
#### approxMATCH: 42 CHECKED in default-school, MATCH: 1 (Edit distance: 2)   ####
#### approxMATCH: 41 CHECKED in default-school, MATCH: 0 (Edit distance: 3)   ####
#### approxMATCH: 41 CHECKED in default-school, MATCH: 0 (Edit distance: 4)   ####
#### Removing lock in /var/lib/sophomorix/lock/sophomorix.lock                ####
#### Login kls forbidden, kls exists already as a sophomorix user' | teachers.csv LINE 45: Lehrer;xxx;xxx;11.03.1995;kls;;;;;####
Calling console printout
ERROR   -1: Login kls forbidden, kls exists already as a sophomorix user' | teachers.csv LINE 45: Lehrer;xxx;xxx;11.03.1995;kls;;;;;

Hängt leider ohne weitere Infos :-(…

Mir ist nicht klar gewesen, wofür die überhaupt angefragt werden? Ich dachte, die wären zwingend notwendig, um eine Eindeutigkeit oder was auch immer (z.B. einen seed) zu generieren…
Also kann ich die einfach alle auf 01.01.1990 setzen und gut ist?

Einen Hinweis aus den .teachers.csv.bak.* Dateien habe ich jetzt: offensichtlich hatte ich zwischenzeitlich (?) einmal csv-Import ohne die leeren Felder probiert - also

Lehrer;Schmidt, Dr.;Guntram;18.07.1980;sch
anstatt
Lehrer;Schmidt, Dr.;Guntram;18.07.1980;sch;;;;;

Vermutlich hat er sich dabei verschluckt? Die aktuelle teachers.csv hat die ; am Ende…

Bleibt die Frage: wie kriege ich das jetzt am elegantesten repariert bzw. ggf. zurückgesetzt (unter Beibehaltung der Passwörter)?

Ich versuche jetzt mal, ein bisschen aufzuräumen.

Aber: wie lösche ich denn meine alten Nutzer? In der Benutzerverwaltung/Lehrer kann ich keine Nutzer löschen und in der Listenverwaltung stehen ja immer die zuletzt hochgeladenen Daten aus meinen csv - sprich, da kann ich die aktuellen Nutzer nicht pflegen :-(…

Wie ist das gedacht?

Danke,
Guntram

Hallo Guntram,
in /etc/linuxmuster/sophomorix/default-school/students.csv oder eben teachers.csv siehst Du ja alle angelegten User. Wer da nicht drin steht, ist nicht aktiv. Einzige Möglichkeit noch: der User ist in attic und noch in der toleration Range, die kannst Du unter
/etc/linuxmuster/sophomorix/default-school/school.conf
für jeden Nutzertyp einstellen. Dort einfach

TOLERATION_TIME=6
DEACTIVATION_TIME=6

auf jeweils 0 stellen bei S oder Lehrer, dann sophomorix-check, update, kill und so (hinterher ggf. wieder hochsetzen).
Dann sind sie wirklich weg. Magst Du gleichnamige Nutzer wieder anlegen, würden sie jedoch eine Ziffer hinter ihrem Namen bekommen, weil die LMN sich alle Nutzer merkt. Die stehen in der Datei
/var/log/sophomorix/userlog/user-add.log

und können dort gelöscht werden bei Bedarf, dann gibts keine Zahl hinter dem username :slight_smile:

LG
Max