使用SSHFS挂载远程文件系统

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

这是情况。 有一台机器可以从networking外部进入SSH。 我只能使用我的私钥以root身份(是的,您听到的是正确的)。 我知道以用户身份login并提升权限更为典型,但在这种情况下,我必须做相反的事情。

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

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

您可以创建一个脚本来拦截对远程机器上的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。

sshfs手册页建议通过

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

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