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

Ubuntu/WSL1环境使用Github的brownie包时遭遇PermissionError: [Errno 13]权限拒绝问题求助

解决WSL1/Ubuntu中Brownie重命名目录的权限拒绝问题

我来一步步帮你分析和解决这个权限问题:

先明确问题根源

你的错误 PermissionError: [Errno 13] Permission denied: '/home/wardu/nft-mix-main' -> '/home/wardu/nft',是尝试将nft-mix-main目录重命名为nft时被权限拒绝;而后续chown命令失败,要么是因为目录在Windows挂载的分区(WSL1对NTFS的Linux权限支持有限),要么是目录归root所有但你没使用sudo提权。

分步解决方案

1. 先排查目录所在的文件系统

执行这条命令查看目录的挂载位置:

df -h /home/wardu/nft-mix-main
  • 如果输出的挂载点是/mnt/c(或其他/mnt下的路径):说明目录在Windows的NTFS分区上
  • 如果挂载点是/(根目录):说明目录在WSL自身的Linux文件系统中

情况A:目录在WSL自身的Linux文件系统中

先查看目录的当前归属信息:

ls -ld /home/wardu/nft-mix-main

如果显示结果以root root开头,说明目录是root用户创建的,需要用sudo提权修改:

  1. 修改目录所有权为你的用户(Ubuntu默认用户组和用户名一致,建议用wardu:wardu而非wardu:admin):
    sudo chown -R wardu:wardu /home/wardu/nft-mix-main
    
  2. 确保你对目录有完整的读写执行权限:
    sudo chmod -R u+rwx /home/wardu/nft-mix-main
    
  3. 现在再尝试重命名:
    mv /home/wardu/nft-mix-main /home/wardu/nft
    

情况B:目录在Windows的NTFS分区上

WSL1对NTFS分区的Linux权限支持有限,直接用chown/chmod不会生效,需要修改WSL的挂载配置:

  1. 创建/编辑WSL配置文件:
    sudo nano /etc/wsl.conf
    
  2. 添加以下内容(启用NTFS分区的metadata支持,让Linux权限规则生效):
    [automount]
    options = "metadata,umask=0022,fmask=0133"
    
  3. 按Ctrl+O保存,Ctrl+X退出编辑器
  4. 完全关闭WSL:在Windows命令提示符/PowerShell中执行:
    wsl --shutdown
    
  5. 重新打开WSL终端,再尝试重命名操作即可。

额外排查点:目标目录是否已存在

如果以上操作后仍失败,检查目标目录/home/wardu/nft是否已经存在:

ls -l /home/wardu/

如果存在,先删除或备份它:

# 谨慎删除目标目录(确保无重要内容)
sudo rm -rf /home/wardu/nft
# 或备份原目录
mv /home/wardu/nft /home/wardu/nft-old

之后再执行重命名命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:37:42