Cómo ejecutar el icono .desktop desde sudo

11

He creado un icono de escritorio para el gddccontrol, pero para ejecutarlo necesito ejecutarlo desde sudo. ¿Hay alguna manera de ejecutar un comando desde el icono del escritorio como,

sudo -pPASSWORD gddccontrol

entonces no me pedirá la contraseña en la terminal?

Solo quiero hacer clic y ejecutarlo con permisos sudo.

[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png

Cuando ejecuto el ícono desde la terminal con el siguiente comando Exec, funciona bien, pero no funciona en Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol
Eugene
fuente

Respuestas:

17

NUNCA use su contraseña, almacenada en un .desktoparchivo. Es terriblemente inseguro.

Además, no puede ejecutar comandos complicados en un .desktoparchivo así, pero ese es otro tema.

Qué hacer

Tienes pocas opciones:

  1. Agregue gddccontrolal sudoersarchivo, como se explica, por ejemplo, aquí . Esto se puede hacer si está seguro de que la aplicación no se puede usar para hacer cosas maliciosas.

    Luego usa

    Exec=sudo gddccontrol
    

    en el Exec=-line

  2. Otra opción es reemplazar la Exec=línea por:

    Exec=gksu gddccontrol
    

    En este caso, una vez que haga clic en el icono, se le pedirá que ingrese su contraseña a través de la interfaz gráfica de usuario.
    Posiblemente necesite instalar gksu:

    sudo apt-get install gksu
    
Jacob Vlijm
fuente
no hay otras formas sin editar sudoers y gksu? porque gksu de alguna manera pide contraseña, pero cuando estoy recostado en el sofá por la noche, me gustaría ejecutar gddccontrol con el mouse para disminuir el brillo / contraste y seguir viendo películas sin tener que acceder al teclado. Mejor daría a mi usuario acceso al $ gddccontrol dev: / dev / i2c-4: Permiso denegado Solo quiero una manera fácil y sin dolor de cabeza para cambiar el brillo y el contraste en el horario de la tarde :(
Eugene
1
@ Eugene, me lo puedo imaginar. Yo iría por el archivo de sudoers en ese caso.
Jacob Vlijm
1
Prefiero pkexecsobre gksu; Creo que hubo una meta publicación sobre esto.
gato
@cat pkexecno se ejecuta en aplicaciones GUI así como así. Es más complicado de configurar, mientras que gksufunciona perfectamente.
Jacob Vlijm
Pero no necesito instalar adicionalmente pkexecen 16.04.
Valentas
4

El uso de sudowill, por definición, solicitará una solicitud de contraseña. Lo que debe hacer es otorgar permisos de ejecución a su usuario. No estoy seguro de dónde se encuentra ese programa, pero por el bien de esta respuesta, supongamos que es /usr/bin/.

En una terminal ejecute esto:

sudo chmod o+x /usr/bin/gddccontrol

Este comando está concediendo o tros usuarios (como usted) el derecho a la e x ecute el programa sin necesidad de permiso.

Luego, en el archivo .desktop, simplemente use:

Exec=gddccontrol

fuente
0

Estoy en contra de la contraseña de codificación en un archivo de texto sin formato, así que puedo pensar en dos posibles soluciones:

  1. realice una edición en todo el sistema para que cada comando emitido por su usuario con sudo se ejecute como superusuario sin solicitar una contraseña. Puedes averiguar cómo en esta respuesta

  2. Si no desea que los sudocomandos se ejecuten siempre con la solicitud de contraseña, utilice la práctica recomendada gksuantes de su comando para solicitar la contraseña en una ventana gráfica en lugar de escribir su contraseña sin procesar en un archivo.

S.Mohsen sh
fuente