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

使用sshfs挂载远程目录后无法写入文件,报错E212求助

解决SSHFS挂载后无法写入文件的问题

首先得帮你理清核心矛盾:你远程的/home/user01/somedir目录权限显示是-rw-r--r--(这里大概率是笔误,目录权限的第一位应该是d,比如drw-r--r--),不管怎样,目录要支持写入操作必须具备执行权限(x)——没有x权限的话,哪怕是目录所有者也没法进入目录创建或修改文件。不过你明确说不想修改远程权限,那咱们换个思路解决:

方案一:通过远程sudo提升挂载权限

如果远程机器允许user01使用sudo,你可以在挂载时指定用root身份运行sftp服务,这样就能绕过远程目录的权限限制。

  1. 先在远程机器上给user01配置免密sudo权限(避免挂载时重复输入密码):
    用visudo编辑sudoers文件(这比直接编辑更安全),添加一行:

    user01 ALL=(ALL) NOPASSWD: /usr/lib/sftp-server
    

    注意/usr/lib/sftp-server是sftp服务的默认路径,不同系统可能有差异,比如部分系统是/usr/lib/openssh/sftp-server,可以在远程用which sftp-server确认具体路径。

  2. 修改你的sshfs挂载命令:

    sshfs user01:/home/user01/somedir /home/user02/mount -o allow_other -o rw -o sftp_server="sudo /usr/lib/sftp-server"
    

    这样挂载后,你在本地对挂载点的操作会以远程root身份执行,自然就能顺利写入文件了。

方案二:检查本地挂载点权限

先确保本地挂载目录/home/user02/mount的权限允许你当前操作的用户写入,比如执行:

chmod 755 /home/user02/mount

如果是多个用户需要访问,也可以调整为chmod 775(根据你的实际需求来)。这一步是基础排查,避免本地权限拖后腿。

方案三:强制UID/GID映射

如果本地user02的UID/GID和远程user01不一致,可能会导致权限映射异常。挂载时可以强制指定映射的UID和GID:

sshfs user01:/home/user01/somedir /home/user02/mount -o allow_other -o rw -o uid=$(id -u user02) -o gid=$(id -g user02)

这个方案不一定能解决远程目录本身的权限问题,但可以排除身份映射导致的写入失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:29:52