如何编辑使用 sshfs 本地挂载的 root 权限文件

如何编辑使用 sshfs 本地挂载的 root 权限文件

我有一台运行 ubuntu 16.04 的服务器(我的本地机器上也有相同的操作系统)。然后我使用命令在本地机器上安装远程文件系统

sshfs -o allow_other user@remote_server.com :/ /home/local_user/remote/ -p 22

现在一切正常,只是我无法编辑 root 特权文件(例如驻留在 /etc 中的文件)。我如何使用本地计算机上的编辑器(例如 gedit)编辑这些文件。

答案1

仅当您在远程服务器上sudo无需密码时,此过程才有效(请参阅下面的配置)。

在远程服务器上

创建一个文件/opt/sudo-ftp-server

#!/bin/bash
exec sudo /usr/libexec/openssh/sftp-server "$@"

chmod +x它。

为了仅允许 sftp-server 命令和特定用户无需密码即可使用 sudo,请创建一个文件/etc/sudoers.d/start-sftp-server-wo-password

theusername ALL = NOPASSWD: /usr/lib/openssh/sftp-server

在本地服务器上

编辑/etc/fuse.conf并添加user_allow_other

安装方式:

sshfs -o allow_other -o sftp_server=/opt/sudo-sftp-server hostname:remote_path local_path

答案2

以 root 身份挂载

sshfs -o allow_other root@remote_server.com :/ /home/local_user/remote/ -p 22

答案3

如果您以 身份连接user@remote_server.com,您将继承 的权限,即您可以编辑具有写访问权限的user文件。user

要解决此问题,您需要以具有这些写权限的用户身份进行连接 - 这可能需要是 root。

解决此问题的最佳(也是通常的)方法是通过 sudo 在远程服务器上编辑这些文件。

相关内容