首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的Ubuntu在启动时就开始默认为Root用户?(运行Windows 10的决斗)

为什么我的Ubuntu在启动时就开始默认为Root用户?(运行Windows 10的决斗)
EN

Ask Ubuntu用户
提问于 2022-09-03 15:00:50
回答 2查看 2K关注 0票数 3
代码语言:javascript
运行
复制
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal

我已经使用Ubuntu好几个月了。我运行Windows 10 PC并通过Microsoft安装Ubuntu。在最初的设置过程中,我为自己创建了一个用户--从那时起,每当我从Windows打开Ubuntu终端时,它都会以该用户的身份加载。

周四,我加载了Ubuntu,它不是作为我的用户加载,而是作为根用户加载。我的用户仍然存在-我可以通过su切换到我的用户,然后继续正常进行。这并没有给我带来任何问题,但它确实符合不寻常的行为,而且存在着明显的安全隐患。

我运行了sudo apt updatesudo apt upgrade,以确保所有内容都是最新的。我使用相同的Windows帐户加载Windows 10,这是我一直拥有的。我不知道造成这种行为的任何操作上的变化。

一个可能指示原因的因素--我使用code .访问Visual代码。这在切换用户之后不起作用,只有当我将它添加到我的用户的$PATH中时,它才会再次工作。

试图谷歌搜索这种情况在一定程度上受到了谷歌的影响,假设我想以根用户身份登录,而实际上情况正好相反。

有人能告诉我这里可能发生了什么,并建议一个解决办法吗?我并不是把所有的东西都撕掉,然后重新开始重新安装,但是在我考虑之前,我想知道一些简单的东西会不会是个问题。

谢谢

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2022-09-05 19:34:47

我加载了Ubuntu,它不是作为我的用户加载,而是作为根用户加载。有人能..。请给我一个建议?

通常,这意味着通知WSL默认用户的UID的注册表项已经“丢失”。典型的解决方案是通过创建具有以下内容的/etc/wsl.conf (作为根用户)来告诉WSL应该使用哪个UID:

代码语言:javascript
运行
复制
[user]
default=your_username

这个答案中还提到了其他一些替代方案。

有人能告诉我这是怎么回事吗.?

我希望我至少能从理论上解释为什么会发生这种情况,但从我们在评论中的讨论来看,我还是不确定。

对于WSL下的默认Ubuntu安装,默认uid (通常为1000)存储在注册表中。如果:

  • WSL发行版是--import编辑的。
  • 或者如果其他更改会“断开”注册表项与发行版的连接。重命名默认的Windows用户文件夹会导致这种情况,但也会导致发行版本身“丢失”(事实并非如此)。

因此,这听起来并不是默认用户被更改的原因。但是,如果没有为WSL发行版设置默认用户集,则使用uid 0 (root)。这绝对是你所看到的。

通过在PowerShell中运行以下命令,您可以看到所有WSL发行版的注册表项:

代码语言:javascript
运行
复制
Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\

我猜要么是DefaultUid丢失了,要么是设置为0。但同样,我不太确定这是如何发生的。

我的用户仍然存在-我可以通过su切换到我的用户,然后继续正常进行。

那很好。至少我们应该能够告诉WSL再次使用它作为缺省值。

这并没有给我带来任何问题,但它确实符合不寻常的行为,而且存在着明显的安全隐患。

您可能会认为,但如上文所述,默认为root是WSL中的预期行为。WSL发行版中没有“登录”的概念--您可以以任何用户的身份使用wsl -u <username> (例如wsl -u root)登录。

给出的理由是,即使是WSL中的根也仅限于Windows用户的权限。不管您是根用户还是非root用户,您仍然无法删除或更改,例如,C:\Windows\System32中的二进制文件。

票数 3
EN

Ask Ubuntu用户

发布于 2023-05-20 06:35:50

我在https://github.com/microsoft/WSL/issues/4276#issuecomment-509338642找到了一个解决方案

以管理员身份打开PowerShell。粘贴命令:

代码语言:javascript
运行
复制
ubuntu2004.exe config --default-user <username you wish to switch to>

注意:用系统上的版本替换发行版。对我来说,我安装的版本是ubuntu20.04。之后,启动Ubuntu。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1427355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档