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

非root用户通过Samba挂载无法创建/编辑文件问题求助

问题描述

搭建code-server(浏览器版VSCode)实例时,从挂载的Samba共享目录读写文件遇到权限问题:

  • VSCode提示无权限写入,错误信息:

Unable to write file
'vscode-remote://localhost:8080/home/user/repository/test'
(NoPermissions (FileSystemError): Error: EACCES: permission denied,
open '/home/gmetitieri/user/test')

  • 使用sudo touch file.txt可成功创建文件,已用chmod给目录加完全权限但无效
  • Windows系统用相同凭证操作该Samba共享无问题
  • 已尝试常规VSCode权限方案,但非root用户仍无法写入

挂载命令:

sudo mount -t cifs -o rw,vers=3.0,credentials=/root/.examplecredentials //192.168.18.112/sharedDir /media/share
解决方法

核心问题是CIFS挂载时默认以root权限持有目录,普通用户无读写权限,且chmod对CIFS挂载目录无效(CIFS权限由远程Samba服务器控制,本地权限修改不生效)。按以下步骤调整:

  • 修改挂载参数,指定普通用户/组权限
    先通过id 你的用户名命令获取用户ID(uid)和组ID(gid),比如执行id gmetitieri会输出类似uid=1000(gmetitieri) gid=1000(gmetitieri)的结果。

    重新挂载时添加uid和gid参数,将挂载目录的所有者设为你的非root用户:

    sudo mount -t cifs -o rw,vers=3.0,credentials=/root/.examplecredentials,uid=1000,gid=1000 //192.168.18.112/sharedDir /media/share
    
  • 多用户访问场景补充参数
    若需要多个用户读写该共享目录,可额外添加file_mode和dir_mode参数设置权限:

    sudo mount -t cifs -o rw,vers=3.0,credentials=/root/.examplecredentials,uid=1000,gid=1000,file_mode=0664,dir_mode=0775 //192.168.18.112/sharedDir /media/share
    

    此设置下目录权限为775(所有者和组可读写执行,其他用户只读),文件权限为664,适配多人协作场景。

  • 设置开机自动挂载(可选)
    编辑/etc/fstab文件,添加以下一行(替换对应的uid、gid和路径):

    //192.168.18.112/sharedDir /media/share cifs rw,vers=3.0,credentials=/root/.examplecredentials,uid=1000,gid=1000 0 0
    

    确保/media/share目录存在,执行sudo mount -a测试挂载是否生效。

  • 确认code-server运行用户
    用ps aux | grep code-server查看code-server的运行用户,确保是以你的非root用户启动的。如果是root用户启动,切换到普通用户重新启动code-server即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:27:24