Очевидно, что запуск Nautilus в качестве локальной учетной записи root (с помощью sudo, gksu и т. Д.) Не даст вам root-права на сервере.
Проблема в том, что SFTP-сервер в OpenSSH (к которому подключается Nautilus) не поддерживает такие команды, как sudo
- это не оболочка. То, что вы просите просто, невозможно с помощью стандартных механизмов.
Однако вы не без вариантов. Я не уверен, насколько вы знакомы с SSH, но вы можете туннелировать порты обратно через соединение, чтобы вы могли нормально подключиться, запустить простой FTP-сервер от имени root и туннелировать все это обратно на ваш компьютер через 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 перенаправит это на FTP-сервер, работающий от имени пользователя root.
Существуют и другие протоколы (я потратил некоторое время на поиски лучшего), но FTP легче всего запустить и запустить, во многом благодаря pyftpdlib
. Вы могли бы сделать подобные вещи с webdav и др., Я уверен ... Было бы намного больше хакерства вокруг.