5

我已经下载并安装了 Bash for Windows。当我做一个简单的ls -al,我得到很多权限被拒绝的错误。

我不太清楚用户权限是如何解决的。假设在 bash shell 中,我设置了一个名为moi并拥有 home drive的用户/home/moi。如果我这样做ls -al /mnt/c,我会收到一堆权限被拒绝错误,例如

ls: cannot access /mnt/c/hiberfil.sys: Permission denied 
ls: cannot access /mnt/c/pagefile.sys: Permission denied 
ls: cannot access /mnt/c/swapfile.sys: Permission denied total 2388

    drwxrwxrwx 2 root root      0 Sep 26 18:09 .
    drwxr-xr-x 2 root root      0 Jan  1  1970 ..
    drwxrwxrwx 2 root root      0 Oct 22  2015 AutoDiscover
    -r-xr-xr-x 1 root root 398156 Jul 26  2012 bootmgr
    -r-xr-xr-x 1 root root      1 Oct 30  2015 BOOTNXT

我已经检查了“Windows 端”并且没有新用户名为moi. 那么,例如,当ls报告权限被拒绝时/mnt/c/swapfile.sys,哪个用户被拒绝了?

接下来的问题是:我需要做什么才能让 Bash 用户并将其称为我的“普通”Windows 用户以拥有相同的权限?

4

2 回答 2

2

Windows 用户是启动bash.exe. /mnt/c您可以通过在 Windows 中查看文件所有者的目录中从 Linux 创建一个文件来验证这一点。

在 Windows 命令提示符下:

C:\test>echo %USERNAME%
tim

C:\test>bash.exe
wsluser@computer:/mnt/c/test$ touch foo.txt
wsluser@computer:/mnt/c/test$ exit
exit

C:\test>dir /q C:\test\foo.txt
 Volume in drive C is OS
 Volume Serial Number is B8BA-E032

 Directory of C:\test

2017-06-26  02:06 PM                 0 tim   foo.txt
               1 File(s)              0 bytes
               0 Dir(s)  363,224,875,008 bytes free

请注意,它bash.exe是由tim用户启动的,C:\test\foo.txt从 WSL 创建的文件也归tim.

于 2016-09-28T00:08:40.087 回答
0

您可以使用 windows 文件资源管理器访问 Linux 文件系统。它位于您的 AppData\Local 文件夹中。它是“半隐藏的”但可以访问:

C:\Users\[用户名]\AppData\Local\lxss\rootfs

于 2016-09-28T19:02:27.040 回答