我需要/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 执行它。
- 使用安装 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 进行拖放。
答案3
使用 从终端启动 nautilus gksudo nautilus
。
请记住,以 root 权限运行的 GUI 工具不是一个好策略。
答案4
我不确定我是否正确回答了但也许我可以帮上一点忙。
使用 ssh 进入你的服务器ssh -XC user@address
当打开某些东西时,-XC 标签会将窗口传送到您的计算机。
然后尝试sudo nautilus
,然后您的服务器的 nautilus 将在您的本地屏幕上打开。