Ein grober Programmierfehler im Steam-Client kann dazu führen, dass Linux-User beim Verschieben oder Deinstallieren von Steam sämtliche Daten aller Laufwerke verlieren.

Valve ist im Steam-Client für Linux ein grober Programmierfehler unterlaufen. Im schlimmsten Fall kann er dazu führen, dass unter Linux und SteamOS sämtliche Daten von allen Laufwerken, internen wie externen, gelöscht werden. Das hat bei Github der User keyvin gemeldet. Er selbst hat aufgrund des Programmierfehlers sogar seine Backups verloren, die auf einer externen Festplatte gespeichert waren.

Holzhammermethode

Wer Steam unter Linux installiert, kann sich das Installationsverzeichnis nicht aussuchen. Deswegen hat der Github-User keyvin manuell das Steam-Verzeichnis verschoben und einen symbolischen Link vom alten auf das neue Verzeichnis gesetzt. Eine mehr als gängige Methode unter Linux, wenn man Ordner respektive Programme verschieben möchte.

Als er aber anschließend versuchte, Steam neu zu starten, endete das in einem Programm-Crash und – wie er feststellte – in einem Verlust sämtlicher Dateien, die seinem Linux-Account zugeordnet waren. Andere User berichten ebenfalls von solchen Erlebnissen.

Den Kommentaren nach ist ist wohl eine einzige Zeile Code Schuld an der Misere und lässt sich auf einen groben Programmierfehler zurückführen. Zeile 468 in der Datei „steam.sh“ lautet nämlich:

rm -rf "$STEAMROOT/"*

Ungeprüfte Befehlsausführung

Der Befehl rm steht für Remove und löscht Dateien und Verzeichnisse. Der Parameter -rf bedeutet, dass sämtliche Unterverzeichnisse und deren Inhalt ohne Rückfrage ebenfalls gelöscht werden sollen. Zeigt die danach folgende Variable $STEAMROOT aber nicht auf das Installationsverzeichnis von Steam, sondern verweist auf einen anderen Ort oder ist schlicht leer, dann kommt es zum großen Knall.

rm -rf "/"*

Der rekursive Löschbefehl wird dann unter Umständen auf das Root-Verzeichnis des Linux-Rechners angewendet und löscht somit sämtliche Dateien und Verzeichnisse, für die der Linux-User, mit dem Steam ausgeführt wird, Schreibrechte hat. Das kann in der Tat zu einem vollständigen Datenverlust führen, wenn Steam zum Ausführen sogar Root-Rechte erhalten hat.

Auch unter Windows kann die Deinstallationsroutine zu einem Datenverlust führen. Valve weiß das sogar und hat lapidar einen Warnhinweis hinterlegt, anstatt die Deinstallationsroutine zu überarbeiten. Die Lösung des Problems ist dabei eigentlich sehr einfach. Bleibt zu hoffen, dass Valve in den kommenden Tagen sowohl für Linux/SteamOS als auch für Windows einen Patch nachreicht.

Update: Mit einem am 19. Januar 2015 veröffentlichten Update für den Steam-Client hat Valve den Fehler behoben. In den Patch-Notes steht allerdings nur, dass der Fehler für die Linux-Version des Clients, nicht aber für die Windows-Version, behoben wurde. Achtet unbedingt darauf, dass das Update vom 19. Januar 2015 eingespielt wurde, bevor Ihr versucht, den Steam-Client unter Linux oder SteamOS zu verschieben.