因此,我尝试从 LAN 中的另一台计算机挂载一个文件夹,并且能够顺利进行 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
当我通过 sshfs 访问远程文件夹时:
$sshfs -o idmap=user <username>@<ipaddress>:/home/user ~/remoteserv
输出变成:
$~/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
我无法正常访问任何文件,因为 sshfs 正在以我妻子的用户名挂载文件!我不知道为什么,我感觉我在某个地方犯了一个大错误。是否有一些配置文件需要我在某处调整?我似乎在手册页上找不到任何东西 :/
我甚至在挂载时尝试了 -o allow_other 选项,但它仍然以我妻子的用户名挂载!发生了什么事?
答案1
值得一试明确设置 UID/GID。例如,可以使用 sshfs 选项来完成此操作:
uid=$(id -u),gid=$(id -g)
或者
uid=$(id -u someuser),gid=$(id -g somegroup)
看https://wiki.archlinux.org/index.php/SSHFS#Secure_user_access更多细节。
答案2
完整命令是
sshfs \
-o uid=`id -u username` \
-o gid=`id -g username` \
-o allow_other \
[email protected]:/target/folder \
/local/folder
它将用户名的 user_id 和 group_id 映射到挂载点(因此挂载点看起来像是该用户自己的)。这allow_other
允许其他人使用此挂载点,如果 root 为其他人挂载文件夹,这很有用。
或者您-o allow_root
也可以使用它来让 root 在那里。