Acesse pastas com privilégios de sudo via Nautilius-Connect ao servidor remoto

9

Preciso acessar a /var/logspasta e muitas dessas pastas no meu servidor remoto a partir do nautilus, usando "Conectar ao servidor" via ssh. Evito logins root e desabilitei. Gostaria de usar sudo, assim como faço com sessões SSH no terminal. Como posso usar o nautilus sudono servidor remoto para obter acesso? (O login raiz está desativado no servidor)

Se não o próprio nautilus, existem alternativas que podem ajudar a conseguir isso?

Rajat Gupta
fonte
Para todos os queridos downvoters .. & aqueles que marcaram isso como duplicado .. esta é uma pergunta diferente. Preciso acessar arquivos / pastas em uma máquina remota como sudoer dessa máquina e não na máquina cliente.
Rajat Gupta
Você pode ser mais específico sobre seus erros?
Seth
Uma espécie de pergunta boba. Você está dizendo que não pode obter acesso root porque ... desativou o acesso root. Reative-o.
11134 psusi
@psusi: Não, não estou exigindo acesso root. Sendo um sudoer em uma máquina remota, quero acessar pastas com privilégios de sudo via nautilus (ou qualquer outra coisa como alternativa) .. IMHO que não significa que eu quero acesso root, ou faz?
Rajat Gupta
Sim, sudosignifica fazer isso como superusuário (root). Você está dizendo que você pode sudomanualmente no servidor, basta obter o nautilus para usá-lo ao se conectar ao servidor?
Psusi 11/03/14

Respostas:

6

Obviamente, executar o Nautilus como sua conta raiz local (com sudo, gksu, etc) não lhe dará acesso root no servidor.

O problema é que o servidor SFTP no OpenSSH (ao qual o Nautilus está se conectando) não suporta comandos como sudo- não é um ambiente de shell. O que você está pedindo de forma simples não é possível através dos mecanismos padrão.

No entanto, você não está sem opções. Não tenho certeza de quão familiarizado com o SSH você está, mas você pode fazer o túnel de portas de volta através de uma conexão para que você possa se conectar normalmente, executar um servidor FTP simples como root e encapsular tudo isso de volta ao seu computador através do SSH. Parece horrível, mas é bastante simples.

No servidor, execute:

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

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

Em seguida, no seu computador, basta executar um pequeno 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, em seguida, no Nautilus (no seu computador), conecte-se a ftp://localhost:2121. A mágica do SSH encaminhará isso para o servidor FTP em execução como root.

Existem outros protocolos (passei algum tempo procurando por um melhor), mas o FTP é o mais fácil de instalar e executar, em grande parte graças ao pyftpdlib. Você poderia fazer coisas semelhantes com webdav et al, tenho certeza ... Seria muito mais invasão.

Oli
fonte
thanks..tried mas diz: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedao se autenticar no servidor.
Rajat Gupta 14/03
Que irritante. Na versão apt-get instalada de pyftpdlib parece que você precisa de um comando ligeiramente diferente:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedÉ isso que você obtém quando usa o apt-get (pelo menos em 14.04). Você precisará escolher o caminho do pip de qualquer maneira
balping 04/04
2

Se não o próprio nautilus, existem alternativas que podem ajudar a conseguir isso?

Você já experimentou o WinSCP? Você pode baixar um executável portátil do site deles e executá-lo usando o WINE.

  • Instale o WINE usando sudo apt-get install wine
  • Baixe e descompacte o executável portátil em http://winscp.net/eng/download.php
  • Execute o WinSCP.exe usando o menu de contexto ou execute wine WinSCP.exe
  • Defina o protocolo de arquivo como SCP e insira seu nome de host e usuário
  • Abra a janela "Avançado" e defina a opção Shell em Ambiente-> SCP / Shell para sudo su -
  • Entre no seu host
  • Agora você pode acessar os logs usando o editor interno ou o Bloco de Notas do WINEs

Arrastar e soltar do Nautilus também é possível.

Andreas Hacker
fonte
0

Inicie o nautilus a partir de um terminal com gksudo nautilus.

Lembre-se de que as ferramentas da GUI executadas com permissões de root não são uma boa política.

migas
fonte
0

Esta pode não ser a melhor maneira, mas apenas um pensamento: se o servidor remoto tiver o X11 ativado, você poderá simplesmente executar um comando

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

Mas a @Oli cobriu tudo, você não pode usar o servidor SFTP no OpenSSH

Também não é uma idéia muito ruim, mas se você também permitir que o seu sshuser apenas acesse os arquivos de leitura, o problema será resolvido.

kmassada
fonte
0

Não tenho certeza se estou respondendo corretamente, mas talvez eu possa ajudar um pouco.

ssh no seu servidor com ssh -XC user@address

A tag -XC direcionará a janela para o seu computador quando algo for aberto.

Em seguida, tente sudo nautiluse o nautilus do seu servidor será aberto na tela local.

Senhor Lee
fonte