Passwörter ändern

Hallo Rainer,

Muss man nach dem Hinzufügen von „(sophomorixRole=student)“ in Zeile 28
in der Datei auf dem server
/usr/lib/linuxmuster-webui/plugins/lmn_auth/api.py noch einem Dienst
neustarten, bevor sich Schüler anmelden können?

Oder muss es „(sophomorixRole=students)“ heißen.

Aber auch damit funktioniert es bei mir nicht - „authentication
failed!“. :frowning:
Meldung in /var/log/ajenti/ajenti.log:
„2019-09-06 12:11:42,883 ERROR : {‚info‘: u’80090308: LdapErr:
DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1’,
‚desc‘: u’Invalid credentials’}“

bei mir kam auch erst authentication failed: dann hab ich den server neu
gestartet: dann hat es funktioniert.

Ich weiß nicht welcher service das für die webui ist: deswegen hab ich
den restart gemacht: hat funktioniert.

Hier ist die korrekte Zeile 28:

searchFilter="(&(cn=%s)(objectClass=user(|(sophomorixRole=globaladministrator)(sophomorixRo
le=teacher)(sophomorixRole=schooladministrator)(sophomorixRole=student)
))" %username

LG

Holger

Hallo Rainer,

Genau.
Aber vorsichtig : mit einer Session erhalten die Schülern Zugang auf alle apis, und da war nicht alles getestet, selsbt wenn ich noch dran bin.
Also diese Änderung ist auf eigene Gefahr.

Gruß

Arnaud

Hi zusammen,

hat das hier:

sophomorix-user --help
...
Updating WebuiDashboard of a user:
  --user <user> --webui-dashboard "Webui Dashboard String"
  --user <user> --webui-permissions permission1,permission2,permission3, ... 
  --user <user> --add-webui-permissions permission1,permission2,permission3, ...
  --user <user> --remove-webui-permissions permission1,permission2,permission3, ...

  permissions1, ... must have the systax:  <ui>:<module>:<TRUE/FALSE>

auch was damit zu tun?

VG, Tobias

Hallo Tobias,

Was du zitierst ermöglicht den Zugriff von bestimmten User anzupassen, d.h. wer darf das Modul Linbo in die Webui verwalten, Userlisten, usw …
Das würde ich an deiner Stelle nicht ändern, aber lieber ein Kollegen als globaladmin hinzufügen.

Gruß

Arnaud

Hallo Arnaud,

Oh, danke!
Kann man inzwischen auch „school-admins“ definieren, ich vermute, dass du das meinst, denn „global-admin“ ist ja wie Highlander, oder?

VG, Tobias

Hallo,

habe die Änderung gerade durchgeführt, jedoch kann die WebUI anschließend nicht mehr korrekt geladen werden.
Man sieht im Hintergrund ausgegraut eine Fehlermeldung und das orangene Rad dreht sich im Vordergrund.
Nach Zurückbauen der Konfig + Neustart des Dienstes, läuft die WebUI dann auch wieder normal - aber eben ohne die Schülerfunktion.

Was könnte hiervon die Ursache sein?

LG
Xandra

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