WSL Ubuntu中符号链接目录下Django权限设置问题求助
解决WSL中Django创建项目时权限位设置警告的问题
问题原因
你遇到的这些是警告而非错误,核心原因是:WSL挂载的Windows NTFS文件系统(/mnt/c路径下)不支持完整的Linux权限位机制,Django尝试给创建的文件设置Linux权限时失败,所以抛出这些提示。Windows系统里设置的权限对WSL的Linux权限控制不生效,因为两者的权限模型完全不同。
解决方案
方案1:将项目迁移到WSL原生文件系统(推荐)
WSL的原生文件系统(比如/home/你的用户名/下的目录)支持完整的Linux权限体系,不会出现这类警告,同时文件操作性能也远优于挂载的Windows目录。
- 在WSL中创建项目目录:
mkdir -p ~/Projects/websites - 把现有项目复制到该目录:
cp -r /mnt/c/projects/websites/vahana ~/Projects/websites/ - 之后在
~/Projects/websites/vahana目录下正常操作Django项目即可。
方案2:修改WSL挂载配置消除警告
如果坚持要在Windows挂载目录中操作,可以修改WSL的挂载参数,让/mnt/c的默认权限满足Django的需求:
- 编辑WSL的
fstab配置文件:sudo nano /etc/fstab - 添加或修改以下内容(如果已有
/mnt/c的挂载行,替换即可):C:\ /mnt/c drvfs defaults,metadata,umask=0000 0 0 - 保存并退出编辑器(按
Ctrl+O确认保存,回车,再按Ctrl+X退出) - 重新挂载
/mnt/c使配置生效:
这样设置后,挂载目录下的文件会默认拥有sudo umount /mnt/c && sudo mount /mnt/c777权限,Django创建文件时就不会再抛出权限位设置的警告。
内容的提问来源于stack exchange,提问作者Marduk
相关产品推荐
相关产品推荐

