Доступ к папкам с привилегиями 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 вашего сервера откроется на вашем локальном экране.