linux - 使用 SSHFS 挂载远程文件系统

标签 linux ssh fuse sshfs

<分区>

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

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

问题是我想使用 SSHFS 来远程挂载文件系统。我有这个完美的工作。但是,我不希望我处理的每个文件都反射(reflect) root 权限。我想先取消权限(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。

关于linux - 使用 SSHFS 挂载远程文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1135446/

相关文章:

python - CUSE IOCTL 使用包含指向字符数组的指针的结构进行回复

linux - 如何使用 linux find 命令清理所有 Maven 项目?

macos - 如何使用 SSH 将 IntelliJ 连接到 GitHub

database - MinorFS : Installation

macos - 升级到 macOS 10.12 (Sierra) 后使用 Capistrano 部署代码时出现问题, “Permission denied (publickey).”

ssh - 适用于 Windows 的 openSSH 和 LDAP

go-fuse 打开文件

linux - Linux内核重新配置和重建后如何更新rootfs?

php - 在后台运行的进程挂起 PHP 页面

python - 读取未知目录中的文件