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?


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.


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.


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ą.


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.