Accédez aux dossiers avec sudo privilèges via Nautilius-Connect au serveur distant

9

J'ai besoin d'accéder au /var/logsdossier et à beaucoup de ces dossiers sur mon serveur distant depuis nautilus, en utilisant "Se connecter au serveur" via ssh. J'évite les connexions root et je l'ai désactivé. Je voudrais utiliser à la sudoplace, tout comme je le fais avec les sessions SSH dans le terminal. Comment utiliser Nautilus sudosur le serveur distant pour y accéder? (La connexion root est désactivée sur le serveur)

Si ce n'est pas le nautile lui-même, existe-t-il des suppléants qui pourraient aider à accomplir cela?

Rajat Gupta
la source
Pour tous les chers downvoters .. et ceux qui l'ont marqué comme doublon .. c'est une question différente. J'ai besoin d'accéder aux fichiers / dossiers sur une machine distante en tant que sudoer de cette machine et non sur la machine cliente.
Rajat Gupta
Pouvez-vous être plus précis sur vos erreurs?
Seth
Une sorte de question stupide. Vous dites que vous ne pouvez pas obtenir l'accès root parce que vous ... avez désactivé l'accès root. Réactivez-le.
psusi
@psusi: Non, je ne demande pas un accès root .. Je suis un sudoer sur une machine distante, je veux accéder aux dossiers avec des privilèges sudo via nautilus (ou autre chose comme alternative) .. IMHO cela ne veut pas dire que je veux un accès root, ou est-ce?
Rajat Gupta
Oui, sudosignifie faire cela en tant que super-utilisateur (root). Voulez-vous dire que vous pouvez sudomanuellement sur le serveur, il vous suffit d'obtenir que nautilus l'utilise lors de la connexion au serveur?
psusi

Réponses:

6

Évidemment, exécuter Nautilus en tant que compte root local (avec sudo, gksu, etc.) ne vous donnera pas accès root sur le serveur.

Le problème est que le serveur SFTP dans OpenSSH (auquel Nautilus se connecte) ne prend pas en charge les commandes telles que sudo- ce n'est pas un environnement shell. Ce que vous demandez simple n'est pas possible grâce aux mécanismes standard.

Cependant, vous n'êtes pas sans options. Je ne sais pas à quel point vous êtes familier avec SSH, mais vous pouvez tunneliser les ports via une connexion afin que vous puissiez vous connecter normalement, exécuter un simple serveur FTP en tant que root et tunneler tout cela vers votre ordinateur via SSH. Cela semble horrible mais c'est assez simple.

Sur le serveur, exécutez:

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

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

Ensuite, à partir de votre ordinateur, exécutez simplement une courte commande 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 /"

Et puis dans Nautilus (sur votre ordinateur), connectez-vous à ftp://localhost:2121. La magie de SSH transmettra cela au serveur FTP exécuté en tant que root.

Il existe d'autres protocoles (j'ai passé un certain temps à en chercher un meilleur) mais FTP est le plus facile à mettre en place et à utiliser grâce en grande partie à pyftpdlib. Vous pourriez faire des choses similaires avec webdav et al, je suis sûr ... Ce serait juste beaucoup plus de piratage.

Oli
la source
merci .. essayé mais il dit: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedlors de l'authentification sur le serveur.
Rajat Gupta
Comme c'est ennuyeux. Dans la version apt-get installée de pyftpdlib, il semble que vous ayez besoin d'une commande légèrement différente:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedC'est ce que vous obtenez lorsque vous utilisez apt-get (au moins 14.04). Vous devrez de toute façon choisir la façon pip
balping
2

Si ce n'est pas le nautile lui-même, existe-t-il des suppléants qui pourraient aider à accomplir cela?

Avez-vous essayé WinSCP? Vous pouvez télécharger un exécutable portable depuis leur site Web et l'exécuter à l'aide de WINE.

  • Installer WINE en utilisant sudo apt-get install wine
  • Téléchargez et décompressez l'exécutable portable depuis http://winscp.net/eng/download.php
  • Exécutez WinSCP.exe à l'aide du menu contextuel ou exécutez wine WinSCP.exe
  • Définissez le protocole de fichier sur SCP et entrez votre nom d'hôte et d'utilisateur
  • Ouvrez la fenêtre "Avancé" et définissez l'option Shell dans Environnement-> SCP / Shell sur sudo su -
  • Connectez-vous à votre hôte
  • Vous pouvez désormais accéder aux journaux à l'aide de l'éditeur interne ou du Bloc-notes WINE

Drag & Drop depuis Nautilus est également possible.

Andreas Hacker
la source
0

Lancez nautilus depuis un terminal avec gksudo nautilus.

N'oubliez pas que les outils GUI exécutés avec des autorisations root ne sont pas une bonne stratégie.

migas
la source
0

Ce n'est peut-être pas la meilleure façon, mais juste une pensée, si votre serveur distant a activé X11, vous pouvez simplement pré-créer une commande

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

Mais @Oli l'a couvert, vous ne pouvez pas utiliser le serveur SFTP dans OpenSSH

De plus, ce n'est pas une trop mauvaise idée, mais si vous autorisez également votre sshuser à accéder en lecture uniquement aux fichiers dont vous avez besoin, votre problème est résolu.

kmassada
la source
0

Je ne sais pas si je réponds correctement, mais je peux peut-être aider un peu.

ssh dans votre serveur avec ssh -XC user@address

La balise -XC dirigera la fenêtre vers votre ordinateur lorsque quelque chose est ouvert.

Essayez sudo nautilusensuite, puis le nautile de votre serveur s'ouvrira sur votre écran local.

M. Lee
la source