我在本地挂载点上有一个使用 sshfs 挂载的远程硬盘。此外,我已将 SD 卡安装到同一台计算机上。当我尝试从远程磁盘复制到 SD 卡时,即使具有 sudo 权限,权限也会被拒绝。但是,如果我将远程文件内容复制到〜,然后将它们复制到SD,如果没有任何问题。谁能阐明可能出了什么问题?
命令是:
sshfs remote:path local/mount/point
sudo mount /dev/mmcblk0p2 /other/local/mount/point
sudo cp local/mount/point/file /other/local/mount/point/directory/
SSHFS 是FUSE。如果没有
allow_other
文件系统,则以运行它的用户的权限运行,并且只有该用户可以访问文件系统。在您的情况下,即使是 root 也无法访问文件系统。allow_other
不推荐使用。还有allow_root
,看到man 8 fuse
并且不要错过它提到user_allow_other
配置选项的地方。另一方面
/dev/mmcblk0p2
是由root安装的。目前尚不清楚文件系统是什么。可能性:如果内核支持文件系统类型并且文件系统支持 UNIX 权限和所有权,则适用这些。
如果内核支持文件系统类型但没有 UNIX 权限/所有权支持,则它们很可能在整个挂载时在挂载时固定。在这种情况下,也许您可以提供一个选项来指定挂载应该属于的用户。你没有。它很可能属于 root 并且没有其他用户可以写入它。
如果内核不支持文件系统类型,但用户空间程序支持它,那么它将被挂载在用户空间中(同样是 FUSE)。挂载用户是root,没有
allow_other
,所以只有root可以访问。无论如何,只有您的用户可以访问 SSHFS,但您的用户显然无法写入另一个挂载。由您的用户或根用户单独
cp
运行将打到permission denied
一端或另一端。可能的解决方案:allow_other
用(不推荐)安装 FUSE 。使用两个进程:一个用于您的用户,一个用于 root:
该命令可以复制多个文件(我的意思也是目录):