导入要与 WSL 一起使用的任何 Linux 发行版
官网链接:https://learn.microsoft.com/zh-cn/windows/wsl/use-custom-distro
操作:
在WSL中导入Ubuntu或任何其他Linux发行版后,默认情况下确实会以root用户身份启动。要为导入的发行版设置一个非root用户帐户,并使其成为默认用户,您可以按照以下步骤操作:
-
启动WSL并登录为root:首先,确保您以root用户身份登录到您的Linux发行版中。如果您已经导入了发行版,您可以通过在命令行中输入
wsl -d <DistroName>
来启动它,其中<DistroName>
是您的Linux发行版的名称。 -
创建一个新用户帐户:一旦作为root用户登录,您可以创建一个新的用户帐户。使用
adduser
命令,后面跟您想要创建的用户名。例如,要创建一个名为myuser
的用户,您可以输入:adduser myuser
按照提示操作,为新用户设置密码和其他任何信息。
-
将新用户设置为默认用户:在创建了新用户后,您需要编辑您的Linux发行版的配置,使新用户成为默认用户。这可以通过编辑
/etc/wsl.conf
文件并添加一些配置来实现。首先,检查该文件是否存在,如果不存在,则创建它:nano /etc/wsl.conf
然后,添加以下内容:
[user] default=<your-username>
其中
<your-username>
是您刚创建的用户的用户名。保存并关闭文件。 -
退出并重启WSL:更改完成后,退出WSL实例并重启它以使更改生效。您可以通过执行
exit
命令来退出当前的会话,然后关闭所有打开的WSL终端窗口。之后,重新启动WSL实例,应该会看到它现在默认使用您创建的用户帐户。
请注意,这些步骤假设您已经熟悉基本的Linux命令和WSL的使用。如果您在过程中遇到任何问题,请确保查看WSL的官方文档或搜索特定的错误信息。
问题汇总:
1.wsl启动后还是root
如果在按照上述步骤操作后WSL仍然以root用户启动,那么可能是 /etc/wsl.conf
文件中的配置没有正确应用,或者WSL需要完全关闭再重新启动以应用更改。尝试以下步骤:
-
确认
/etc/wsl.conf
文件中的配置是否正确:确保/etc/wsl.conf
中的内容正确无误,特别是用户名是否与您创建的非root用户完全匹配。打开文件检查:nano /etc/wsl.conf
确保文件内容如下,其中
myuser
应替换为您的用户名:[user] default=myuser
-
完全关闭WSL:有时仅仅关闭和重新打开WSL不足以应用更改。您需要完全关闭所有运行的WSL实例。在命令提示符或PowerShell中运行:
wsl --shutdown
这将关闭所有运行的Linux发行版和WSL 2 轻量级实用程序虚拟机。
-
再次启动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
文件中,赋予其管理员权限。请按照以下步骤操作:
-
以 root 用户身份登录:首先,您需要以 root 用户身份登录到您的 Linux 系统。如果您当前已经是
moran
用户,您可以退出到 root 用户,使用exit
命令或者重新启动 WSL 并以 root 用户登录。 -
编辑 sudoers 文件:一旦以 root 用户登录,您需要编辑
/etc/sudoers
文件来赋予moran
用户执行 sudo 命令的权限。最安全的方法是使用visudo
命令来编辑这个文件,这样可以防止语法错误。在命令行中输入:visudo
这将会在默认的文本编辑器中打开
/etc/sudoers
文件。 -
添加用户到 sudoers 文件:在打开的文件中,找到类似这样的行:
root ALL=(ALL:ALL) ALL
在这行下面添加一行来为
moran
用户赋予权限:moran ALL=(ALL:ALL) ALL
这意味着
moran
用户可以在所有主机上作为所有用户执行任何命令。 -
保存并退出编辑器:完成编辑后,根据您使用的编辑器的指示保存并退出。如果您使用的是
visudo
和nano
作为编辑器,通常可以通过按Ctrl + O
保存更改,然后按Ctrl + X
退出。 -
测试 sudo 权限:最后,以
moran
用户身份登录并尝试使用sudo
命令来测试是否成功赋予了 sudo 权限。例如:sudo apt update
如果没有错误提示,那么
moran
用户现在应该有了执行 sudo 命令的权限。
请注意,在编辑 /etc/sudoers
文件时一定要非常小心,因为任何错误都可能导致系统权限问题,甚至阻止您使用 sudo 命令。始终使用 visudo
来编辑这个文件是一个好习惯。