¿Cómo iniciar la aplicación como root desde Unity Launcher?

81

Principalmente estoy buscando una manera de anclar una aplicación a la barra de inicio de Unity y ejecutarla como root.

Actualmente, incluso si inicio la aplicación con sudo y la pincho después de que comience, la próxima vez comenzará como usuario actual.

Triste, pero no hay una opción de menú contextual "ejecutar como ...".

Actualización : Cambié a gnome3 y ahora estoy feliz, solo me falta la búsqueda.

sorin
fuente
Si conoce el riesgo de ejecutar aplicaciones gráficas como root y aún desea continuar, siga el paso 1 aquí: askubuntu.com/a/118483/41562
edm
No entendiste la pregunta, sé cómo usarla sudoy ya la sintonicé. La pregunta es sobre cómo puedo crear un acceso directo al iniciador de Ubuntu Unity para la aplicación que quiero ejecutar como root.
sorin
Para el lanzador de la unidad, no lo sé. Pero si tiene un archivo que reside en su escritorio y desea ejecutarlo como gksu, puede instalar la extensión "nautilus execute".
Aprendiz curioso

Respuestas:

89

Si quieres que la aplicación siempre se ejecute como root

  1. Ancle la aplicación al iniciador como de costumbre.

  2. Ubique el archivo .desktop de aplicaciones que estará en:

    • /usr/share/applications/APPNAME.desktop
    • ~/.local/share/applications/APPNAME.desktop
    • o en otro lugar, use locate .desktop|grep APPAME
  3. Abrir con gedit:

    gksudo gedit /usr/share/applications/APPNAME.desktop
    
  4. Luego cambia la línea

    Exec=APP_COMMAND
    

    a

    Exec=gksudo -k -u root APP_COMMAND
    
  5. Salvar

Este comando también mantendrá su entorno, lo cual es muy útil si necesita conectarse a otros servidores y usar su clave privada.

Para agregar una opción de lista rápida a 'Ejecutar como root'

Siga los pasos 1, 2 y 3 anteriores.

Si el iniciador actualmente no tiene ninguna otra opción de lista rápida, solo agregue esto al final del documento

X-Ayatana-Desktop-Shortcuts=Runroot

[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity
edm
fuente
51
¿Por qué es tan extremadamente complicado establecer un acceso directo simple? ¿Qué pasa con los creadores de ubuntu?
Sliq
77
para el gksudocomando, tienes que instalarsudo apt-get install gksu
Arul
55
@Sliq se llama seguridad ... Tener un icono de escritorio que se ejecuta como root sin necesidad de una contraseña ... es muy peligroso ... Para mí, esto es realmente la alegría de Linux ... Si quisiera una vida fácil ... usaría Windows como mi sistema principal ...
Angry 84
3
@sliq "¿Por qué es tan difícil hacer grep desde cmd prompt? ¿Qué les pasa a los creadores de Windows?" - Creadores de Ubuntu ... probablemente
thenaglecode
3
desactualizado para Ubuntu 18.XX ¿Alguien puede proporcionar una solución actualizada?
JRsz
4

En el Menú principal en Sistema, Preferencias, escriba gksudoel campo Comando de Propiedades del iniciador, por ejemplo:

/usr/bin/gksudo /usr/bin/yourapplication

Su campo de nombre podría decir:

sudo yourapplication

Para que los usuarios sepan que pueden ver una ventana emergente de contraseña y por qué ...

No estoy seguro acerca de Unity Launcher vs Main Menu. Tal vez esto ayude?

Buena suerte

boolship
fuente
3
Probablemente sepa que sudono debería usarse directamente para ejecutar aplicaciones gráficas, ya que root, después de todo, lo está utilizando gksudo(que es una de las mejores maneras). Por la misma razón, es desaconsejable usarlo sudoen el campo de nombre de la manera en que lo hizo, porque al hacerlo (1) crea la impresión entre usuarios suficientemente experimentados de que su lanzador está hecho incorrectamente, y (2) crea la impresión entre usuarios menos experimentados que está bien usar directamente sudopara ejecutar aplicaciones gráficas como root.
Eliah Kagan
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

Lo siguiente parece hacer lo mismo, sin necesidad de atributos privados:

Actions=Runroot;Another

[Desktop Action Runroot]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND

[Desktop Action Another]
Name=Another action
Exec=whatever
Daniel
fuente
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

Como una alternativa rápida y simple a las engorrosas demandas descritas en las respuestas aquí, tengo la costumbre de hacer lo siguiente ...

  1. Lanzar una nueva terminal.
  2. Entrar gksu nautilus

    (también sudo -i nautilusfunciona)

La ventana resultante cae bajo el paraguas de sudo, por lo que puede usarla para acceder y lanzar archivos con privilegios de sudo-root al contenido de su corazón hasta que se cierre. Esto resulta útil para situaciones transitorias en las que no necesita una solución más permanente. Lo uso habitualmente para extraer archivos comprimidos en carpetas protegidas del sistema, por ejemplo.

Syndog
fuente
2
Usar sudocon aplicaciones gráficas NO es una buena idea. Use gksuo si debe hacerlo sudo -i.
Seth
2
@Seth: actualizado. Además ... Una pequeña explicación de por qué no sería negligente, en lugar de decir crípticamente que no es una buena idea.
Syndog
Un hilo interesante sobre el tema: crunchbang.org/forums/viewtopic.php?id=8468
Syndog
1

Estoy publicando esto en respuesta a la pregunta que Chris hizo en los comentarios:

Suponga que desea crear un lanzador que abrirá "administrador de archivos (nautilus)" como root. Entonces puedes hacer esto:

Terminal abierto Tipo:

sudo -H gedit /usr/share/applications/nautilus_root.desktop

Presione enter. Cuando se le solicite, ingrese su contraseña de inicio de sesión y presione enter. Esto abrirá gedit (editor de texto). Ahora, pegue lo siguiente allí:

[DesktopEntry]
Encoding=UTF-8
Name=Nautilus(Root)
Comment=FileManager
Exec=gksu nautilus
Icon=file-manager
Categories=System;
Type=Application
Terminal=0

Ahora, solo guárdelo y salga. Estás listo. Ahora, si busca en el tablero, encontrará un nuevo lanzador "Nautilus (Root)". Al hacer clic en este, se le pedirá una contraseña y, tras la autenticación, nautilus se abrirá como root.

Nota: Tenga cuidado cuando esté ejecutando "Nautilus (Root)". En este modo, puede eliminar casi cualquier cosa /y romper el sistema.

Aprendiz curioso
fuente
0

Esto quizás debería ser un comentario sobre la solución de Daniel. Funciona para mí, incluso en Ubuntu 15.04. Tuve que poner el comando entre comillas Exec=gksu "nautilus --new-window"debido al argumento adicional. Además, de alguna manera, no sé por qué, tuve que editar el lanzador directamente para mantener el menú original (junto con la nueva opción). Si arrastra su propio lanzador, se registrará, pero no tendrá el mismo menú.

En Ubuntu 15.04, el lanzador para nautilus es usr/share/applications/org.gnome.Nautilus.desktop. Debe usar la línea de comando para ver el nombre real del archivo.

La investigación adicional me llevó a lo que creo que es una mejor opción: http://ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/ . En lugar de abrir Nautilus completamente como Root, esto le permite abrir directorios seleccionados como Root dentro de Nautilus. De todos modos, lo comprobé, y estas dos opciones son compatibles. Si abre Nautilus como Root y luego usa la segunda opción para abrir un directorio como Root, simplemente lo abre sin solicitar la contraseña.

Dominic108
fuente