User Passwort

mineu33

Cadet
Joined
Oct 2, 2015
Messages
7
moin Kollegen,

ich habe ein FreeNAS mit mehreren Accounts, denen jeweils Standardpassworte zugewiesen wurden. Wenn sich die User nun per ssh anmelden und auf der Konsole mit "passwd" ihr Passwort ändern, wird dieses, nach einem Reboot, auf das Standardpasswort zurück gesetzt.
Irgend eine Idee warum?

Gruss

Michael
 

MrToddsFriends

Documentation Browser
Joined
Jan 12, 2015
Messages
1,338
FreeNAS erzeugt die User Accounts beim Reboot aus seiner Config-Datenbank neu, deswegen müssen Änderungen an Usern und Gruppen in der GUI gemacht werden.
 

mineu33

Cadet
Joined
Oct 2, 2015
Messages
7
die Gui ist aber nur für administrative Zwecke, da können sich ja Normaluser nicht anmelden. Wie also soll/kann der Nutzer sein eigenes Pw. setzen?
 

MrToddsFriends

Documentation Browser
Joined
Jan 12, 2015
Messages
1,338
Gute Frage. Keine Ahnung ob es außer "der Admin teilt den Usern ihre Passwörter mit" und "der Admin lässt jeden User sein Passwort eintippen" noch andere Möglichkeiten gibt.
 

warri

Guru
Joined
Jun 6, 2011
Messages
1,193
MrToddsFriends hat Recht, viele Einstellungen kann man nicht permanent über die Command Line ändern - oder nur als root und mit viel Gefummel.

Alternativ könntest du SSH Keys für deine User konfigurieren. Dafür brauchst du als Admin nur deren Public Key und kannst ihn im entsprechenden Account eintragen.
 

mineu33

Cadet
Joined
Oct 2, 2015
Messages
7
warri: SSH-Keys sind konfiguriert. Die helfen aber nicht bei cifs- und/oder time-machine-Zugriff. Wenn die User ihr Pw via passwd ändern wird es ja im System abgelegt. Da sollte es doch möglich sein diese Passworte via cronjob auszulesen und in die von der Freenas-GUI genutzten config-Dateien/db einzupflegen, oder? Weisst du welche configs/db dafür genutzt werden.

Rand: Active Directory ist wohl die schlechteste aller Lösungen.
 

warri

Guru
Joined
Jun 6, 2011
Messages
1,193
Das Password wird in der FreeNAS-internen Datenbank abgelegt (SQLite).
Du könntest ein kleines Script zur Passwortänderung schreiben und den Usern bereitstellen.

Das geht via:
  • REST API (siehe Dokumentation)
  • Datenbank direkt manipulieren (schau dir mal die middleware an, nicht wirklich empfohlen)
  • FreeNAS CLI (erst ab FreeNAS 10)
Für beide Optionen brauchst du jedoch root oder die root-Authentifizierung für die API. Alternativ könntest du die User den Passwordwunsch in einer bekannten Datei ablegen lassen (z.B. im User Home) und dann via (root)-cronjob periodisch updaten. So müssten sich die User nicht als root authentifizieren.
 

mineu33

Cadet
Joined
Oct 2, 2015
Messages
7
moin warri,

so ähnlich habe ich mir das vorgestellt. Mit "passwd" auf der Console können die User ja ihr Passwort ändern, bis zum nächsten Reboot. Also lasse ich dieses auslesen und und in die Sqllite-DB einpflegen, wie auch immer. So, dann werde ich mal suchen.

Gruss und Dank

Michael
 

mineu33

Cadet
Joined
Oct 2, 2015
Messages
7
für Alle die es interessiert, wir haben eine rechte elegante Lösung gefunden.
In /usr/local/www/freenasUI gibt es etliche system relevante Dateien. U.a. manage.py.
Mit "python manage.py changepassword" lässt sich das Pw. ändern. Sudo erforderlich.
Wir haben nun eine change-password.sh erstellt mit folgendem Inhalt
#!/bin/sh -e
python /usr/local/www/freenasUI/manage.py changepassword $SUDO_USER

Als nächstes erstellen wir eine Startdatei, z.B. start-change-password.

cat /etc/local/sudoers.d/start-change-password
ALL ALL=(ALL) NOPASSWD: /usr/local/<name>/bin/change-password <- (and made a symlink from /usr/local/bin)

Diese wird in /etc/local/sudoers.d kopiert. Dadurch werden der Start-Datei Sudo-Rechte ohne Passwort zugewiesen.
Nun müssen wir noch in /etc/local/sudoers
#includedir /etc/local/sudoers.d
eintragen.
Mit "start-change-passwort" kann nun jeder sein eigenes Pw. erstellen.

!!Achtung: das auf dem Bildschirm erscheinende "Password:" erwartet die Eingabe des neuen Passwortes!!

Gruss vom Michael
 

xarturx

Cadet
Joined
Mar 23, 2020
Messages
1
Hallo Michael,

ich bin bei der Erstellung der Startdatei hängen geblieben. Mit "touch start-change-password" habe ich die Datei erstellt.
Wenn ich nun "cat /etc/local/sudoers.d/start-change-password
ALL ALL=(ALL) NOPASSWD: /usr/local/<name>/bin/change-password" eingebe, erhalte ich die Fehlermeldung, dass zsh eine Nummer erwartet.
Weiterhin würde ich wahrscheinlich an der Stelle mit dem Symlink scheitern.

Ich bedanke mich schon mal vorab.

Gruß
 
Top