我有一台运行 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 在远程服务器上编辑这些文件。