使用SSHFS挂载远程文件系统

时间:2009-07-16 04:51:35

标签: linux ssh fuse sshfs

好的,设置有点复杂。不要怪我,我不是系统管理员。

这是情况。我可以从网络外部连接一台机器。我只能使用我的私钥以root身份远程(是的,你听到了)。我知道以用户身份登录然后提升权限更为典型,但在这种情况下,我必须做相反的事情。

问题是我想使用SSHFS来远程挂载文件系统。我有这个完美的工作。但是,我不希望我捣乱的每个文件都反映root权限。我想首先撤销(su到用户帐户)。

任何人都知道如何使用SSHFS做到这一点?

2 个答案:

答案 0 :(得分:8)

您可以创建一个脚本来拦截对远程计算机上sftp子系统的调用。将以下脚本放在远程服务器上的某个位置,假设为/ root / bin / sftp_intercept:

#!/bin/sh
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server

然后像这样拨打电话:

sshfs root@remote:dir mountpoint -o sftp_server=/root/bin/sftp_intercept

然后应该给出期望的结果。

你需要一个适当的sudoers条目才能让sudo在没有提示输入密码的情况下工作,并且不要忘记“chmod 755~ / bin / sftp_intercept”。

另外,确保/ usr / lib / openssh / sftp-server确实是sftp-server的路径。如果没有,那么可能是/ usr / lib / sftp-server。

答案 1 :(得分:1)

sshfs联机帮助页建议传递

-o uid=$YOURUID -o gid=$YOURGID

到您的sshfs调用应该将您创建的文件的用户/组设置为该uid / gid。显然,你需要在远程系统上找到它们。