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

9

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

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

Раджат Гупта
источник
Всем уважаемым даунвотерам ... и тем, кто отметил это как дубликат ... это другой вопрос. Мне нужно получить доступ к файлам / папкам на удаленном компьютере, так как пользователь этого компьютера не находится на клиентском компьютере.
Раджат Гупта
Можете ли вы быть более точным в своих ошибках?
Сет
Вроде глупый вопрос. Вы говорите, что не можете получить root-доступ, потому что вы ... отключили root-доступ. Повторно включите это.
psusi
@psusi: Нет, я не требую доступа с правами root .. Я, будучи sudoer на удаленной машине, хочу получить доступ к папкам с привилегиями sudo через nautilus (или что-нибудь еще в качестве альтернативы) .. IMHO, это не значит, что я хочу root-доступ, или это?
Раджат Гупта
Да, sudoзначит сделать это как суперпользователь (root). Вы говорите, что вы можете sudoна сервере вручную, вам просто нужно получить nautilus, чтобы использовать его при подключении к серверу?
psusi

Ответы:

6

Очевидно, что запуск 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 и др., Я уверен ... Было бы намного больше хакерства вокруг.

Оли
источник
спасибо .. попробовал, но он говорит: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedво время аутентификации на сервере.
Раджат Гупта
Как раздражает. В установленной apt-get версии pyftpdlib кажется, что вам нужна немного другая команда:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedЭто то, что вы получаете, когда используете apt-get (по крайней мере, 14.04). В любом случае вам нужно будет выбрать путь в
пипсах
2

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

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

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

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

Андреас Хакер
источник
0

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

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

Мигас
источник
0

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

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

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

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

kmassada
источник
0

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

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

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

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

Мистер Ли
источник