sshfs 正在以另一个用户身份挂载文件系统

Rob*_*ert 17 permissions mount sshfs users

所以我试图从局域网中的另一台计算机挂载一个文件夹,并且我能够毫无问题地进行 ssh。但是,当我访问安装的文件夹时,我无法进行任何更改。

这是我到目前为止所做的:

安装:

$sudo apt-get install sshfs
$sudo modprobe fuse
$sudo adduser <username> fuse
$sudo chown root:fuse /dev/fuse
$sudo chmod +x /dev/fuse
$mkdir ~/remoteserv
Run Code Online (Sandbox Code Playgroud)

当我通过 sshfs 访问远程文件夹时:

$sshfs -o idmap=user <username>@<ipaddress>:/home/user ~/remoteserv
Run Code Online (Sandbox Code Playgroud)

的输出变为:

$~/remoteserv$ ls -l
total 60
drwxr-xr-x 1 <notmyusername> <notmyusername> 4096 2012-04-13 21:54 Desktop
drwxr-xr-x 1 <notmyusername> <notmyusername> 4096 2012-04-10 13:05 Documents
drwxr-xr-x 1 <notmyusername> <notmyusername> 4096 2012-04-17 19:06 Downloads
drwxr-xr-x 1 <notmyusername> <notmyusername> 4096 2012-04-13 21:55 Music
drwxr-xr-x 1 <notmyusername> <notmyusername> 4096 2012-04-03 15:07 Pictures
... more of the same
Run Code Online (Sandbox Code Playgroud)

我无法正确访问任何文件,因为 sshfs 正在以我妻子的用户名挂载文件!我不知道为什么,我觉得我在某个地方犯了一个大错误。是否有一些我需要在某处调整的配置文件?我似乎在联机帮助页上找不到任何内容:/

我什至在安装时尝试了 -o allow_other 选项,但它仍然以我妻子的用户名安装它!到底是怎么回事?

toh*_*ohu 23

显式设置 UID/GID 值得一试。例如,这可以使用 sshfs 选项来完成:

uid=$(id -u),gid=$(id -g)
Run Code Online (Sandbox Code Playgroud)

或者

uid=$(id -u someuser),gid=$(id -g somegroup)
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅https://wiki.archlinux.org/index.php/SSHFS#Secure_user_access


and*_*rej 10

完整的命令是

sshfs \
-o uid=`id -u username` \
-o gid=`id -g username` \
-o allow_other \
target_user@target.server:/target/folder \
/local/folder
Run Code Online (Sandbox Code Playgroud)

它将用户名的 user_id 和 group_id 映射到安装点(因此安装点看起来像该用户自己的)。允许allow_other其他人使用此安装点,如果 root 为其他人安装该文件夹,则这是很好的选择。

或者你-o allow_root也可以使用 root 那里。

  • 这对我有用,实际上只是我一开始不明白的 tohuwawohu 答案的更清晰、更完整的版本。 (3认同)