Uzyskaj dostęp do folderów z uprawnieniami sudo przez Nautilius-Connect do zdalnego serwera

9

Muszę uzyskać dostęp do /var/logsfolderu i wielu takich folderów na moim zdalnym serwerze z nautilus, używając „Połącz z serwerem” przez ssh. Unikam logowania roota i wyłączyłem go. Chciałbym użyć sudozamiast tego, tak jak robię to z sesjami SSH w terminalu. Jak mogę użyć nautilusa sudona zdalnym serwerze, aby uzyskać dostęp? (Logowanie root jest wyłączone na serwerze)

Jeśli nie sam nautilus, czy są jakieś alternatywy, które mogą pomóc w osiągnięciu tego celu?

Rajat Gupta
źródło
Do wszystkich drogich downvoters .. i tych, którzy oznaczyli to jako duplikat ... to jest inne pytanie. Potrzebuję uzyskać dostęp do plików / folderów na zdalnym komputerze, ponieważ sudoer tego komputera nie jest na komputerze klienckim.
Rajat Gupta
Czy możesz dokładniej określić swoje błędy?
Seth
Głupie pytanie. Mówisz, że nie możesz uzyskać dostępu do konta root, ponieważ ... wyłączyłeś dostęp do konta root. Włącz ponownie.
psusi
@psusi: Nie, nie wymagam dostępu do roota. Będąc sudoerem na zdalnej maszynie chcę uzyskać dostęp do folderów z uprawnieniami sudo przez nautilus (lub cokolwiek innego jako alternatywę) .. IMHO to nie znaczy, że chcę dostępu do roota, czy to robi?
Rajat Gupta,
Tak, sudoznaczy zrób to jako superużytkownik (root). Czy mówisz, że możesz sudoręcznie na serwerze, wystarczy, że nautilus użyje go podczas łączenia się z serwerem?
psusi

Odpowiedzi:

6

Oczywiście uruchamianie Nautilusa jako lokalnego konta roota (z sudo, gksu itp.) Nie da ci dostępu do roota na serwerze.

Problem polega na tym, że serwer SFTP w OpenSSH (z którym łączy się Nautilus) nie obsługuje poleceń takich jak sudo- nie jest to środowisko powłoki. To, o co prosisz o proste, nie jest możliwe dzięki standardowym mechanizmom.

Jednak nie jesteś bez opcji. Nie jestem pewien, jak dobrze znasz SSH, ale możesz tunelować porty z powrotem przez połączenie, abyś mógł normalnie się połączyć, uruchomić prosty serwer FTP jako root i tunelować to wszystko z powrotem do komputera przez SSH. Brzmi okropnie, ale jest dość prosty.

Na serwerze uruchom:

# newer Ubuntu installs:
sudo apt-get install python-pyftpdlib

# older Ubuntu installs
sudo apt-get install python-pip
sudo pip install pyftpdlib

Następnie na komputerze uruchom krótkie polecenie 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 /"

Następnie w Nautilus (na komputerze) połącz się z ftp://localhost:2121. Magia SSH przekieruje to na serwer FTP działający jako root.

Istnieją inne protokoły (szukałem lepszego), ale FTP jest najłatwiejszy do uruchomienia i uruchomienia, w dużej mierze dzięki pyftpdlib. Możesz zrobić podobne rzeczy z webdavem i innymi, jestem pewien ... To byłoby o wiele więcej hackowania.

Oli
źródło
dzięki .. próbowałem, ale mówi: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedpodczas uwierzytelniania na serwerze.
Rajat Gupta
Jak denerwujące. W zainstalowanej wersji pyftpdlib apt-get wydaje się, że potrzebujesz nieco innej komendy:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedOto, co dostajesz, kiedy używasz apt-get (przynajmniej 14.04). W każdym razie musisz wybrać sposób
pipsowania
2

Jeśli nie sam nautilus, czy są jakieś alternatywy, które mogą pomóc w osiągnięciu tego celu?

Czy próbowałeś WinSCP? Możesz pobrać przenośny plik wykonywalny z ich strony internetowej i uruchomić go za pomocą WINE.

  • Zainstaluj WINE za pomocą sudo apt-get install wine
  • Pobierz i rozpakuj przenośny plik wykonywalny ze strony http://winscp.net/eng/download.php
  • Uruchom program WinSCP.exe za pomocą menu kontekstowego lub uruchom wine WinSCP.exe
  • Ustaw protokół pliku na SCP i wprowadź nazwę hosta i użytkownika
  • Otwórz okno „Zaawansowane” i ustaw opcję Powłoki w Środowisku-> SCP / Powłoka na sudo su -
  • Zaloguj się do swojego hosta
  • Możesz teraz uzyskać dostęp do dzienników za pomocą wewnętrznego edytora lub Notatnika WINEs

Możliwe jest również przeciąganie i upuszczanie z Nautilus.

Andreas Hacker
źródło
0

Uruchom nautilus z terminala za pomocą gksudo nautilus.

Pamiętaj, że narzędzia GUI działające z uprawnieniami administratora nie są dobrą polityką.

migas
źródło
0

To może nie być najlepszy sposób, ale tylko myśl, że jeśli twój zdalny serwer ma włączoną X11, możesz po prostu wstępnie wydać polecenie

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

Ale @Oli to zapewniło, nie możesz używać serwera SFTP w OpenSSH

Również nie jest to zbyt zły pomysł, ale jeśli pozwolisz także sshuserowi na dostęp tylko do odczytu potrzebnych plików, problem zostanie rozwiązany.

kmassada
źródło
0

Nie jestem pewien, czy odpowiadam poprawnie, ale może mogę trochę pomóc.

ssh na twój serwer za pomocą ssh -XC user@address

Tag -XC przeskoczy okno do twojego komputera, gdy coś zostanie otwarte.

Następnie spróbuj, sudo nautilusa następnie nautilus twojego serwera otworzy się na twoim lokalnym ekranie.

Mr.Lee
źródło