Passwörter ändern

In den Ajenti Logs sieht man folgendes

2019-09-13 16:51:16,045 ERROR : [lmn_auth]: plugin import failed: unindent does not match any outer indentation level (api.py, line 29)
2019-09-13 16:51:16,045 ERROR : Traceback (most recent call last):
File „/usr/local/lib/python2.7/dist-packages/aj/plugins.py“, line 329, in load_all_from
self.__import_plugin_module(name, self[name])
File „/usr/local/lib/python2.7/dist-packages/aj/plugins.py“, line 353, in __import_plugin_module
*imp.find_module(module_name, [module_path])
File „/usr/lib/linuxmuster-webui/plugins/lmn_auth/init.py“, line 1, in
import api
File „/usr/local/lib/python2.7/dist-packages/gevent/builtins.py“, line 96, in import
result = _import(*args, **kwargs)
File „/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py“, line 29
searchFilter = "(&(cn=%s)(objectClass=user)(|(sophomorixRole=globaladministrator)(sophomorixRole=teacher)(sophomorixRole=schooladministrator)(sophomorixRole=student$
$
IndentationError: unindent does not match any outer indentation level

und

2019-09-13 16:51:27,527 ERROR : Unhandled endpoint error at /api/core/identity

LG
Xandra

Hallo Xandra,

Durch die Änderung der Zeile um die Schülern die Anmeldung zu erlauben, hast du wahrscheinlich ein Tab gelöscht, was Python gar nicht mag.

Was ist das Ergebnis von :

head -30 /usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py

Gruß

Arnaud

Hallo Tobias

Sorry für die späte Antwort, ich bin momentan sehr beschäftigt.
Ich glaube momentan gibt es kaum Unterschied zwischen schooladmins und globaladmins, die Flexibilität ist geplant, und wir später kommen.

Gruß

Arnaud

Da habe ich ganz andere Erfahrungen gemacht. Als Schooladmin kann man z.B. keine neuen Geräte anlegen, ich konnte damit überhaupt nicht sinnvoll arbeiten.

sorry, habe die originale zeile 28 der rückgeänderten api.py gepostet, antwort war sinnlos und ist gelöscht.

sorry, da ist wohl was mit copy&paste schiefgelaufen, gibt da einen tag für quelltext?

ok, nicht gedacht, zeile 28 hätte gereicht.
nach einfügen der student-rolle darf der schüler sein pw anscheindend ändern.
jetuzt habe ich aber folgende komische meldung (ich war als normaler user eingeloggt und habe probiert auf der schulkonsole für einen anderen das pw zu ändern). dann kam eine meldung zur bestätigung, welches daten ich ändern möchte: meine oder von global-admin aber nicht die vom schüler.
ich vermute, jetzt habe ich etwas durcheinander gebracht.
muss ich hier etwas reparieren? ich habe auf abrechen geklickt.
muss ich auf der schulkonsole einfach wieder das original pw eintippen?

Du hast Recht, es gibt mehr Unterschiede als ich dachte. Wir müssen es unbedingt in einer Tabelle zusammenfassen zum vergleichen. Andreas hat ein bessere Übersicht als ich.

Gruß

Arnaud

Hallo,

passt jetzt - es war wie vermutet ein Tab o.ä. im Skript.
Danke!

Grüße,
Xandra

Ich passe meine Zusammenfassung mal an:

Hallo zusammen,

