Доступ к папкам с привилегиями sudo через Nautilius-Connect к удаленному серверу

Мне нужно получить доступ к /var/logs папка и множество таких папок на моем удаленном сервере из nautilus, используя "Connect to server" через ssh. Я избегаю root-логинов и отключил его. Я хотел бы использовать sudo вместо этого, как я делаю это с сеансами SSH в терминале. Как я могу использовать наутилус sudo на удаленном сервере получить доступ? (Root-логин отключен на сервере)

Если нет самого nautilus, есть ли альтернативы, которые могут помочь достичь этого?

5 ответов

Очевидно, что запуск 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 et al.

Если нет самого nautilus, есть ли альтернативы, которые могут помочь достичь этого?

Вы пробовали WinSCP? Вы можете скачать переносимый исполняемый файл с их сайта и запустить его с помощью WINE.

  • Установите WINE, используя sudo apt-get install wine
  • Загрузите и распакуйте переносимый исполняемый файл с http://winscp.net/eng/download.php
  • Запустите WinSCP.exe с помощью контекстного меню или запустите wine WinSCP.exe
  • Установите протокол файла на SCP и введите свой хост и имя пользователя
  • Откройте окно "Дополнительно" и установите параметр "Shell" в Environment-> SCP/Shell на sudo su -
  • Войдите в свой хост
  • Теперь вы можете получить доступ к журналам, используя внутренний редактор или блокнот WINE.

Перетаскивание из Наутилуса также возможно.

Это может быть не лучшим способом, но просто подумайте: если на вашем удаленном сервере включен X11, вы можете просто добавить команду

ssh -X usr@svr:~/ gksudo nautilus.

Но @Oli объяснил это, вы не можете использовать SFTP-сервер в OpenSSH

Также это неплохая идея, но если вы разрешите вашему sshuser только чтение файлов, которые вам нужны, ваша проблема решена.

Запустите наутилус из терминала с gksudo nautilus,

Помните, что инструменты с графическим интерфейсом, работающие с правами root, не очень хорошая политика.

Я не уверен, правильно ли я отвечаю, но, возможно, я могу немного помочь.

SSH на ваш сервер с ssh -XC user@address

Тег -XC направит окно к вашему компьютеру, когда что-то будет открыто.

Тогда попробуй sudo nautilus и тогда nautilus вашего сервера откроется на вашем локальном экране.

Другие вопросы по тегам