Steam安装可以清除我的家。怎么预防呢?


14

我读了一个关于Valve的令人不安的话题,在该话题上,用户在使用Steam脚本时丢失了系统。关于reddit.linuxreddit / steam的讨论。

这可能不是一个常见的问题,因为我更改了有关系统的各种配置。有问题的脚本以一种非常非常愚蠢的方式执行某些操作,但是它可能不会触发每个系统的失败情况,因为...

原始错误:

我不确定发生了什么。我将标题中的文件夹移动到安装在其下/media/user/BLAH并符号链接/home/user/.local/steam到新位置的驱动器上。

我发了汽。它没有启动,它让我浏览,但当我指向新位置时仍然找不到它。蒸汽坠毁。我重新启动了它。

它重新安装了自己,一切看起来都很棒。直到我查看并看到Steam显然已从根目录中递归删除了我的用户拥有的所有内容。包括我的3TB外置驱动器在内,我都备份了安装在/ media下的所有内容。

大部分重要的事情大部分都在云中。这是一个巨大的麻烦,但这不是灾难。如果移动Steam文件夹有可能导致递归删除目录树中的所有内容,则可能应该抛出一个错误,而不是尝试指向其他内容。或者您知道,允许用户最初像在Windows上一样选择安装目录。

我的系统是ubuntu 14.04,如果值得,我将其移动到的驱动器是ntfs。

Answers:


14

问题始于脚本“ steam.sh”中的第19行:

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

$STEAMROOT可以在此处变为空,从而使rm -rf "$STEAMROOT/"*脚本的进一步内容与 rm -rf "/"*.


出现了补丁程序,此脚本有很多错误。最容易更改,至少阻止删除不应删除的文件...

rm -rf "$STEAMROOT/"*

至 ...

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

也可以在STEAMDATA设置之后添加出口:

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

如果有人警告以root用户身份安装了steam,它将删除您的整个磁盘。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.