我正在尝试在 Ubuntu 上运行 .cpp 文件。我在 Windows 电脑上,从微软商店下载了 Ubuntu。问题是,我无法在我的根目录下安全地运行我的程序(原因不重要),而必须在另一个用户上运行它。因此,我创建了一个新用户(“noroot”)并尝试将我的 .cpp 放在那里。但是,如果我单击我的新用户,或者尝试手动将我的文件滑入文件夹,我会收到此消息:
''' \wsl.localhost\Ubuntu\home\notroot 无法访问。您可能没有权限使用此网络资源。请联系管理员以了解您是否有访问权限。
尝试访问无效地址。'''
但我就是不知道如何将我的文件上传到那里。有人能帮忙吗?
答案1
在 WSL 下安装 Ubuntu 时,系统会要求您输入默认用户名和密码。此默认用户是“拥有”共享的用户。如果该默认用户无权访问某个文件,那么您将无法通过 访问它\\wsl.localhost\Ubuntu
。其他用户的主目录(比如这个“noroot”用户)是drwxr-x---
,这意味着用户或其组之外的任何人都无法访问。
您应该在 Ubuntu 中使用该默认用户执行几乎所有操作。但是,听起来您出于某种原因一直在使用 root 用户。从您的问题中无法清楚了解为什么会这样。
我能想到的一种可能性是,也许你在安装 Ubuntu 时错过了输入默认用户/密码的最后提示。在这种情况下,它不会被创建,root 用户将成为默认用户。请参阅这个答案了解如何纠正此问题。您显然已经完成了其中一些步骤,但请确保您拥有正确的权限。
最重要的是,您可能需要创建/etc/wsl.conf
如该答案中提到的设置noroot
(或您真正希望的用户名)作为默认用户。
除了用户/所有权问题之外,您可以(可能应该)直接在 Ubuntu 中复制文件,而不是使用 Windows 文件资源管理器。假设您将文件放在 root 用户的主目录中,并且想要将其移动到 noroot 用户的主目录中。这看起来像:
作为 root 用户:
cp /root/file.cpp /home/noroot/
chown noroot:noroot /home/noroot/file.cpp
或者作为普通用户:
sudo cp /root/file.cpp /home/noroot/
sudo chown noroot:noroot /home/noroot/file.cpp
正如 @steeldriver 在评论中提到的,如果该文件当前位于 Windows 驱动器上,那么它可能看起来像:
sudo cp /mnt/c/home/yourwindowsuser/Documents/projects/file.cpp /home/noroot/
sudo chown noroot:noroot /home/noroot/file.cpp