子系统(WSL)中无法修改挂载盘的文件权限?

子系统(WSL)中无法修改挂载盘的文件权限?

在 Windows 子系统中,C 盘被挂载到 /mnt/c 目录下,我们在 Windows 中的用户目录在子系统中对应的文件路径就是 /mnt/c/Users/%username% (将 %username% 替换成你自己的用户名)。

Windows 用户目录下的文件和文件夹的权限默认都是 777,这对强迫症来说简直不能忍。让我们用 chmod 来修改它们的权限:

1
chmod 700 -R !(..)

无效!谷歌之,百度之,终获答案。

Step1 创建wsl.conf文件

/etc 目录下创建一个 wsl.conf 文件,添加以下配置:

1
2
3
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"

Step2 在.bashrc中添加以下配置

1
2
3
if [ "$(umask)" = "0000" ]; then
umask 0022
fi

再重复上述步骤,重新修改那些文件和文件夹的权限,成功!

参考链接

  1. Fix Windows Subsystem for Linux (WSL) File Permissions