Mit folgenden Schritten, kann man sehr einfach das Passwort für den User “oneadmin” zurücksetzen. Ich verwende hier in diesem OpenNebula Setup eine Default-Installation mit sqlite.

Zuerst sollten sämtliche OpenNebula Daemons gestoppt werden:

root@linux:~# systemctl stop opennebula
root@linux:~# systemctl stop opennebula-sunstone

Unter /var/lib/one liegt die Sqlite3-DB one.db. Dort sind die Passwörter gespeichert. Folgender Befehl zeigt die Ausgabe davon:

root@linux:~# sqlite3 /var/lib/one/one.db
sqlite> select body from user_pool where name='oneadmin';

Die Ausgabe erscheint als XML. Das Passwort ist als SHA1 Hash gespeichert. Daher erstellen wir uns zuerst einen neuen Hash für unser neues Passwort:

root@linux:~# echo -n 'meinsupergeheimespasswort' | openssl sha1
(stdin)= 1ec15f96679fdb33f12b98c63dcf5203e2f58482

Zum Schluss muss dies in die Sqlite-DB geschrieben werden:

sqlite> update user_pool set body='<KOMPLETTE AUSGABE DES XML OUTPUTS INKL. DES GEÄNDERTEN SHA1 WERTS:

<PASSWORD><![CDATA[HIER DER NEUE HASH]]></PASSWORD>

... </TEMPLATE></USER>' where name='oneadmin';

Jetzt noch die Credentials anpassen:

root@linux:~# echo "oneadmin:meinsupergeheimespasswort" > /var/lib/one/.one/one_auth

Jetzt können alle Daemons wieder gestartet werden und eine Anmeldung sollte wieder möglich sein.