介绍

在windows下进行开发的同学,对wsl应该不陌生,通过wsl我们可以轻松在windows系统下使用一个完整的linux操作系统,给我们的开发带来很好的体验。

问题描述

今天在部署完wsl后,打算将开发文件均放到共享目录下(wsl默认会将windows的磁盘挂载到/mnt目录下),然而通过wsl系统进入挂载的共享目录时,发现所有目录及文件权限都是777,一开始我不以为然的直接就是一波666的操作,拉代码,新增文件,提交代码,然后合并代码,然后就报错了。。。(正是因为权限问题导致的)

解决方案

解决权限问题

百度了一番,找到了一个有效的方法,记录如下:

  1. .bashrc或者.zshrc中加入如下代码
if [[ "$(umask)"=='000' ]]; then
    umask 022
fi
  1. /etc/wsl.conf配置文件中写入如下配置,文件不存在则新增一个,保存后重启电脑
[automount]
enabled = true
root = /mnt/
options = "metadata,dmask=022,fmask=133"
mountFsTab = false

至此,在启动wsl进入系统,文件权限就正常了

你以为这就结束了?小伙子还是太年轻啊

结果之前新增提交代码文件目录出问题了,在wsl下无法删除,也无法移动,直接在windows下操作也提示无权限,这是什么鬼?

捯饬一阵后,索性重启电脑,试着在不启动wsl的情况下,通过windows直接删除文件及文件夹,嗯,成功了,再打开wsl,checkout代码,一切恢复正常

猜测是wsl启动后,给文件及文件夹赋予了个权限,导致文件锁定了。坑真是不少~
不着急,慢慢踩吧。

Logo

更多推荐