通过 Nautilius 连接远程服务器,以 sudo 权限访问文件夹

通过 Nautilius 连接远程服务器,以 sudo 权限访问文件夹

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

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

答案1

显然,以本地根帐户身份运行 Nautilus(使用 sudo、gksu 等)不会授予您在服务器上的根访问权限。

问题是 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

然后从您的计算机上运行一个简短的 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 /"

然后在 Nautilus(在您的计算机上)中连接到ftp://localhost:2121。 SSH 的魔力会将其转发到以 root 身份运行的 FTP 服务器。

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

答案2

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

你试过 WinSCP 吗?你可以从他们的网站下载一个可移植的可执行文件,然后使用 WINE 执行它。

  • 使用安装 WINEsudo apt-get install wine
  • 下载并解压可移植可执行文件http://winscp.net/eng/download.php
  • 使用上下文菜单运行 WinSCP.exe 或运行wine WinSCP.exe
  • 将文件协议设置为 SCP 并输入您的主机和用户名
  • 打开“高级”窗口,将环境->SCP/Shell中的Shell选项设置为sudo su -
  • 登录到您的主机
  • 您现在可以使用内部编辑器或 WINEs 记事本访问日志

还可以通过 Nautilus 进行拖放。

答案3

使用 从终端启动 nautilus gksudo nautilus

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

答案4

我不确定我是否正确回答了但也许我可以帮上一点忙。

使用 ssh 进入你的服务器ssh -XC user@address

当打开某些东西时,-XC 标签会将窗口传送到您的计算机。

然后尝试sudo nautilus,然后您的服务器的 nautilus 将在您的本地屏幕上打开。

相关内容