gksudo
es una interfaz basada en GTK de sudo
(Por cierto, kdesudo
es una interfaz basada en Qt), sin embargo (por defecto) maneja más variables ambientales (HOME
, XAUTHORITY
, etc.) que sudo
lo que hace que ejecutar comandos como root sea más seguro.
Por lo que puedo ver, solo la respuesta de @Logics es lo suficientemente correcta (@Ignacio Vazquez-Abrams no está completa). Aquí está la aclaración para tratar de evitar la respuesta/comentarios de @Davros @knitti (por favor, elimínelos/edítelos cuando no sea necesario):
- Aunque ambos comandos representan
sudo
, la interfaz de usuario utilizada NO es la única diferencia entre los dos comandos. - Ejecutar el programa GUI NO es la única situación en la que debe usar gk/kdesudo, en su lugar, debe usar gk/kdesudo siempre que no pueda determinar si el comando creará/escribirá archivos en su directorio de inicio (que el
HOME
la variable de entorno apunta a en elsudo
comando en algunos sistemas y situaciones). No todas las aplicaciones GUI escriben en su directorio de inicio y no todas las aplicaciones CLI , por lo que el tipo de comando no es el punto clave. - Tú todavía puedes usa
sudo
comando para iniciar aplicaciones GUI como raíz (para ver la salida de la consola de aplicaciones como ejemplo), sin embargo, debe manejarHOME
(y otros comoXAUTHORITY
,DISPLAY
, cosas relacionadas con el método de entrada, etc.) variables ambientales correctamente para que la aplicación lanzada no falle, pierda funcionalidad o haga cosas realmente malas. La siguiente es mi recomendación actual para usarsudo
sudo -H <rest of the command>
- (de
sudo
sección 8 página del manual) El-H ( HOME )
opción solicita que la política de seguridad establezca elHOME
variable de entorno al directorio de inicio del usuario de destino (raíz de forma predeterminada) según lo especificado por la base de datos de contraseñas. Según la política, este puede ser el comportamiento predeterminado. - Esto debería al menos evitar que se creen archivos en
sudo
directorio de inicio de la persona que llama
- (de
sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
- Esto debería permitir que
se ejecute en un terminal TTY y se muestre en su entorno de escritorio
- Esto debería permitir que
- El comportamiento del
sudo
el comando no es idéntico en todos los sistemas y se puede configurar a través devisudo
comando, consultesudoers(5)
página de manual para obtener más información.
sudo
pide la contraseña en la línea de comando y gksudo
aparece un cuadro de diálogo para ello.
El uso regular de sudo para ejecutar programas gráficos en raras ocasiones estropeará los permisos en algunos archivos. Para estar seguro, gksudo (o kdesudo según corresponda) debe usarse para ejecutar programas con una GUI. Creo que esto es realmente un error, aunque escuché explicaciones de que gksudo entiende las variables del servidor X y que Sudo posiblemente no genere problemas. Solo como propina; si está ejecutando programas gráficos como root, en lugar de abrir una terminal para cada programa que desee ejecutar, escriba ALT-F2 (alt y la tecla de función 2 al mismo tiempo), luego escriba en el cuadro de diálogo que aparece "gksudo program" sin las comillas y el programa reemplazado por la aplicación que desea ejecutar.