显然,将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等来做类似的事情。