Доступ до папок із sudo priviliges через Nautilius-Connect на віддалений сервер


9

Мені потрібно отримати доступ до /var/logsпапки та багатьох таких папок на віддаленому сервері від nautilus, використовуючи "Підключення до сервера" через ssh. Я уникаю кореневих логінів і відключив його. Я хотів би використати sudoнатомість так само, як це роблю з SSH сесіями в терміналі. Як я можу використовувати nautilus sudoна віддаленому сервері, щоб отримати доступ? (Увімкнено кореневий вхід на сервері)

Якщо не наутилус, чи є заступники, які можуть допомогти досягти цього?


До всіх шановних людей, що поступають .. та тих, хто позначив це як дублікат .. це вже інше питання. Мені потрібно отримати доступ до файлів / папок на віддаленій машині як судоер цієї машини, а не на клієнтській машині.
Раджат Гупта

Чи можете ви бути більш конкретними щодо своїх помилок?
Сет

Вигляд нерозумного питання. Ви говорите, що не можете отримати кореневий доступ, оскільки ... вимкнено кореневий доступ. Повторно ввімкніть це.
psusi

@psusi: Ні, я не вимагаю кореневого доступу. Я, будучи судором на віддаленій машині, хочу отримати доступ до папок із sudo privelges через nautilus (або що-небудь інше як альтернативу) .. IMHO, це не означає, що я хочу отримати кореневий доступ, чи це?
Раджат Гупта

Так, sudoозначає зробити це як суперкористувач (root). Ви хочете сказати, що ви можете sudoна сервер вручну, вам просто потрібно отримати nautilus, щоб використовувати його під час підключення до сервера?
psusi

Відповіді:


6

Очевидно, що Nautilus працює як локальний кореневий обліковий запис (з sudo, gksu тощо) не надасть вам root доступу на сервері.

Проблема полягає в тому, що сервер SFTP в OpenSSH (до якого підключається Nautilus) не підтримує такі команди, як sudo- це не середовище оболонки. Те, що ви просите просто, неможливо через стандартні механізми.

Однак ви не без варіантів. Я не впевнений, наскільки ви знайомі з SSH, але ви можете тунелювати порти назад через з'єднання, щоб ви могли нормально підключитися, запустити простий 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 передасть це на 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

Якщо не наутилус, чи є заступники, які можуть допомогти досягти цього?

Ви пробували WinSCP? Ви можете завантажити портативний виконуваний файл з їх веб-сайту та виконати його за допомогою WINE.

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

Також можливе перетягування з Nautilus.


0

Запустіть nautilus з терміналу за допомогою gksudo nautilus.

Пам’ятайте, що інструменти графічного інтерфейсу, що працюють з кореневими правами, не є хорошою політикою.


0

Це може бути не найкращим способом, але лише думка, якщо на віддаленому сервері включений X11, ви можете просто перездати команду

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

Але @Oli покрив це, ви не можете використовувати SFTP-сервер у OpenSSH

Крім того, це не дуже погано, але якщо ви також дозволите своєму sshuser лише читати доступ до потрібних файлів, ваша проблема буде вирішена.


0

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

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

Тег -XC передасть вікно на ваш комп'ютер, коли щось відкриється.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.