Accedi alle cartelle con i privilegi di sudo tramite Nautilius-Connect al server remoto


9

Devo accedere alla /var/logscartella e a molte di queste cartelle sul mio server remoto da nautilus, usando "Connetti al server" tramite ssh. Evito i login di root e l'ho disabilitato. Vorrei usare sudoinvece, proprio come faccio con le sessioni SSH nel terminale. Come posso utilizzare nautilus sudosul server remoto per ottenere l'accesso? (L'accesso root è disabilitato sul server)

Se non lo stesso nautilus, ci sono alternative che possono aiutare a raggiungere questo obiettivo?


A tutti i cari downvoter .. e quelli che hanno segnato questo come duplicato .. questa è una domanda diversa. Devo accedere a file / cartelle su una macchina remota come sudoer di quella macchina non sulla macchina client.
Rajat Gupta,

Puoi essere più specifico sui tuoi errori?
Seth

Una specie di domanda stupida. Stai dicendo che non puoi ottenere l'accesso alla radice perché ... hai disabilitato l'accesso alla radice. Riattivalo.
psusi

@psusi: No, non sto richiedendo l'accesso come root .. Sono un sudoer su una macchina remota e voglio accedere alle cartelle con i privilegi di sudo tramite nautilus (o qualsiasi altra alternativa) .. IMHO non significa che voglio un accesso come root, o lo fa?
Rajat Gupta,

Sì, sudosignifica farlo come superutente (root). Stai dicendo che puoi farlo sudomanualmente sul server, devi solo usare nautilus per usarlo quando ti connetti al server?
psusi

Risposte:


6

Ovviamente l'esecuzione di Nautilus come account root locale (con sudo, gksu, ecc.) Non ti darà l'accesso root sul server.

Il problema è che il server SFTP all'interno di OpenSSH (che è quello a cui Nautilus si sta connettendo) non supporta comandi come sudo: non è un ambiente shell. Quello che stai chiedendo semplice non è possibile attraverso i meccanismi standard.

Tuttavia non sei senza opzioni. Non sono sicuro di quanto tu abbia familiarità con SSH, ma puoi eseguire il tunneling delle porte attraverso una connessione in modo da poterti connettere normalmente, eseguire un semplice server FTP come root e eseguire il tunneling di tutto ciò sul tuo computer tramite SSH. Sembra orribile ma è abbastanza semplice.

Sul server, eseguire:

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

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

Quindi dal tuo computer, esegui un breve comando 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 /"

E poi in Nautilus (sul tuo computer), connettiti a ftp://localhost:2121. La magia di SSH lo inoltrerà al server FTP in esecuzione come root.

Esistono altri protocolli (ho passato un po 'a cercarne uno migliore) ma FTP è il più semplice da installare e da utilizzare, grazie in gran parte a pyftpdlib. Potresti fare cose simili con webdav et al, ne sono sicuro ... Sarebbe solo molto più di hacking in giro.


grazie..provato ma dice: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executeddurante l'autenticazione al server.
Rajat Gupta,

Che noioso. Nella versione apt-get installata di pyftpdlib sembra che tu abbia bisogno di un comando leggermente diverso:sudo python -m pyftpdlib.ftpserver ...
Oli

pyftpdlib.ftpserver module is deprecatedQuesto è ciò che ottieni quando usi apt-get (almeno il 14.04). Dovrai comunque scegliere la pip
ballando il

2

Se non lo stesso nautilus, ci sono alternative che possono aiutare a raggiungere questo obiettivo?

Hai provato WinSCP? Puoi scaricare un eseguibile portatile dal loro sito Web ed eseguirlo usando WINE.

  • Installa WINE usando sudo apt-get install wine
  • Scarica e scompatta l'eseguibile portatile da http://winscp.net/eng/download.php
  • Eseguire WinSCP.exe utilizzando il menu di scelta rapida o esegui wine WinSCP.exe
  • Impostare il protocollo file su SCP e inserire il nome host e il nome utente
  • Apri la finestra "Avanzate" e imposta l'opzione Shell in Ambiente-> SCP / Shell su sudo su -
  • Accedi al tuo host
  • Ora puoi accedere ai registri usando l'editor interno o il Blocco note WINE

È anche possibile trascinare e rilasciare da Nautilus.


0

Avviare nautilus da un terminale con gksudo nautilus.

Ricorda che gli strumenti della GUI in esecuzione con permessi di root non sono una buona politica.


0

Questo potrebbe non essere il modo migliore, ma solo un pensiero, se il tuo server remoto ha X11 abilitato, puoi semplicemente precaricare un comando

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

Ma @Oli è stato coperto, non è possibile utilizzare il server SFTP in OpenSSH

Anche questa non è una cattiva idea, ma se consenti anche al tuo sshuser di accedere solo ai file di cui hai bisogno, il tuo problema è risolto.


0

Non sono sicuro di rispondere correttamente, ma forse posso aiutare un po '.

ssh nel tuo server con ssh -XC user@address

Il tag -XC eseguirà il pipe della finestra sul computer quando viene aperto qualcosa.

Quindi prova sudo nautiluse il nautilus del tuo server si aprirà sullo schermo locale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.