Server/serveradmin Passwort vergessen

Aus TeamSpeak Wiki
Wechseln zu: Navigation, Suche

Beim ersten Start eines TeamSpeak Servers erhält man die Query Zugangsdaten angezeigt. Diese werden nicht gespeichert und sollten deshalb notiert werden. Dennoch kann es vorkommen, dass man das Passwort für den "Superadmin"-Account vergessen hat. Außerdem könnte es über die Query-Schnittstelle verändert worden sein; etwa durch die Nutzung des Befehls clientedit oder CLIENTSETSERVERQUERYLOGIN. Da der serveradmin-Account der quasi Superadmin-Account, stellt er die höchsten zu erlangenden Rechte dar, sodass sich die Frage stellt, ob man das Passwort auslesen oder ändern kann.

Leider besteht keine Möglichkeit das Passwort aus der Datenbank auszulesen. Üblicherweise werden Passwörter in einer Datenbank nur verschlüsselt abgelegt, damit bei einer Entwendung der Daten nicht das Klartextpasswort sichtbar ist. So speichert auch TeamSpeak das Passwort verschlüsselt ab. Es wird zunächst ein SHA1-Extrakt im Raw-Binary-Format erstellt, welcher dann mit base64 kodiert ist, und kann etwa mit PHP wie folgt erzeugt werden:

  1. echo base64_encode(sha1('PASSWORT', true));

Das ursprüngliche Passwort bleibt also verloren.

Es besteht allerdings das vergessene Passwort in ein neues Passwort zu ändern. Dazu gibt es verschiedene Möglichkeiten, die ihre Vor- und Nachteile haben.

Passwort mittels Startparameter ändern

Eine sehr einfache Methode, die allerdings einen Neustart des Servers erfordert. Außerdem kann hiermit nur das Passwort geändert werden. Wenn der Loginname verstellt ist, wird der Parameter nicht helfen.

Unter Windows kann die .exe Datei mit Parameter gestartet werden: .\teamspeak3server.exe serveradmin_password=NEUES_PASSWORT[1]

Oder unter Linux: ./ts3server_startscript.sh start serveradmin_password=NEUES_PASSWORT[1]


Passwort mittels SQL ändern

Eine Methode für fortgeschrittene Nutzer ist die Verwendung eines direkten Änderns der Datenbank. Der Vorteil besteht darin, dass hier notfalls auch der geänderte client_login_name geändert werden kann. Außerdem kann die Änderung im laufenden Betrieb durchgeführt werden, sodass der TeamSpeak 3 Server keinen Neustart benötigt. Mit dieser Anleitung kann das Passwort sowohl unter Linux, als auch unter Windows geändert werden.


Unter Debian erfolgt die Installation des Programms, mit welchem wir direkt auf die Datenbank zugreifen können, mit folgendem Befehl. Danach ist in das Installationsverzeichnis zu wechseln und dann das Programm auf die Datenbank anzuwenden.

  1. apt-get install sqlite3
  2.  
  3. cd ./ts3-server
  4.  
  5. sqlite3 ts3server.sqlitedb

Der Pfad zur Installation ist natürlich auf die lokalen Begebenheiten anzupassen.

Unter Windows kann das Ändern der Datenbank etwa mit dem Sqlitebrowser[2] durchgeführt werden.


Nun folgt der Befehl zum Ändern des Loginnamens (Zeile 1), der nicht in jedem Fall ausgeführt werden muss. In Zeile 2 folgt der Befehl zum Ändern des Passworts. Das Passwort wird dabei auf ykN+zfqD geändert.[3]

  1. UPDATE clients SET client_login_name="serveradmin" WHERE client_unique_id="serveradmin"; 
  2.  
  3. UPDATE clients SET client_login_password="r5oBZ3Z8s8IqjiEJ/k3o9dkSUgU=" WHERE client_unique_id="serveradmin";

Danach kann sich wieder auf dem Server eingeloggt werden. Das Passwort sollte in jedem Fall neu gesetzt werden. Dies ist mit CLIENTSETSERVERQUERYLOGIN möglich.

Anmerkungen und Nachweise

  1. 1,0 1,1 https://support.teamspeakusa.com/index.php?/Knowledgebase/Article/View/276/16/how-do-i-change-my-serverquery-admin-password
  2. Download unter http://sourceforge.net/projects/sqlitebrowser/
  3. Diese Kombination aus Passwort und verschlüsseltem Eintrag in der Datenbank wurde bereits 2009 von Germeshausen.de im teamspeak.com Forum vorgeschlagen.