You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为WSL发行版内新建目录仅赋予默认Windows用户写权限?

WSL中仅为默认Windows用户赋予新建目录写权限的优化方案

根据微软WSL文档说明:从Windows侧在WSL发行版内创建新文件/目录时,默认应用umask值022,即目录权限为755、文件权限为644(组和其他用户无写权限)。你当前使用的sudo chmod -R a+rwx /path/to/folder会给所有用户开放全部权限,存在明显安全风险,以下是更优的针对性解决方案:

方案1:自定义WSL默认umask并结合用户组配置

通过WSL全局配置调整默认权限,同时确保默认Windows用户所属组拥有写权限:

  1. 新建或编辑/etc/wsl.conf文件:
    sudo nano /etc/wsl.conf
    
  2. 添加以下配置:
    [automount]
    options = "metadata,umask=002"
    
    这里umask=002会让新建目录权限变为775、文件为664(组用户拥有写权限)。
  3. 重启WSL使配置生效:
    wsl --shutdown
    
  4. 将目标目录的组所有权设置为默认Windows用户的组:
    sudo chown -R :$USER /path/to/folder
    
    这样默认Windows用户作为组内成员,就能对新建目录拥有写权限,其他用户仅保留读/执行权限。

方案2:使用ACL设置默认继承权限

通过ACL(访问控制列表)精细化控制目录权限,让后续新建的文件/目录自动继承对默认用户的写权限:

  1. 安装ACL工具(部分发行版默认已安装):
    sudo apt install acl  # Debian/Ubuntu系列
    
  2. 为目标目录设置默认ACL,允许默认用户拥有读、写、执行权限:
    sudo setfacl -R -d -m u:$USER:rwx /path/to/folder
    
  3. 同时设置当前目录的ACL(确保已有文件生效):
    sudo setfacl -R -m u:$USER:rwx /path/to/folder
    
    此方法可以精准针对单个用户开放权限,不会影响其他用户的默认权限设置。

方案3:针对Windows挂载目录的专属配置

如果操作的是Windows挂载目录(如/mnt/c),可以直接在wsl.conf中配置挂载选项,结合用户权限:

[automount]
root = /mnt/
options = "metadata,umask=002,fmask=113"
mountFsTab = false
  • umask=002:目录默认权限775
  • fmask=113:文件默认权限664
    配合方案1的组所有权设置,即可确保只有默认Windows用户及其组拥有写权限。

关键提醒

  • 绝对避免使用chmod -R a+rwx,这会暴露目录内所有文件的修改权限,带来数据安全风险。
  • 所有配置修改后,必须重启WSL才能完全生效。
  • ACL配置比umask更灵活,适合需要精细化权限控制的场景。

内容的提问来源于stack exchange,提问作者brittle_spirit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:30:59