【问题标题】:Mount a remote file system using SSHFS [closed]使用 SSHFS 挂载远程文件系统 [关闭]
【发布时间】:2010-11-11 05:59:42
【问题描述】:

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

情况是这样的。我可以从网络外部通过 SSH 连接一台机器。我只能使用我的私钥以 root 身份远程登录(是的,你没听错)。我知道以用户身份登录然后提升权限更为典型,但在这种情况下,我必须反其道而行之。

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

有人知道我如何使用 SSHFS 做到这一点吗?

【问题讨论】:

  • 如果我理解正确,那么您可以 sshfs 进入远程系统上的 root 但不能(因为 sysadmin;也是 root)sshfs 进入特权较低的帐户?
  • 我遇到了类似的问题,发现我试图编辑的文件夹实际上是一个符号链接。我现在直接 sshfs 到文件夹(实际的真实路径,不遵循符号链接)。这对我有用。
  • 如果您可以 ssh 作为 root,那么您可以创建第二个用户帐户。如果由于组织政策不允许您这样做,那么您就有组织问题。

标签: linux ssh fuse sshfs


【解决方案1】:

sshfs 联机帮助页建议通过

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

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

【讨论】:

  • 这些选项只影响本地文件,不影响远程机器上的文件。从这个问题来看,这是否是想要的并不完全清楚;我认为可能是他想要更改所有权的远程计算机上的文件。
【解决方案2】:

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

【讨论】:

  • 什么,在sudo 之后,没有人记得su 了? su less-privileged_user -c '/usr/lib/openssh/sftp-server' 通常不需要 root 的任何密码。
  • 非常感谢... sudo 因某些未知原因导致问题... 我最终使用 -o sftp_server="su user -c 'exec /usr/libexec/openssh/sftp-server' "
猜你喜欢
  • 2012-08-12
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多