¿Existe una forma más fácil o más 'correcta' de abrir gedit como root?

19

Tengo ubuntu 12.04 ejecutándose en una máquina virtual en virtual box. Su existencia es principalmente como un 'juguete' para jugar con Ubuntu, así que por esta razón quería la GUI (¿es eso lo que es 'Dash' en ubuntu 12.04? De todos modos ...)

Una cosa para la que estoy usando esta máquina actualmente es un servidor LAMP. Uso 'gedit' para editar mis archivos, pero debido a que aún no he configurado correctamente los permisos, simplemente lo abro con sudo en la terminal.

En este momento, para intentar simplificar este proceso, creé un script de shell en el escritorio con un trabajo muy simple: sudo gedit

No puedo evitar pensar que debe haber una forma aún más obvia de abrir gedit como root desde la GUI que esta. ¿Entonces hay?

Editar: Acabo de "mejorar" mi script reemplazando sudo con gksudo. Ahora no tengo que tener una ventana de terminal abierta mientras gedit está abierto. Así que supongo que esto es bastante conveniente por ahora :) Sería bueno, por el bien del conocimiento, saber si esto es algo parecido a cómo los usuarios de ubuntu más experimentados harían este tipo de cosas.

MrVimes
fuente
2
Sí, gksudo(o más comúnmente conocido como gksu) lo que usa la mayoría de las personas. Mucho material de lectura: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Seth
2
Seth, ¿estarías dispuesto a publicar tu respuesta como respuesta? Esto parece resuelto.
Travis G.
"Ahora no tengo que tener una ventana de terminal abierta mientras gedit está abierto". <- Es posible que ya sepa sobre esto, pero si agrega &un comando como se muestra aquí , permite que la ventana de terminal del script de shell se cierre inmediatamente cuando geditse inicia en lugar de esperar a que se cierre. Este truco debería funcionar gksudosin problemas.
IQAndreas

Respuestas:

19

Uso gksudo gedit.

gksudoes el equivalente de sudolos programas gráficos, que no son seguros de usar sudo.

Taymon
fuente
44
El problema es que gksuya no está instalado por defecto en Ubuntu 13.04. Realmente me encantaría ver una respuesta para aquellos en 13.04+. La alternativa sugerida es pkexec, pero simplemente no funciona = /.
Alaa Ali
1
@Alaa Pero todavía está en el repositorio, por lo que sudo apt-get install gksudebería instalarlo rápidamente .
IQAndreas
Si desea una explicación de por qué no se recomienda su uso sudo: ¿Cuál es la diferencia entre "gksudo nautilus" y "sudo nautilus"?
IQAndreas
44
@ IQAndreas, sé que está en los repositorios, pero es un inconveniente, si estoy respondiendo a un nuevo usuario y quiero que edite un archivo como root, para decirle "primero, ejecutar sudo apt-get install gksu". En este momento, es un dilema, al menos para mí. No puedo decirle que "use pkexec", porque no funciona, y es demasiado arriesgado para sudo -ientonces gedit. Además, sé que la diferencia entre gksudoy sudo=), a lo que quizás me haya vinculado, es esta: ¿Por qué gksu ya no está instalado de forma predeterminada en 13.04? .
Alaa Ali
@Alaa Punto válido respecto apt-get. En realidad, mi segundo comentario (el que tiene el enlace) se dirigió a la respuesta que dio, y no a una continuación de la discusión en los comentarios (supuse que el póster querría saber la razón por la cual "no es seguro ejecutarlo usando sudo ").
IQAndreas
7

Me encuentro corriendo geditcomo root con bastante frecuencia, por lo que agregué la opción al menú del botón derecho en Unity (usa el mismo comando que la respuesta seleccionada gksu gedit).

Deberá editar un *.desktoparchivo para agregar la opción de menú, y tiene dos opciones:

  • /usr/share/applications/gedit.desktop (requiere acceso de root para editar) : la opción de menú se agregará para todos los usuarios. Tenga en cuenta que es posible que deba volver a editar este archivo, agregando la opción si se produce una actualización de gedit que sobrescribe sus cambios.
  • ~/.local/share/applications/gedit.desktop (Si no puede encontrarlo allí, haga un duplicado del que se encuentra /usr/share/applications/y guárdelo en esta nueva ubicación) : la opción de menú solo estará disponible para el usuario especificado y se considera una "mejor práctica". Tenga en cuenta que si ya lo tiene acoplado a su barra de Unity, deberá elegir Unlock from Launchersu ícono GEdit existente y luego volver a agregar su versión "personalizada". Estos cambios deberían permanecer incluso si GEdit recibe una actualización.

Edite el archivo de texto gedit.desktop, agregando el siguiente bloque de código (puede usar los dos bloques existentes como plantilla):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Luego, agregue la nueva acción a la lista (debe estar alrededor de la línea 19 del archivo de texto):

Actions=Window;Document;RootWindow;

Ahora, al hacer clic con el botón derecho en la ventana del editor de texto en Unity, aparece esta nueva y práctica opción:

Ubuntu Unity: Abra Gedit como root

IQAndreas
fuente
También tengo la misma configuración para abrir el administrador de archivos como root, que se ejecuta gksu nautilus.
IQAndreas
2

gksudo geditfunciona en 16.04 LTS, pero en 17.10 con Wayland gksudono funciona.

sudodus
fuente
2

Úselo admin://delante del nombre del archivo que muestra el mensaje de contraseña de la GUI estándar para su respectivo WM / shell.

Entonces, por ejemplo, si desea editar sus repositorios, en lugar de escribir sudo gedit /etc/apt/sources.list, escribiría gedit admin:///etc/apt/sources.list. Funciona básicamente para todos los programas GUI, no solo para Gedit.

Brandon Giesing
fuente
Esta respuesta es la forma correcta de hacerlo ahora. La respuesta aceptada fue correcta para versiones anteriores de Ubuntu (creo que anterior a 17.04).
PJ Singh
0

Puedes abrir Nautilus como root, gksu nautilus ahora cualquier archivo de texto que abra desde esa ventana se abrirá en Gedit como root.

usuario154126
fuente
@DavidFoerster no del todo, imo :-)
guntbert
0

gksudo aparentemente no está disponible en las nuevas versiones de Ubuntu y gksu no estaba funcionando para mí, pero esta respuesta fue muy útil en mi caso (Ubuntu 17.04).

Use visudopara agregar la siguiente línea a su archivo de configuración de sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
fuente
0

EDITOR=gedit sudo -e es recomendado.

funicornio
fuente