2009-07-16 42 views
3

好的,设置有些复杂。不要怪我,我不是系统管理员。使用SSHFS挂载远程文件系统

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

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

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

+0

如果我理解正确,那么你可以在远程系统上sshfs进入root,但不能(因为sysadmin;也是root)sshfs进入一个权限较低的帐户? – Inshallah 2009-07-16 07:15:50

+1

serverfault.com? – liori 2009-07-16 11:36:54

+0

我有一个类似的问题,发现我试图编辑的文件夹实际上是一个符号链接。我现在sshfs直接到文件夹(实际的实际路径,不遵循一个符号链接)。这对我有效。 – Richard 2012-12-20 17:44:14

回答

8

您可以创建一个脚本来拦截对远程计算机上sftp子系统的调用。把下面的脚本某处的远程服务器上,让我们说/根/斌/ sftp_intercept:

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

,然后作出像这样的电话:

sshfs [email protected]:dir mountpoint -o sftp_server=/root/bin/sftp_intercept 

那么这应该给了预期的效果。

您需要一个合适的sudoers条目才能使sudo在没有提示密码的情况下工作,并且不要忘记“chmod 755〜/ bin/sftp_intercept”。

另外,请确保/ usr/lib/openssh/sftp-server确实是sftp服务器的路径。如果不是,那么可能是/ usr/lib/sftp-server。

1

的sshfs的联机帮助表明,经过

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

您sshfs的调用应设置用户/组创建到UID/GID的文件。显然,您需要在远程系统上找到这些信息。