Acceda a carpetas con privilegios de sudo a través de Nautilius-Connect al servidor remoto

9

Necesito acceder a la /var/logscarpeta y muchas de esas carpetas en mi servidor remoto desde nautilus, usando "Conectar al servidor" a través de ssh. Evito los inicios de sesión de root y lo he desactivado. Me gustaría usar sudoen su lugar, al igual que lo hago con sesiones SSH en la terminal. ¿Cómo puedo usar nautilus sudoen el servidor remoto para obtener acceso? (El inicio de sesión raíz está deshabilitado en el servidor)

Si no es el propio nautilus, ¿hay alternativas que puedan ayudar a lograr esto?

Rajat Gupta
fuente
Para todos los queridos downvoters ... y aquellos que marcaron esto como duplicado ... esta es una pregunta diferente. Necesito acceder a archivos / carpetas en una máquina remota como sudoer de esa máquina no en la máquina cliente.
Rajat Gupta
¿Puedes ser más específico sobre tus errores?
Seth
Una especie de pregunta tonta. Está diciendo que no puede obtener acceso de root porque ... deshabilitó el acceso de root. Vuelva a habilitarlo.
psusi
@psusi: No, no estoy exigiendo acceso a la raíz. Siendo un sudoer en una máquina remota, quiero acceder a carpetas con privilegios de sudo a través de nautilus (o cualquier otra cosa como alternativa). En mi humilde opinión, eso no significa que quiera acceso a la raíz, o lo hace?
Rajat Gupta
Sí, sudosignifica hacer esto como el superusuario (root). ¿Está diciendo que puede sudohacerlo manualmente en el servidor, solo necesita obtener nautilus para usarlo cuando se conecta al servidor?
psusi

Respuestas:

6

Obviamente, ejecutar Nautilus como su cuenta raíz local (con sudo, gksu, etc.) no le dará acceso a la raíz en el servidor.

El problema es que el servidor SFTP dentro de OpenSSH (que es a lo que Nautilus se está conectando) no admite comandos como sudo: no es un entorno de shell. Lo que está pidiendo simple no es posible a través de los mecanismos estándar.

Sin embargo, no estás sin opciones. No estoy seguro de qué tan familiarizado está con SSH, pero puede volver a hacer un túnel en los puertos a través de una conexión para poder conectarse normalmente, ejecutar un servidor FTP simple como root y hacer un túnel todo eso de regreso a su computadora a través de SSH. Suena horrible pero es bastante simple.

En el servidor, ejecute:

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

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

Luego, desde su computadora, simplemente ejecute 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 /"

Y luego, en Nautilus (en su computadora), conéctese a ftp://localhost:2121. La magia de SSH lo reenviará al servidor FTP que se ejecuta como root.

Hay otros protocolos (he pasado un tiempo buscando uno mejor), pero FTP es el más fácil de poner en funcionamiento gracias en gran parte pyftpdlib. Podría hacer cosas similares con webdav et al, estoy seguro ... Sería mucho más pirateo.

Oli
fuente
gracias ... probé pero dice: /usr/bin/python: No module named pyftpdlib.__main__; 'pyftpdlib' is a package and cannot be directly executedmientras se autentica en el servidor.
Rajat Gupta
Que molesto. En la versión de pyftpdlib de apt-get instalado, parece que necesita un comando ligeramente diferente:sudo python -m pyftpdlib.ftpserver ...
Oli
pyftpdlib.ftpserver module is deprecatedEsto es lo que obtienes cuando usas apt-get (al menos en 14.04). Deberá elegir la forma de pip de todos modos
balping el
2

Si no es el propio nautilus, ¿hay alternativas que puedan ayudar a lograr esto?

¿Has probado WinSCP? Puede descargar un ejecutable portátil desde su sitio web y ejecutarlo con WINE.

  • Instale WINE usando sudo apt-get install wine
  • Descargue y desempaquete el ejecutable portátil de http://winscp.net/eng/download.php
  • Ejecute WinSCP.exe utilizando el menú contextual o ejecute wine WinSCP.exe
  • Configure el protocolo de archivo en SCP e ingrese su nombre de host y usuario
  • Abra la ventana "Avanzado" y configure la opción Shell en Entorno-> SCP / Shell en sudo su -
  • Inicie sesión en su host
  • Ahora puede acceder a los registros utilizando el editor interno o el Bloc de notas de WINE

Arrastrar y soltar desde Nautilus también es posible.

Andreas Hacker
fuente
0

Inicie nautilus desde una terminal con gksudo nautilus.

Recuerde que las herramientas GUI que se ejecutan con permisos de root no son una buena política.

Migas
fuente
0

Esta podría no ser la mejor manera, pero solo una idea, si su servidor remoto tiene X11 habilitado, simplemente puede prelaod un comando

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

Pero @Oli lo tiene cubierto, no puede usar el servidor SFTP dentro de OpenSSH

Tampoco es una mala idea, pero si también permite que su sshuser solo lea el acceso a los archivos que necesita, su problema está resuelto.

kmassada
fuente
0

No estoy seguro si estoy respondiendo correctamente, pero tal vez pueda ayudar un poco.

ssh en su servidor con ssh -XC user@address

La etiqueta -XC canalizará la ventana a su computadora cuando se abra algo.

Luego intente sudo nautilusy luego se abrirá el nautilus de su servidor en su pantalla local.

SR. Lee
fuente