33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
# Changes
|
|
|
|
## Kontext
|
|
- Problem: PAM-Login schlug fehl und spaeter wurden keine Benutzer im UI angezeigt.
|
|
- Ursache: Der Dienst lief als User `skd`. PAM kann nur den aktuellen Nutzer pruefen; deshalb schlug die Authentifizierung fuer andere Nutzer fehl.
|
|
- UI-Eindruck: Benutzerliste erscheint erst nach "Status laden" (kein Auto-Refresh nach erfolgreichem Login, nur Token setzen).
|
|
|
|
## Service/Deploy-Anpassungen
|
|
- `skd.service` wird als `root` gestartet, damit PAM andere Nutzer authentifizieren kann. (Systemd Unit unter `/etc/systemd/system/skd.service`)
|
|
- `SKD_ALLOWED_USERS` in `/etc/skd/env` auf leer gesetzt, damit alle "echten" Nutzer (uid >= 1000, mit Shell) gelistet werden.
|
|
|
|
## Code-Aenderungen
|
|
- `backend/actions.py`
|
|
- `pkill`-Exit-Code 1 (keine Prozesse) wird jetzt als normaler Zustand behandelt, kein 500-Fehler mehr.
|
|
- `backend/auth.py`
|
|
- `is_account_locked()` hinzugefuegt, liest `/etc/shadow` und erkennt gesperrte Accounts.
|
|
- `backend/models.py`
|
|
- `UserStatus` um `account_locked: bool` erweitert.
|
|
- `backend/app.py`
|
|
- `/users` liefert jetzt `account_locked`.
|
|
- Schutz: der aktuell angemeldete User kann sich nicht selbst deaktivieren.
|
|
- `backend/templates/index.html`
|
|
- Statusanzeige zeigt jetzt "aktiv/deaktiviert" pro Benutzer.
|
|
|
|
## Client-Seite / Verhalten
|
|
- Benutzerliste erscheint erst nach "Status laden". Das UI setzt nach dem Login zwar den Token, laedt aber nicht automatisch die Benutzerliste, es sei denn die Funktion wird explizit aufgerufen.
|
|
- Workaround: nach Login einmal "Status laden" klicken.
|
|
|
|
## Relevante Logs/Beobachtungen
|
|
- Vor Umstellung auf root: `unix_chkpwd: check pass; user unknown` und 401 bei PAM-Login.
|
|
- Nach Umstellung: Login erfolgreich, `/users` liefert 200.
|
|
|