Dom*_*c D 5 permissions 16.04 windows-subsystem-for-linux
作为我工作流程的一部分,我有一个双引导系统,Ubuntu 16.04 用于开发,Windows 10 用于其他工作。当我不想重新启动到 Ubuntu 时,我将 WSL 1 用于较小的 linux 任务。作为其中的一部分,我使用Zim做笔记,我希望这些内容可以从本机 Ubuntu 和 WSL 访问和编辑。
我已经将这些笔记存储在 WSL 的主目录中,Ubuntu 可以通过我安装的 Windows 系统驱动器在Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/. 不建议在 Windows 中访问这些文件,因为它会删除它们的权限,但我认为从另一个 Ubuntu 实例访问它们应该没问题。这工作正常,我的文件可以从两个操作系统访问。但是我遇到了文件权限问题。如果相关,我会通过 Ubuntu 主目录中的符号链接访问此位置。
当我从 WSL 编辑或添加文件时,权限工作正常,我能够在本机 Ubuntu 中查看和访问它们。但是当我在本机 Ubuntu 中创建或编辑文件时,它们的权限似乎在 WSL 上被删除了(即我没有权限)。然后我可以chmod在 WSL 中处理这些文件,但每次都必须这样做令人沮丧。
我已确保 Ubuntu 和 WSL 上的用户具有相同的名称和密码,以及相同的 uid 和 gid (1000)。我注意到用户是不同组的成员。例如,我的本地 Ubuntu 用户是与 Docker 相关的组的成员,但我没有在 WSL 上安装它。
是否有任何其他系统设置我需要确保在操作系统之间保持相同以保留文件权限?
编辑:我已经将它作为 Zim 特定的问题消除了。即使在 Ubuntu 中使用创建一个新文件touch也会导致它对 WSL 没有权限。
编辑:这里有一些更明确的细节 - 也许他们会帮助某人看到这个问题。存储所有这些文件的文件夹具有以下权限(请注意,它是 Ubuntu 上的符号链接)。
# WSL:
drwxrwxrwx
# Ubuntu 16.04
lrwxrwxrwx
Run Code Online (Sandbox Code Playgroud)
我还检查了umask两个操作系统的设置。似乎有一个错误是 WSL 会自动将 umask 设置为 000。这些需要匹配吗?
# WSL
umask: 0000
# Ubuntu 16.04
umask: 0002
Run Code Online (Sandbox Code Playgroud)
我id在两个操作系统上运行并得到以下结果。
# WSL
uid=1000(dominic) gid=1000(dominic) groups=1000(dominic),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),110(lxd)
# Ubuntu 16.04
uid=1000(dominic) gid=1000(dominic) groups=1000(dominic),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |