Steam 安装会清除我的主页。如何防止这种情况发生?

Steam 安装会清除我的主页。如何防止这种情况发生?

我读过一个令人不安的话题阀门用户在使用 steam 脚本时丢失了系统。关于reddit.linux以及reddit/steam

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

原始错误:

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

我启动了 steam。它没有启动,它让我浏览,当我指向新位置时仍然找不到它。Steam 崩溃了。我重新启动了它。

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

大部分重要的东西都在云端。虽然很麻烦,但也不至于太糟。如果移动 steam 文件夹可能会导致目录树中的所有内容被递归删除,那么你应该直接抛出错误,而不是尝试指向其他内容。或者,允许用户像在 Windows 上一样先选择一个安装目录。

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

答案1

问题始于脚本“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,请注意:它将删除你的整个磁盘。

相关内容