Bootstrap

导入要与 WSL 一起使用的任何 Linux 发行版

导入要与 WSL 一起使用的任何 Linux 发行版

官网链接:https://learn.microsoft.com/zh-cn/windows/wsl/use-custom-distro

操作:

在WSL中导入Ubuntu或任何其他Linux发行版后,默认情况下确实会以root用户身份启动。要为导入的发行版设置一个非root用户帐户,并使其成为默认用户,您可以按照以下步骤操作:

  1. 启动WSL并登录为root:首先,确保您以root用户身份登录到您的Linux发行版中。如果您已经导入了发行版,您可以通过在命令行中输入 wsl -d <DistroName> 来启动它,其中 <DistroName> 是您的Linux发行版的名称。

  2. 创建一个新用户帐户:一旦作为root用户登录,您可以创建一个新的用户帐户。使用 adduser 命令,后面跟您想要创建的用户名。例如,要创建一个名为 myuser 的用户,您可以输入:

    adduser myuser
    

    按照提示操作,为新用户设置密码和其他任何信息。

  3. 将新用户设置为默认用户:在创建了新用户后,您需要编辑您的Linux发行版的配置,使新用户成为默认用户。这可以通过编辑 /etc/wsl.conf 文件并添加一些配置来实现。首先,检查该文件是否存在,如果不存在,则创建它:

    nano /etc/wsl.conf
    

    然后,添加以下内容:

    [user]
    default=<your-username>
    

    其中 <your-username> 是您刚创建的用户的用户名。保存并关闭文件。

  4. 退出并重启WSL:更改完成后,退出WSL实例并重启它以使更改生效。您可以通过执行 exit 命令来退出当前的会话,然后关闭所有打开的WSL终端窗口。之后,重新启动WSL实例,应该会看到它现在默认使用您创建的用户帐户。

请注意,这些步骤假设您已经熟悉基本的Linux命令和WSL的使用。如果您在过程中遇到任何问题,请确保查看WSL的官方文档或搜索特定的错误信息。

问题汇总:

1.wsl启动后还是root

如果在按照上述步骤操作后WSL仍然以root用户启动,那么可能是 /etc/wsl.conf 文件中的配置没有正确应用,或者WSL需要完全关闭再重新启动以应用更改。尝试以下步骤:

  1. 确认 /etc/wsl.conf 文件中的配置是否正确:确保 /etc/wsl.conf 中的内容正确无误,特别是用户名是否与您创建的非root用户完全匹配。打开文件检查:

    nano /etc/wsl.conf
    

    确保文件内容如下,其中 myuser 应替换为您的用户名:

    [user]
    default=myuser
    
  2. 完全关闭WSL:有时仅仅关闭和重新打开WSL不足以应用更改。您需要完全关闭所有运行的WSL实例。在命令提示符或PowerShell中运行:

    wsl --shutdown
    

    这将关闭所有运行的Linux发行版和WSL 2 轻量级实用程序虚拟机。

  3. 再次启动WSL:完成上述步骤后,重新打开WSL。您可以通过在开始菜单中点击您的Linux发行版的图标,或者在命令提示符或PowerShell中输入 wsl 命令来启动。

如果上述步骤仍然不能解决问题,可能需要检查WSL版本和您的Linux发行版是否支持这种方法设置默认用户。另外,还可以尝试以下命令行方法设置默认用户:

ubuntu config --default-user myuser

请将 ubuntu 替换为您的具体Linux发行版的名称(例如,如果您使用的是Debian,就替换为 debian),myuser 替换为您的用户名。

如果仍然有问题,请确保您的WSL和Windows已更新到最新版本,以获取所有最新的功能和修复。

2.不能使用切换root
moran@moran:/mnt/c/Users/J-Yong$ sudo su
[sudo] password for moran:
moran is not in the sudoers file.  This incident will be reported.

从您提供的信息来看,尝试使用 sudo 命令时遇到了问题,因为用户 moran 没有在 sudoers 文件中,这意味着 moran 用户没有执行 sudo 命令的权限。

要解决这个问题,您需要将 moran 用户添加到 sudoers 文件中,赋予其管理员权限。请按照以下步骤操作:

  1. 以 root 用户身份登录:首先,您需要以 root 用户身份登录到您的 Linux 系统。如果您当前已经是 moran 用户,您可以退出到 root 用户,使用 exit 命令或者重新启动 WSL 并以 root 用户登录。

  2. 编辑 sudoers 文件:一旦以 root 用户登录,您需要编辑 /etc/sudoers 文件来赋予 moran 用户执行 sudo 命令的权限。最安全的方法是使用 visudo 命令来编辑这个文件,这样可以防止语法错误。在命令行中输入:

    visudo
    

    这将会在默认的文本编辑器中打开 /etc/sudoers 文件。

  3. 添加用户到 sudoers 文件:在打开的文件中,找到类似这样的行:

    root    ALL=(ALL:ALL) ALL
    

    在这行下面添加一行来为 moran 用户赋予权限:

    moran   ALL=(ALL:ALL) ALL
    

    这意味着 moran 用户可以在所有主机上作为所有用户执行任何命令。

  4. 保存并退出编辑器:完成编辑后,根据您使用的编辑器的指示保存并退出。如果您使用的是 visudonano 作为编辑器,通常可以通过按 Ctrl + O 保存更改,然后按 Ctrl + X 退出。

  5. 测试 sudo 权限:最后,以 moran 用户身份登录并尝试使用 sudo 命令来测试是否成功赋予了 sudo 权限。例如:

    sudo apt update
    

    如果没有错误提示,那么 moran 用户现在应该有了执行 sudo 命令的权限。

请注意,在编辑 /etc/sudoers 文件时一定要非常小心,因为任何错误都可能导致系统权限问题,甚至阻止您使用 sudo 命令。始终使用 visudo 来编辑这个文件是一个好习惯。

;