为什么 Ubuntu-for-Windows 默认 shell 是 root shell?

Chr*_*lps 2 command-line application-development windows-subsystem-for-linux

从使用 Linux 的第一天起,我们就被告知以 root 身份运行是极其危险的。在这里,我们在通过在 Windows 10 中启用它向更广泛的受众介绍 Linux 的第一天,我们为用户提供了 root 访问权限。我意识到它是从 Windows 10 环境中沙箱化的,但是为所有用户(甚至是标准用户)提供默认的 root 环境对任何系统都有潜在的危险。为什么我们会认为这是该软件的正确行动方案?

Jde*_*eBP 5

这是因为用户 ID 是这个beta 测试级别子系统中的几个粗糙边缘之一。 事实上,您实际上并不是超级用户。

它看起来是那样的,因为 Windows NT Linux 子系统通过各种系统调用将这种方式报告给 Ubuntu 应用程序。系统调用层处理用户 ID 的部分简单地说,一切都是 UID 0。

Ubuntu 程序正在使用您的用户进程令牌运行,并且您没有任何能力超出您自己使用 Win32 程序的能力。

这不是旧的 (Interix) Windows NT POSIX 子系统,它具有将 Windows SID 映射到 POSIX UID 和 GID 的复杂机制。☺

这是在发行说明中。

进一步阅读