WSL 有可用的 Linux/Ubuntu 恢复方法吗?

wxz*_*wxz 2 windows ubuntu windows-subsystem-for-linux

正如之前 StackOverflow 问题提到的,是否可以在 WSL 程序上使用任何正常的恢复工具(从 USB 实时启动、grub 命令行等),如果可以,如何操作?

\n

例如,如果不小心修改了sudo权限,并且无法再使用 sudo,而不会出现 \xe2\x80\x9c/etc/sudoers is world writable\xe2\x80\x9d 错误。在这种情况下,如何恢复/etc/sudoers权限,因为该chmod命令本身需要sudo,所以通常您需要进行实时启动来更改文件权限?

\n

更新:为了我自己的 \xe2\x80\x9c 概念验证 \xe2\x80\x9d 目的,我最初尝试从完全独立的 Ubuntu 计算机安装我的 Windows 驱动器(带有 WSL),看看是否可以从那里更改 sudoers 文件权限。

\n

虽然我似乎能够从 Ubuntu 更改权限,但一旦我回到 Windows 和 WSL,sudoers 文件就会显示为已损坏(垃圾ls -lah数据)。我在评论中使用了 @user1686提供的信息,在答案中使用了 @NotTheDr01ds提供的信息,以 root 身份访问 WSL,然后创建一个具有正确权限的新 sudoers 文件。

\n

Not*_*1ds 6

给定您的“例如”,WSL 可以轻松地允许您通过wsl -u rootPowerShell 或 CMD 以 root 身份(无需密码)启动默认实例,或者,如果它不是默认实例,则可以使用wsl -d <DistroName> -u root. 然后您就可以运行visudo而无需 sudo 密码。

WSL 还允许使用wsl --export <DistroName> <filename.tar>. 这可能会使用 Windows 任务管理器中的脚本自动创建备份计划。然后,恢复就是恢复到最新的使用状态wsl --import(请参阅wsl --help参考资料 获取更多信息)。请注意,导入的实例不存储默认用户名,因此您还需要创建一个/etc/wsl.conf用户部分