nach längerer Recherche fasse ich mal zusammen zum Thema Passwortänderung:

  1. Man soll mit Linuxclient oder Windowsclient Bordmitteln das Passwort ändern, was die Schüler angeht. Die Lehrer können das auch in der Schulkonsole.

  2. Die Schüler können das auch in der Schulkonsole, wenn man das in der DAtei /usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py patched und (sophomorixRole=student) zur Liste der erlaubten hinzufügt. Das brauchen z.B. Tabletklassen.

       #!/bin/bash
       sed -i "s/(sophomorixRole=schooladministrator) /(sophomorixRole=schooladministrator)   (sophomorixRole=student) /" /usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py
       echo -n "Check if student is in filter: "
       grep student /usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py >/dev/null && echo ok
       echo "Restarting Schulkonsole/WebUI"
       systemctl restart linuxmuster-webui
  3. Eigentlich legt sophomorix die Regeln fest, die bisher für mich lauteten (konfigurierbar):

    • mind. 7 Zeichen,
    • mind. 1 Großbuchstaben,
    • mind. 1 Kleinbuchstaben,
    • mind. 1 Zahl oder Sonderzeichen von ! § + - @ # $ % & * ( )[ ]{ } Das „§“ wird gerade hier diskutiert.
  4. Aber: der Samba/AD hat auch seine Regeln (https://ask.linuxmuster.net/t/lml7-minimum-password-age/792) und die lauten:

    • nicht eines der letzten 24 Passwörter verwenden
    • wenn du vor kurzem dein Passwort geändert hast, darfst du das nicht nochmal
    • es gibt ein maximales Passwortalter (bei mir: 42)
      EDIT: Diese Regeln gelten nicht, wenn man die Schulkonsole verwendet. Wenn man allerdings mit Bordmitteln (windowsclient/linuxclient) das Passwort ändern versucht, schlagen die Regeln zu!
  5. Ich habe festgestellt, dass das pam-modul pam_pwquality in der Datei /etc/pam.d/common-password auch noch seinen Senf/seine Regeln dazugibt, wenn man die Bordmittel von Linux verwendet. Das nervt, aber auskommentieren konnte ich die pam_ Zeile auch nicht, daher habe ich wenigstens /etc/security/pwquality.conf so geändert, dass es unterhalb der REgeln von sophomorix liegt:

       difok = 0
       minlen = 7
       ucredit = -1
       lcredit = -1
       dictcheck = 0
       usercheck = 0
       enforcing = 0

    Zwar mosert das pam dennoch, wenn ich „Muster!“ als PW versuche, aber pam lässt mich weitermachen.

       Aktuelles Passwort:
       Bitte ein neues Passwort eingeben:
       Unsicheres Passwort: Das Passwort ist nur ein altes Passwort wiederverwendet
       Bitte das neue Passwort erneut eingeben:
  6. Wenn man mal sein PW geändert hat, dann hilft nur noch die Server-Konsole als admin sophomorix-passwd -u kuechel --pass "Muster!" --hide --nofirstpassupdate. Falsch: Wie oben geschrieben funktioniert das Passwortändern mit der Schulkonsole mehrfach hintereinander.
    Seltsame Geschichte: Wenn ich per Schulkonsole oder per sophomorix-passwd das Passwort zurückgesetzt habe, dann kann ich mich mit dem zurückgesetzten Passwort einloggen, aber muss auf dem Client als altes Passwort (bei „passwd“, nicht in der Schulkonsole) das alte Passwort vor der Zurücksetzung eingeben. Ich vermute das ist ein Caching des sssd auf dem Client, sollte man aber irgendwie wissen, wenn es schief geht.

7. Selbst wenn man mit sophomorix oder der Schulkonsole sein Passwort neu gesetzt bekommen hat, kann man für mind. 1 Tag sein Passwort nicht mehr setzen, Minimum password age (days): 1 steht im Samba irrelevant, oben bereits behandelt.
8. Können die Fehlermeldungen des Samba/AD übersetzt werden? Das ist ja unabhängig von der Windows/Linuxfrage. Ich sammle mal hier die Antworten, die ich bisher vom Server bekam:

Änderung des Passworts fehlgeschlagen. Server-Meldung: Password too short, password must be at least 7 characters long.
Änderung des Passworts fehlgeschlagen. Server-Meldung: Password does not meet complexity requirements
Änderung des Passworts fehlgeschlagen. Server-Meldung: Password is already in password history. New password must not match any of your 24 previous passwords.
Änderung des Passworts fehlgeschlagen. Server-Meldung: Old password not accepted.
Änderung des Passworts fehlgeschlagen. Server-Meldung: Password change rejected, password changes may not be permitted on this account, or the minimum password age may not have elapsed.

So, und jetzt meine 2 cent:

  • ich finde minimum password age eine blöde idee. Kann man das auf 0 setzen?
  • können wir uns im Linuxclient einigen, den pwquality-check abzuschalten, irgendwie?
  • kann man cacheing im sssd im Linuxclient verhindern? Oder sollten wir uns einigen, auch Schüler lieber in der Schulkonsole das PW ändern zu lassen?

Das sind alles irgendwie showstopper, wenn ich mit Schülern üben will, ihr PW zu ändern. Es reicht ja schon, wenn 5 ihr PW ein zweites Mal ändern wollen - das geht dann nicht. Evtl. wg. Caching effekten und dann erst recht nicht, weil Samba erst morgen wieder will. Das ist doch bullshit.

VG, Tobias

Hallo Tobias,

wow, Hut ab; super Zusammenfassung!

Maximales Passwortalter finde ich nervig. Ich habe mir mittlerweile ein vermeintlich sicheres Passwortsystem ausgedacht. Allerdings fordert ein System, bei dem ich mich anmelde alle 3 Monate ein neues Passwort und mein System ist damit für’n A…bfalleimer!
Kann man das so hochsetzen (ich nehme an, das sind Tage?), dass es nie zuschlägt? 9999 oder so. Das sollte zumindest bis zu meiner Pensionierung reichen :wink:

Au backe, das wird Probleme geben! Das bekomm ich vermutlich nicht mal den KollegInnen beigebracht…

+1!

Viele Grüße,
Jochen

Hallo,

es gibt ein maximales Passwortalter (bei mir: 42)

vorsicht: so einfach ist das nicht.
Irgendwo (vieleicht da wo du es jetzt gefunden hast) steht noch die 42
drin: aber das Passwortablaufen wurde im samba eigentlich vor etwa 2
Monaten abgeschaltet (zentral).
Such mal in ask: da gibt es einen Tread zu, wo Rüdiger das beschreibt.

LG

Holger

Achtung, dass ist nicht ganz richtig:

Folgendes wurde geändert: sophomorix legt user und workstation mit nicht mehr ablaufenden Passwort an (einzeln, je user). Zentral läuft das passwort ab (samba default).

Man kann allerdings für jeden sophomorix user das passwort auf nicht ablaufend setzen (schon angelegte user):

# sophoris-passwd -h
...
Password expiry stuff:
  --show-password-expiry-days <user> (show info)
  --set-password-noexpiry-all-sophomorix-users (set all password of sophomorix users to nonexpiry)
...

Die Globalse samba Einstellung ist dazu nicht erforderlich

@foer zu 7. Minimum password age (days): 1

Bei meinen tests kann ich das nicht feststellen, dass sophomorix-passwd nicht mehrfach das passwort ändern kann:

# sophomorix-passwd --user schneima42 --interactive
  ... setzen auf Muster!
# sophomorix-passwd --test-login schneima42 --password Muster!
 ... tut
# sophomorix-passwd --user schneima42 --interactive
... setzen auf Muster%
# sophomorix-passwd --test-login schneima42 --password Muster!
... tut nicht mehr
 sophomorix-passwd --test-login schneima42 --password Muster%
... tut

Hallo @jeffbeck,

du hast recht:

Das Maximum Password age ist weder zwangsläufig 42. Das wurde von dir ja implementiert und das kann ich auch nachvollziehen und mit dem Fix der richtigen Domäne funktioniert auch bei mir das --show-password-expiry-days <user> richtig.

Noch kann ich die ursprüngliche Meldung von @foer nachvollziehen

auch bei mir funktionieren alle möglichen kombinationen nacheinander…

Fazit: In der Schulkonsole kann ich mehrfach nacheinander das Passwort setzen, auch von Muster! zu Muster% und zurück zu Muster!.

Jetzt noch, was als Probleme für mich übrig bleiben:

  • Ich kann nicht mehrfach nacheinander das Passwort mit Bordmitteln von Ubuntu (und wahrscheinlich auch Windows) setzen. Das ist doof für die Schüler, denn für die ist momentan keine Schulkonsolennutzung vorgesehen. Die können also nur einmalig mit Hilfe von „passwd“ das PAsswort ändern.

Jetzt habe ich bei meinem Samba eben die Default-Einstellung auf „0“ gesetzt:

# samba-tool domain passwordsettings set --min-pwd-age=0
Minimum password age changed!
All changes applied successfully!

Dann funktioniert das auch mit passwd auf der Console des Clients:
grafik

  • Aber selbst dann bleibt die Problematik mit den 24 bisher verwendeten Passwörtern, wenn man die Bordmittel verwendet:
  • Kleinere Probleme sind die obigen: Englische Rückmeldungen, caching im client, pwquality-check im client

fazit

Ich frage mich, ob wir Schülern jetzt defaultmäßig die Schulkonsole „nahelegen“ bzw. die Benutzung erzwingen oder den Weg mit den Bordmitteln offen lassen. LEtzters erfordert auf Serverseite (aus meiner Sicht) das setzen von min-pw-age auf 0 und --history-length=0. Und wo wir grade bei der Frage sind: wenn jemand 30 mal das falsche Passwort eingibt ist er bei mir für eine halbe Stunde gesperrt. Wenn das so gewollt ist, sollte man es wenigstens als Tipp in die Doku aufnehmen.

VG, Tobias

Nachtrag zum Thema: die letzten 24 Passwörter.

  • Ich habe versucht die history-length auf 1 und auf 0 .
  • Das hat zwar funktioniert, aber das ERgebnis war, dass ich mein Passwort doch nicht ändern konnte:

Dabei habe ich versucht ein Passwort zu setzen, dass zwar bei den letzten 24 Passwörtern dabei war, aber nicht das letzte war. Nagut, vielleicht ist das ein Effekt dessen, dass ich diesen globalen Parameter jetzt erst eingestellt habe, bei 5-klässlern wird das vllt. nicht vorkommen.

VG, Tobias

hi.
wir haben schülern erlaubt, das PW zu ändern. war eventuell ein fehler, da die passwörter nicht ausgedruckt werden können. beim zurückändern mehrerer user (mit haken aktiviert) kommt:

getSophomorix Value error. Either sophomorix field does not exist or ajenti binduser does not have sufficient permissions: Error Message: ‚COMMENT_EN‘ Dictionary we looked for information: {‚OUTPUT‘: [{‚TYPE‘: ‚LOG‘, ‚LOG‘: ‚/usr/sbin/sophomorix-passwd terminated regularly‘}], ‚SCRIPTNAME‘: ‚sophomorix-passwd‘, ‚JSONINFO‘: ‚RESULT‘, ‚JSONCOMMENT‘: ‚—‘}`

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/aj/api/endpoint.py", line 74, in wrapper
    result = fx(self, context, *args, **kwargs)
  File "/usr/lib/linuxmuster-webui/plugins/lmn_users/views.py", line 405, in handle_api_users_password
    return lmn_getSophomorixValue(sophomorixCommand, 'COMMENT_EN')
  File "/usr/lib/linuxmuster-webui/plugins/lmn_common/api.py", line 227, in lmn_getSophomorixValue
    'Error Message: ' + str(e) + '\n Dictionary we looked for information:\n' + str(jsonDict))
Exception: getSophomorix Value error. Either sophomorix field does not exist or ajenti binduser does not have sufficient permissions:
Error Message: 'COMMENT_EN'
 Dictionary we looked for information:
{'OUTPUT': [{'TYPE': 'LOG', 'LOG': '/usr/sbin/sophomorix-passwd terminated regularly'}], 'SCRIPTNAME': 'sophomorix-passwd', 'JSONINFO': 'RESULT', 'JSONCOMMENT': '---'}

was kann man tun, um bei allen usern mit haken das erstpasswort zu setzen?

gruß,
hendrik

Hi Hendrik,
ich weiß nicht wie du das schaffst, aber momentan kann man als Lehrer nur ein Passwort pro Schüler Quatsch: ein Passwort at a time ändern.
Aber es ist in Planung: Wunschliste: Schulkonsole v7 Sessions

VG, Tobias

Nachtrag zum Nachtrag:

Vermutlich nachdem ich mal Server und Client sicherlich in den letzten Tagen neu gestartet habe, funktioniert die history-length=0 auch. D.h ich kann ein Passwort nativ (Windows/Gnome/passwd) auf „Muster%“ und zurück auf „Muster!“ setzen, ohne dass es eine Fehlermeldung gibt.

VG, Tobias

Super Tobias!

Das muss Wissen muss dann aufjedenfall in den Linux Client zurückfließen.