L'installazione di Steam può cancellare la mia casa. Come prevenirlo?


14

Ho letto un argomento inquietante su Valve in cui un utente ha perso il suo sistema durante l'utilizzo dello script di Steam. C'è una discussione su reddit.linux e su reddit / steam .

Questo potrebbe non essere un problema comune perché cambio ogni tipo di configurazione sul mio sistema. Lo script in questione fa qualcosa in un modo davvero stupido, ma probabilmente non attiva lo scenario di errore per ogni sistema perché ...

Bug originale:

Non sono sicuro di cosa sia successo. Ho spostato la cartella nel titolo su un'unità montata sotto /media/user/BLAHe collegata /home/user/.local/steamalla nuova posizione.

Ho lanciato Steam. Non si avviava, si offriva di farmi navigare e ancora non riuscivo a trovarlo quando indicavo la nuova posizione. Steam si è schiantato. L'ho riavviato.

Si è reinstallato da solo e tutto sembrava fantastico. Fino a quando non ho visto e visto che Steam aveva apparentemente cancellato tutto ricorsivamente dal mio utente dalla directory principale. Inclusa la mia unità esterna da 3 TB, eseguo il backup di tutto ciò che è stato montato su / media.

Tutto ciò che era importante, per la maggior parte, era nel cloud. È una seccatura enorme, ma non è un disastro. Se esiste la possibilità che lo spostamento della cartella Steam possa comportare l'eliminazione ricorsiva di tutto nella struttura della directory, è probabile che si verifichi un errore invece di cercare di indicare altre cose. Oppure sai, consenti all'utente di scegliere inizialmente una directory di installazione come su Windows.

Il mio sistema è Ubuntu 14.04, e il disco in cui l'ho spostato era NTFS se ne vale la pena.

Risposte:


14

Il problema inizia attorno alla riga 19 nello script "steam.sh.":

STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMDATA="$STEAMROOT"

$STEAMROOTqui può svuotarsi efficacemente, trasformando rm -rf "$STEAMROOT/"*ulteriormente lo script nello stesso modo di rm -rf "/"*.


Ci sono patch che appaiono e c'è molto di sbagliato in questo script. Più facile da modificare e almeno impedire l'eliminazione dei file non dovrebbe ...

rm -rf "$STEAMROOT/"*

per ...

[[ -n $STEAMROOT && $STEAMROOT =~ 'steam' ]] && rm -rf $STEAMROOT

È anche possibile aggiungere un'uscita subito dopo aver STEAMDATAimpostato:

STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMDATA="$STEAMROOT"
if [ -z "$STEAMROOT" ]; then
    echo "stop script otherwise files are deleted from /."
    exit 1
fi

Se qualcuno là fuori ha installato Steam come root dovrebbe essere avvisato: eliminerà il tuo intero disco.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.