通过Nautilius连接到具有sudo特权的文件夹-连接到远程服务器


9

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

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


对于所有亲爱的下降投票者..以及那些将此标记为重复的人..这是一个不同的问题。我需要访问远程计算机上的文件/文件夹,而不是客户端计算机上的文件/文件夹。
Rajat Gupta 2014年

您能否更详细地说明自己的错误?
赛斯2014年

有点愚蠢的问题。您是说您无法获得root用户访问权限,因为您...禁用了root用户访问权限。重新启用它。
psusi 2014年

@psusi:是的,我不要求root用户访问权限。.我是远程计算机上的sudoer,希望通过nautilus(或其他替代方法)访问具有sudo privelges的文件夹。.恕我直言,这并不意味着我想要root用户访问权限,还是呢?
拉贾特·古普塔2014年

是的,这sudo意味着以超级用户身份(root)执行此操作。您是说可以sudo手动在服务器上运行,只需要在连接到服务器时让nautilus即可使用它?
psusi 2014年

Answers:


6

显然,将Nautilus作为本地根帐户(使用sudo,gksu等)运行不会给您在服务器上的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

然后从您的计算机运行一个简短的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等来做类似的事情。


谢谢..尝试,但它说:/usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executed同时向服务器认证。
Rajat Gupta 2014年

真烦人 在pyftpdlib的apt-get安装版本中,您似乎需要一个稍微不同的命令:sudo python -m pyftpdlib.ftpserver ...
Oli

pyftpdlib.ftpserver module is deprecated这是使用apt-get时得到的(至少在14.04上)。无论如何,您都需要选择点子方式
平衡

2

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

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

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

也可以从Nautilus拖放。


0

从终端启动Nautilus gksudo nautilus

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


0

这可能不是最好的方法,只是一个想法,如果您的远程服务器启用了X11,则只需编写一个命令即可

ssh -X usr @ svr:〜/ gksudo nautilus。

但是@Oli涵盖了它,您不能在OpenSSH中使用SFTP服务器

同样,这也不是个坏主意,但是如果您还允许sshuser仅读取所需文件的访问权限,那么您的问题就可以解决。


0

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

SSH进入您的服务器 ssh -XC user@address

-XC标签将在打开某些内容时将窗口通过管道传递到您的计算机。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.