WSL 2 访问 Windows 文件权限为 777 的解决方案

起因

一般来说,我们希望一个文件的权限不为 777,理由如下:

  1. ls 的时候看到一堆绿色带星文件
  2. 新建新的 .py*.sh 文件后,不需要额外进行 chmod 就能执行,但在真正的 Linux 环境上是需要 chmod u+x 的。
  3. 可能意外执行了一个 .cpp 文件。

但其实作为一个 OIer,以上东西都没什么影响,但是我们还是可以修理一下的:

第一步

/etc/wsl.conf 加入以下内容:

[automount]
enabled = true
options = "metadata,umask=22,fmask=111"
mountFsTab = true
root = /mnt/

这样所有 Windows 下的文件就没有了可执行权限,同时修改文件会带有“元数据”。

第二步

/etc/fstab 加入以下内容:

C:\ /mnt/c drvfs rw,noatime,uid=1000,gid=1000,metadata,umask=22,fmask=11 0 0

将 C: 盘下的文件重新加上可执行权限,以使用 explorer.exe 等 Windows 应用。

第三步

~/.profile 加入以下内容:

# Note: Bash on Windows does not currently apply umask properly.
if [[ "$(umask)" = "0000" ]]; then
  umask 0022
fi

调整新建的文件的权限。

posted @ 2024-04-02 22:29  caijianhong  阅读(384)  评论(0编辑  收藏  举报