通过 Nautilius-Connect 访问具有 sudo 权限的文件夹到远程服务器

Raj*_*pta 9 server ssh sudo nautilus remote-access

我需要/var/logs通过 ssh 使用“连接到服务器”从 nautilus访问远程服务器上的文件夹和许多此类文件夹。我避免root登录并禁用它。我想sudo改用,就像我在终端中使用 SSH 会话一样。如何sudo在远程服务器上使用 nautilus来获得访问权限?(在服务器上禁用 root 登录)

如果不是鹦鹉螺本身,是否有任何替代品可以帮助实现这一目标?

Oli*_*Oli 6

显然,以您的本地 root 帐户(使用 sudo、gksu 等)运行 Nautilus 不会为您提供服务器上的 root 访问权限。

问题是 OpenSSH 中的 SFTP 服务器(Nautilus 连接到的服务器)不支持类似的命令sudo——它不是 shell 环境。通过标准机制,您所要求的简单是不可能的。

但是,您并非没有选择。我不确定您对 SSH 有多熟悉,但是您可以通过连接将端口隧道回传,以便您可以正常连接,以 root 身份运行一个简单的 FTP 服务器,并通过 SSH 将所有这些都隧道返回到您的计算机。听起来很可怕,但其实很简单。

在服务器上,运行:

# newer Ubuntu installs:
sudo apt-get install python-pyftpdlib

# older Ubuntu installs
sudo apt-get install python-pip
sudo pip install pyftpdlib
Run Code Online (Sandbox Code Playgroud)

然后在您的计算机上运行一个简短的 SSH 命令:

# If you installed with pip
ssh -tL localhost:2121:localhost:2121 -L localhost:21212:localhost:21212 user@server "sudo python -m pyftpdlib -i localhost -w -p 2121 -r 21212-21212 -d /"

# If you installed with apt-get (and pyftpdlib is pre-1.3, true in 13.10)
ssh -tL localhost:2121:localhost:2121 -L localhost:21212:localhost:21212 user@server "sudo python -m pyftpdlib.ftpserver -i localhost -w -p 2121 -r 21212-21212 -d /"
Run Code Online (Sandbox Code Playgroud)

然后在 Nautilus(在您的计算机上)中,连接到ftp://localhost:2121. SSH 的神奇之处在于将其转发到以 root 身份运行的 FTP 服务器。

还有其他协议(我花了一段时间寻找更好的协议)但 FTP 是最容易启动和运行的,这在很大程度上要归功于pyftpdlib. 你可以用 webdav 等人做类似的事情,我敢肯定......它只会更多地黑客攻击。


mig*_*gas 0

从终端启动 nautilus gksudo nautilus

请记住,使用 root 权限运行 GUI 工具并不是一个好的策略。