Hallo Forum,
das Thema wurde hier:
schon mal beschrieben. Eine Lösung finde ich nur andeutungsweise. Es ist von einem Ticket von Frank die Rede.
Wer kann mir weiterhelfen und einen Link zu dem Ticket geben?
Gruß
Alois
Hallo Forum,
das Thema wurde hier:
schon mal beschrieben. Eine Lösung finde ich nur andeutungsweise. Es ist von einem Ticket von Frank die Rede.
Wer kann mir weiterhelfen und einen Link zu dem Ticket geben?
Gruß
Alois
Hallo Alois!
Meinst Du dieses Ticket das in dem Thread erwähnt wird?
http://www.lml.support-netz.de/trac/ticket/557
Da wirst Du als “Ausländer” nix werden, denke ich! Du weißt aber schon, dass der Thread aus dem Jahre 2012 stammt, oder?
Wie sieht den dein Problem beim Anlegen des Schülers genau aus?
Beste Grüße
Thorsten
Hallo Thorsten,
ok, auf den Link bin ich auch gestoßen. Ich dachte der Beitrag von Frank sei auf linuxmuster.net zu finden.
Beim Versuch einen User anzulegen kommt das:
Daten der Person geändert
Nachname: Diz
Vorname: Car
Geburtsdatum: 27.03.2001
Identifier: Diz;Car;27.08.2000
AdminClass: 9a
GECOS: Car Diz
Login (prüfen): dizca
Login (OK): dizca
Passwort: 7FsDNE
Shell (students): /bin/false
DBD::Pg::db selectrow_array failed: ERROR: duplicate key value violates unique constraint "ldap_entries_dn"
DETAIL: Key (dn)=(uid=dizca,ou=accounts,dc=linuxmuster-net,dc=local) already exists.
CONTEXT: SQL statement "INSERT INTO ldap_entries (id,dn,oc_map_id,parent,keyval) VALUES (ldap_entries_id,‘uid=’||username||’,ou=accounts,’||getdn,3,2,posix_account_id)"
PL/pgSQL function “manual_create_ldap_for_account” line 12 at SQL statement at /usr/share/perl5/Sophomorix/SophomorixPgLdap.pm line 1620, line 1.
Ich hatte Rüdiger angeschrieben und erhielt von Ihm den Rat die Lösung von Frank probieren.
Gruß
Alois
Hallo Thorsten,
die Analyse der Datenbank zeigt, dass sich der Benutzername in einer Tabelle befindet. Trotzdem ergibt der Versuch den Benutzer mit sophomorix-kill --killuser zu löschen dass der User nicht existiert.
Hier die Rückmeldung des Befehls:
20:32/0 server ~ # sophomorix-kill --killuser dizca
#### sophomorix locked (/usr/sbin/sophomorix-add, PID: 20081) ####
PID 20081 not running anymore
I'm stealing the lockfile
#### Stealing lock in /var/lib/sophomorix/lock/sophomorix.lock ####
#### /usr/sbin/sophomorix-kill started ... ####
#### Dumping database ldap before I modify it ####
#### Beginn deletion ... ####
Killing the following List of users: dizca
Killing dizca
Cannot kill user dizca (nonexisting?)
#### NOT creating mailaliases/lists (0 users removed) ####
#### 0 users killed ####
#### Removing lock in /var/lib/sophomorix/lock/sophomorix.lock ####
#### /usr/sbin/sophomorix-kill terminated regularly ####
Gruß
Alois
Hallo Forum,
das Problem ist gelöst. Es war tatsächlich ein Eintrag in einer Tabelle vorhanden. Nachdem Rüdiger diesen Eintrag gelöscht hatte konnte der Benutzer angemeldet werden.
Wie der unvollständige Eintrag des Users in die Tabelle kam ist unklar.
Vielen Dank noch mal an Rüdiger.
Gruß
Alois
Hallo Forum,
ich habe das Problem wieder und habe hier
https://hcmc.uvic.ca/blogs/index.php/how_to_fix_postgresql_error_duplicate_ke?blog=22
eine Anleitung gefunden wie das Problem behoben werden könnte. Ich selbst habe zu wenig Ahnung von Postgres und werde auf @jeffbeck warten.
Vielleicht hilft diese Seite jemand der mehr Ahnung hat als ich.
Gruß
Alois
Ich bin leider nicht tief genug in postgres bzw. SQL drin. Deshalb brauche ich hilfe von einem SQL-Fachmann.
Mit folgender Funktion wird in der 6.2. ein user gelöscht:
CREATE FUNCTION manual_delete_account(character varying) RETURNS integer
AS '
DECLARE
username ALIAS FOR $1;
posix_account_id INTEGER;
get_uidnumber INTEGER;
ldap_entries_id INTEGER;
BEGIN
SELECT INTO posix_account_id id FROM posix_account WHERE uid=username;
SELECT INTO get_uidnumber uidnumber FROM posix_account WHERE uid=username;
SELECT INTO ldap_entries_id id FROM ldap_entries WHERE keyval=posix_account_id AND oc_map_id=3;
DELETE FROM ldap_entries WHERE id=ldap_entries_id;
DELETE FROM groups_users WHERE memberuidnumber=get_uidnumber;
DELETE FROM ldap_entry_objclasses WHERE entry_id=ldap_entries_id;
DELETE FROM posix_account WHERE id=posix_account_id;
DELETE FROM posix_account_details WHERE id=posix_account_id;
DELETE FROM samba_sam_account WHERE id=posix_account_id;
RETURN get_uidnumber;
END;
'
LANGUAGE plpgsql;
Siehe auch: https://github.com/linuxmuster/sophomorix2/blob/master/sophomorix-pgldap/config-pg/sophomorix.sql
Das Problem ist wahrscheinlich, dass die (mehrere) DELETE statement nicht alle abgelaufen sind.
Diese müsste man händisch nacholen (mit den richtigen ids, die in den SELECT Befehlen ermitelt werden). Vor dem löschen erst mal anzeigen lassen was man löscht, ebenso ein Backup der Datenbank machen.
Jetzt müsste jemand ran, der sich mit sql statements auskennt.
LG, Rüdiger
Ich schiebe das noch mal hoch. Kann wer im Forum helfen?
Gruß
Alois
Ich war nicht untätig und habe - nach einem Hinweis eines Kollegen - den Versuch unternommen mit pgAdmin auf die Datenbank zuzugreifen. Das gelingt, aber ich komme nicht weiter. Bei phpmyadmin von mysql hatte ich da mehr Durchblick.
Wie kann ich denn mit pgAdmin Daten suchen und ggf. löschen?
Gruß
Alois
Hallo Alois,
Wie kann ich denn mit pgAdmin Daten suchen und ggf. löschen?
da kann ich leider nciht helfen … sorry.
Ich schau bei sowas immer mit ecosia nach dem Problem: die zweite oder
dritte Seite bringt dann Erleuchtung.
LG
Holger