No se puede abrir Gedit como root

14

Cuando ejecuto sudo gedit /path/to/some/random/fileme sale el siguiente error

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

El uso gksudotampoco ayuda, lo que devuelve

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Cualquier ayuda chicos. Necesito tener esta capacidad para abrir archivos en Gedit como root.
Encontré esta pregunta con el mismo error pero sin solución No se puede iniciar gedit con sudo


EDITAR
Encontré esta publicación en los foros de Ubuntu .
Estas son las instrucciones:

  1. echo $ DISPLAY # necesitará este valor 3 líneas a continuación
  2. sudo -i # o "su -" en Slackwares anteriores
  3. xauth merge ~ alien / .Xauthority # use su propio nombre de usuario aquí en lugar de "alien"
  4. export DISPLAY =: 0.0 # usa el valor de DISPLAY que has visto 3 líneas antes

Al llegar al comando # 3, recibí este error
xauth: file /root/.Xauthority does not exist

Quizás esta nueva información pueda arrojar más luz.

Parto
fuente
¿Has probado en su gksudo gedit /path/to/the/file/namelugar?
AzkerM
@AzkerMohamed Yah, como dice mi pregunta, usando gksudoo gksudevuelve el mismo error.
Parto
1
Parece el mismo caso que este askubuntu.com/questions/175611/…
user.dz
He creado un script para este propósito: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Alejandro Blasco

Respuestas:

13

Finalmente he encontrado una respuesta. De esta pregunta No se puede conectar a X Server cuando se ejecuta una aplicación con sudo y, especialmente, esta pregunta Error al intentar ejecutar una aplicación con sudo o gksudo .

Agregué la línea Defaults env_keep+="DISPLAY"al final del visudoarchivo en /etc/sudoers.

Yay, mi sudo geditha vuelto!

EDITAR

Obtuve el mismo error nuevamente por algún tiempo.

Investigué un poco más, especialmente esta respuesta /ubuntu//a/137584/163331 y me di cuenta de que tenía que agregar más opciones al visudoarchivo. En lugar de Defaults env_keep+="DISPLAY", usé esta línea:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"
Parto
fuente
¿Por qué agregar HOME a env_keep?
muru
9

La ejecución de cualquier aplicación de interfaz gráfica como root puede provocar la corrupción del archivo, especialmente si la aplicación de interfaz gráfica es un editor de texto. Además de esto gksuy gksudono funciona para iniciar aplicaciones gráficas como root en Wayland en Ubuntu 17.10: ¿Por qué gksu / gksudo no funciona con Wayland? y el paquete gksu se ha eliminado de los repositorios predeterminados de Ubuntu en Ubuntu 18.04 y versiones posteriores.

Nautilus Admin ( nautilus-admin ) es una extensión simple de Python para el administrador de archivos Nautilus que agrega algunas acciones administrativas al menú contextual:

  • Abrir como administrador: abre una carpeta en una nueva ventana de Nautilus que se ejecuta con privilegios de administrador (root).
  • Editar como administrador: abre un archivo en una ventana de Gedit que se ejecuta con privilegios de administrador (root).

Para instalar Nautilus Admin en todas las versiones compatibles de Ubuntu, abra la terminal y escriba:

sudo apt install nautilus-admin  

Si bien existen comandos para ejecutar aplicaciones gráficas como root, se recomienda encarecidamente utilizar el editor de nano texto, que normalmente se ejecuta desde el terminal, para editar archivos como root. El editor de nano texto está incluido en la instalación predeterminada de Ubuntu.

Nano es muy fácil de usar. Las instrucciones para usar nano editor siempre se encuentran en la parte inferior de cada página. Los únicos dos atajos de teclado nano que necesita saber son para WriteOut y Exit. Presione la combinación de teclado Ctrl+ Oy luego presione Enterpara guardar el archivo que se está editando. Presione la combinación de teclado Ctrl+ Xpara salir de nano.

Si tiene el hábito de editar archivos como root de la manera correcta, reducirá la posibilidad de cometer errores que puede llevar mucho tiempo corregir.

karel
fuente
1
+1 para el nanoeditor. Uno de los mejores editores que cualquiera podría encontrar más fácil de operar.
AzkerM
@Karel Finalmente utilicé nano para hacer los cambios, pero necesito recuperar mi Gedit raíz.
Parto
1
Este es un buen consejo, pero esta no es la respuesta. A los chicos de Linux les encanta el terminal, pero una GUI es increíble para tareas complejas y tiene una mejor experiencia de usuario.
azerafati
Puede personalizar el editor predeterminado del sudoeditcomando (que por defecto es nano): ¿Cómo puedo cambiar el editor predeterminado del comando sudoedit para que sea vim? pero iniciar editores de GUI como root podría causar problemas en Ubuntu 17.10 y posteriores con wayland.
karel
5

En Ubuntu 17.10, al menos, puedes hacer esto:

gedit admin:///path/to/some/random/file

Se le pedirá que ingrese su contraseña, y luego el archivo se abrirá para editarlo como root.

Gunnar Hjalmarsson
fuente
También funciona bajo 18.04 ...
Élder Geek
4

Para gedit, intente esto:

sudo -H env DISPLAY=:0 gedit
kiri
fuente
1
Obteniendo el mismo error.
Parto
1

Estoy tratando de resumir toda la información en las otras respuestas en esta página:

Wayland:

La única opción parece usada nanoovi/vim

Xorg:

prueba esto

sudo -H env DISPLAY=:0 gedit

si funciona, probablemente significa que necesita agregar alguna opción a los archivos de configuración de sudo

sudo visudo

Intenta agregar esta línea al final

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
Postadelmaga
fuente
¿Por qué agregar HOME a env_keep?
muru
geditfunciona bien en Wayland. Por favor, vea la respuesta que acabo de publicar.
Gunnar Hjalmarsson el
0

Acabo de tener un problema similar. Estoy usando Debian Jessie y para comenzar gedit como root, esta línea finalmente funcionaba:

sudo -H gedit
Paul Free
fuente