Was es mit dem Steam-Code (steam.sh) auf sich hat, der alle Daten löscht

Kein Kommentar Autor: Jürgen (jdo)

Valves Steam-Client hat einen üblen Bug im Steam-Code, beziehungsweise dem Shell-Script, das den Steam-Client startet. Im Prinzip kann es unter Umständen zu einem klassischen

rm -rf /*

kommen.

Was bedeutet dieser Code in steam.sh?

Im Linux- / UNIX-Jargon wird diese Zeile oder der Befehl rm -rf schon mal gerne benutzt, um Neulinge zu veralbern – wobei man sofort nachschiebt, dass sie das auf keinen Fall ausführen sollen.

Das rm steht für Löschen, die Schalter -rf für rekursiv und erzwungen (force – ohne Nachfrage) und das /* – fange im root-Verzeichnis an.

Auf Deutsch – lösche alle Dateien vom Wurzelverzeichnis aus. Oder noch kürzer: Mach alles platt. Da sich eingebundene Laufwerke wie zum Beispiel externe Festplatten, Laufwerke im Netzwerk und so weiter ebenfalls unter dem Wurzelverzeichnis (root) befinden, würde dieser Befehl auch dort sein zerstörerisches Chaos anrichten.

Genau dieser Befehl befindet sich in der Funktion function reset_steam(), in der Datei steam.sh, die wiederum im Installations-Verzeichnis des Steam-Clients liegt. Bei mir ist das der Standard-Ordner ~/.local/share/Steam.

Der Schreiber der Zeile wusste wohl auch irgendwie, was er da tut. Denn er hat der betreffenden Zeile den Kommentar Scary! spendiert.

steam.sh: Das ist in der Tat Scary!

steam.sh: Das ist in der Tat Scary!

Es kann nämlich durchaus vorkommen, dass die Variable STEAMROOT (das Installations-Verzeichnis von Steam) leer ist. Überprüft und abgefangen wird das allerdings nirgends.

steam.sh und STEAMROOT

steam.sh und STEAMROOT

Auf GitHUB wurde ein Bug-Report von einem Anwender mit Namen keyvin eingereicht.

Er ist sich nicht sicher, was da gerade passiert ist. Er hat den Ordner in einem anderen verschoben, der unter /media/user/BLAH lag und einen Symlink (symbolischer Link) auf /home/user/.local/steam erstellt.

Danach wollte er Steam starten, was die Software allerdings nicht getan hat. Allerdings wurde dem Anwender angeboten, den Steam-Ordner zu suchen. Das klappte allerdings nicht und Steam ist abgestürzt. Deswegen hat er den Client neu gestartet.

Der Steam-Client hat sich selbst neu installiert und alles sah gut aus. Allerdings musste der Anwender dann feststellen, dass die Datei steam.sh anscheinend alles gelöscht hatte, was ihm als Anwender gehörte – rekursiv und ohne Nachfrage – plus eine Festplatte mit drei TByte, die unter /media eingebunden war.

Auch andere Anwender hatten Probleme mit gelöschten Dateien und das Problem lässt sich auf den oben erklärten Befehl in der Datei steam.sh zurückverfolgen.

Das ist ein ganz übler Bug und man sollte diesen so schnell wie möglich ausbessern.

Wie kann man sich vor der Datei steam.sh oder dem übereifrigen Steam-Client derzeit schützen?

  • Steam gar nicht erst starten, ist der beste Schutz … 🙂 – und warten, bis der Bug ausgebessert ist. Ich persönlich warte auf einen offiziellen Fix.
  • Dann könnte man auch alles beim Standard zu lassen. Zumindest sollte man immer eine Backup haben, was nun weniger mit dem Steam-Client und dem komischen Code in steam.sh zu tun hat. Ein normales Cloud-Backup wie mit ownCloud oder Seafile reicht in diesem Fall nicht, da die Dateien lokal gelöscht würden und der Synchronisations-Client das auf den Cloud-Service überträgt.
  • Eine weitere Option ist, dass man unter den Einstellungen und Downloads noch mehrere Steam-Ordner angeben kann, in denen sich Spiele installieren lassen. Somit vermeidet man komische Verschiebe-Orgien. Man muss dann eventuell mit Backup und Wiederherstellung direkt aus dem Steam-Client hantieren.
  • Für Steam einen separaten Anwender anlegen, der nur für den Zweck der Spiele angelegt wird und relativ wenig Rechte hat. In diesem Fall kann steam.sh wesentlich weniger Schaden anrichten.
  • Man könnte auch die Datei steam.sh anpassen oder die böse Zeile auskommentieren. Das sollte eigentlich keine großen Konsequenzen haben, außer bei einer Deinstallation – wissen tu ich das aber nicht. Zumal der Befehl rm -rf in diesem Script relativ häufig vorkommt.

Auch die Windows-Version ist nicht Ohne

Wie in diesem Artikel bei Steam nachzulesen ist, sollten auch die Windows-Anwender bei der Deinstallation aufpassen. Wer Steam aus Versehen in einen Ordner installiert hat, der auch andere Daten enthält, verliert diese bei einer Deinstallation. Steam löscht den Ordner komplett, um den Client komplett vom System zu entfernen.

Für so einen Fall stellt man eine Anleitung zur Verfügung, wie man den Steam-Client manuell deinstallieren kann.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.