介绍
在windows下进行开发的同学,对wsl应该不陌生,通过wsl我们可以轻松在windows系统下使用一个完整的linux操作系统,给我们的开发带来很好的体验。
问题描述
今天在部署完wsl后,打算将开发文件均放到共享目录下(wsl默认会将windows的磁盘挂载到/mnt
目录下),然而通过wsl系统进入挂载的共享目录时,发现所有目录及文件权限都是777
,一开始我不以为然的直接就是一波666的操作,拉代码,新增文件,提交代码,然后合并代码,然后就报错了。。。(正是因为权限问题导致的)
解决方案
解决权限问题
百度了一番,找到了一个有效的方法,记录如下:
- 在
.bashrc
或者.zshrc
中加入如下代码
if [[ "$(umask)"=='000' ]]; then
umask 022
fi
- 在
/etc/wsl.conf
配置文件中写入如下配置,文件不存在则新增一个,保存后重启电脑
[automount]
enabled = true
root = /mnt/
options = "metadata,dmask=022,fmask=133"
mountFsTab = false
至此,在启动wsl进入系统,文件权限就正常了
你以为这就结束了?小伙子还是太年轻啊
结果之前新增提交代码文件目录出问题了,在wsl下无法删除,也无法移动,直接在windows下操作也提示无权限,这是什么鬼?
捯饬一阵后,索性重启电脑,试着在不启动wsl的情况下,通过windows直接删除文件及文件夹,嗯,成功了,再打开wsl,checkout代码,一切恢复正常
猜测是wsl启动后,给文件及文件夹赋予了个权限,导致文件锁定了。坑真是不少~
不着急,慢慢踩吧。