Greifen Sie über nautilius-Connect auf Ordner mit sudo-Berechtigungen zum Remote-Server zu

9

Ich muss über nsh auf den /var/logsOrdner und viele solcher Ordner auf meinem Remote-Server von nautilus aus zugreifen und "Mit Server verbinden" verwenden. Ich vermeide Root-Logins und habe es deaktiviert. Ich möchte sudostattdessen verwenden, genau wie ich es mit SSH-Sitzungen im Terminal mache. Wie kann ich Nautilus sudoauf dem Remote-Server verwenden, um Zugriff zu erhalten? (Root-Login ist auf dem Server deaktiviert)

Wenn nicht Nautilus selbst, gibt es Alternativen, die dazu beitragen können, dies zu erreichen?

Rajat Gupta
quelle
Für alle lieben Downvoter ... und diejenigen, die dies als Duplikat markiert haben ... ist dies eine andere Frage. Ich muss auf Dateien / Ordner auf einem Remote-Computer als Sudoer dieses Computers zugreifen, nicht auf dem Client-Computer.
Rajat Gupta
Können Sie Ihre Fehler genauer beschreiben?
Seth
Eine Art dumme Frage. Sie sagen, dass Sie keinen Root-Zugriff erhalten können, weil Sie ... den Root-Zugriff deaktiviert haben. Aktivieren Sie es erneut.
Psusi
@psusi: Nein, ich fordere keinen Root-Zugriff. Als Sudoer auf einem Remote-Computer möchte ich über Nautilus (oder irgendetwas anderes als Alternative) auf Ordner mit Sudo-Berechtigungen zugreifen. IMHO bedeutet das nicht, dass ich Root-Zugriff möchte. oder doch?
Rajat Gupta
Ja, sudobedeutet dies als Superuser (root). Wollen Sie damit sagen, dass Sie sudomanuell auf dem Server arbeiten können? Sie müssen nur Nautilus verwenden, um es zu verwenden, wenn Sie eine Verbindung zum Server herstellen.
Psusi

Antworten:

6

Wenn Sie Nautilus als lokales Root-Konto (mit sudo, gksu usw.) ausführen, erhalten Sie offensichtlich keinen Root-Zugriff auf den Server.

Das Problem ist, dass der SFTP-Server in OpenSSH (mit dem Nautilus eine Verbindung herstellt) keine Befehle wie unterstützt sudo- es ist keine Shell-Umgebung. Was Sie einfach verlangen, ist mit den Standardmechanismen nicht möglich.

Sie sind jedoch nicht ohne Optionen. Ich bin mir nicht sicher, wie vertraut Sie mit SSH sind, aber Sie können Ports über eine Verbindung zurücktunneln, damit Sie eine normale Verbindung herstellen, einen einfachen FTP-Server als Root ausführen und all das über SSH zurück auf Ihren Computer tunneln können. Klingt schrecklich, ist aber ziemlich einfach.

Führen Sie auf dem Server Folgendes aus:

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

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

Führen Sie dann von Ihrem Computer aus einen kurzen SSH-Befehl aus:

# 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 /"

Stellen Sie dann in Nautilus (auf Ihrem Computer) eine Verbindung zu her ftp://localhost:2121. Die Magie von SSH leitet dies an den FTP-Server weiter, der als Root ausgeführt wird.

Es gibt andere Protokolle (ich habe eine Weile nach einem besseren gesucht), aber FTP ist dank eines großen Teils am einfachsten in Betrieb zu nehmen pyftpdlib. Sie könnten ähnliche Dinge mit webdav et al tun, da bin ich mir sicher ... Es wäre einfach viel mehr Hacking.

Oli
quelle
danke..versucht aber es heißt: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedwährend der Authentifizierung beim Server.
Rajat Gupta
Wie nervig. In der apt-get installierten Version von pyftpdlib scheint es, dass Sie einen etwas anderen Befehl benötigen:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedDies erhalten Sie, wenn Sie apt-get verwenden (mindestens am 14.04.). Sie müssen sowieso den Pip-Weg wählen
Balping
2

Wenn nicht Nautilus selbst, gibt es Alternativen, die dazu beitragen können, dies zu erreichen?

Haben Sie WinSCP ausprobiert? Sie können eine tragbare ausführbare Datei von ihrer Website herunterladen und mit WINE ausführen.

  • Installieren Sie WINE mit sudo apt-get install wine
  • Laden Sie die tragbare ausführbare Datei von http://winscp.net/eng/download.php herunter und entpacken Sie sie
  • Führen Sie WinSCP.exe über das Kontextmenü aus oder führen Sie es aus wine WinSCP.exe
  • Stellen Sie das Dateiprotokoll auf SCP ein und geben Sie Ihren Host- und Benutzernamen ein
  • Öffnen Sie das Fenster "Erweitert" und setzen Sie die Option Shell unter Umgebung-> SCP / Shell auf sudo su -
  • Melden Sie sich bei Ihrem Host an
  • Sie können jetzt mit dem internen Editor oder dem WINEs Notepad auf die Protokolle zugreifen

Drag & Drop von Nautilus ist ebenfalls möglich.

Andreas Hacker
quelle
0

Starten Sie nautilus von einem Terminal mit gksudo nautilus.

Denken Sie daran, dass GUI-Tools, die mit Root-Berechtigungen ausgeführt werden, keine gute Richtlinie sind.

Migas
quelle
0

Dies ist möglicherweise nicht der beste Weg, aber nur ein Gedanke: Wenn auf Ihrem Remote-Server X11 aktiviert ist, können Sie einfach einen Befehl vorab ausführen

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

Aber @Oli hat es verstanden, Sie können den SFTP-Server in OpenSSH nicht verwenden

Auch das ist keine schlechte Idee, aber wenn Sie Ihrem sshuser auch nur Lesezugriff auf die benötigten Dateien erlauben, ist Ihr Problem gelöst.

kmassada
quelle
0

Ich bin mir nicht sicher, ob ich richtig antworte, aber vielleicht kann ich ein bisschen helfen.

ssh in deinen Server mit ssh -XC user@address

Das -XC-Tag leitet das Fenster an Ihren Computer weiter, wenn etwas geöffnet wird.

Versuchen Sie es sudo nautilusdann und der Nautilus Ihres Servers wird auf Ihrem lokalen Bildschirm geöffnet.

Herr Lee
quelle