sudo vs gksudo. ¿diferencia?

37

¿Qué diferencia hay entre sudoy gksudo?

oneat
fuente
1
Buena pregunta. Estoy aprendiendo Linux ahora (Puedes ver que todavía no he encontrado la distribución de mi teclado) ¡Jaja!
r0ca

Respuestas:

27

sudopide la contraseña en la línea de comando y gksudoaparece un cuadro de diálogo para ello.

Ignacio Vazquez-Abrams
fuente
66
gksu (do) también tiene su propia configuración de qué variables de entorno pasar al hijo, separadas de las su (do). Por ejemplo, si la configuración de sudoers especifica! Keep_env, la falta de $ DISPLAY puede evitar que se ejecuten aplicaciones gráficas, pero gksudo debería funcionar. Puede encontrar algunos detalles en git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… o live.gnome.org/gksu .
Ephemient
@ephemient Entonces, además del indicador gráfico, ¿es sudo -Eequivalente a gksudo?
isomorfismos
3
la respuesta de abajo parece muy superior superuser.com/a/726249/112542
johny por qué
44
Quiero enfatizar que esta no es la diferencia crucial en absoluto, y esta respuesta es bastante engañosa para los novatos. La principal diferencia se explica aquí: askubuntu.com/a/11766/81034 y la respuesta a continuación (a la que @johnywhy se conectó) va un paso más allá para agregar algo de matiz a eso. Lea la pregunta askubuntu en lugar de confiar en esta respuesta engañosa.
sundar - Restablecer Monica
31

gksudoes una interfaz basada en GTK de sudo(Por cierto, kdesudoes una interfaz basada en Qt), sin embargo, (por defecto) gestiona las variables ambientales más ( HOME, XAUTHORITY, etc.) que sudocon lo que los comandos se ejecutan como root más seguro.


Por lo que puedo ver, solo la respuesta de @Logics es lo suficientemente correcta (la de @Ignacio Vazquez-Abrams no está completa). Aquí está la aclaración de intentar evitar las respuestas / comentarios de @Davros @knitti (por favor, elimínelos / edítelos cuando no sea necesario):

  1. Aunque ambos comandos son representativos sudo, la IU utilizada NO es la única diferencia de los dos comandos.
  2. Ejecutar el programa GUI NO es la única situación en la que debe usar gk / kdesudo, sino que debe usar gk / kdesudo siempre que no pueda determinar si el comando creará / escribirá archivos en su directorio de inicio (a lo que HOMEapunta la variable de entorno en el sudocomando en algunos sistemas y situaciones). No todas las aplicaciones GUI escriben en su directorio de inicio y no todas las aplicaciones CLI no lo hacen , por lo que el tipo de comando no es el punto clave.
  3. Usted todavía puede usar sudocomandos para aplicaciones GUI lanzamiento como root (para la visualización de salida de la consola aplicaciones como ejemplo), sin embargo es necesario mango HOME(y otros como XAUTHORITY, DISPLAY-cosas relacionadas-input-method,, etc.) por lo que las variables ambientales correctamente que la aplicación lanzada no fallará, perderá funcionalidad o hará cosas realmente malas. La siguiente es mi recomendación actual para usarsudo
    • sudo -H <rest of the command>
      • (de sudola página del manual de la sección 8) La -H ( HOME )opción solicita que la política de seguridad establezca la HOMEvariable de entorno en el directorio de inicio del usuario de destino (raíz de forma predeterminada) según lo especificado por la base de datos de contraseñas. Dependiendo de la política, este puede ser el comportamiento predeterminado.
      • Esto debería al menos evitar que se creen archivos en sudoel directorio de inicio de la persona que llama
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Esto debería permitir que el <programa GUI> se ejecute en un terminal TTY y se muestre en su entorno de escritorio
  4. El comportamiento del sudocomando no es idéntico en todos los sistemas y se puede configurar a través del visudocomando, consulte la página de sudoers(5)manual para obtener más información.
Vdragon
fuente
2
Parece una explicación mucho mejor que la que obtiene todos los votos. más minucioso, más correcto. incluso el OP respondió "¿eso es todo?" a la respuesta que obtuvo todos los votos.
johny por qué
2

El uso de sudo regular para ejecutar programas gráficos ocasionalmente arruinará los permisos de 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 sudo posiblemente no genere problemas. Solo como una propina; si está ejecutando programas gráficos como root, en lugar de abrir un terminal para cada programa que desea ejecutar, escriba ALT-F2 (alt y la tecla de función 2 al mismo tiempo), luego escriba el cuadro de diálogo que aparece "gksudo programa "sin las comillas y el programa reemplazado por la aplicación que desea ejecutar.

Davros
fuente
2

sudo se ejecuta como el usuario actual con privilegios elevados. Esto tiene el potencial de cambiar los permisos de archivo de ciertos archivos de configuración de usuario (relacionados con su entorno gráfico) al ejecutar aplicaciones gráficas. Puede encontrar errores al ejecutar estas aplicaciones nuevamente sin sudo.

gksudo (kdesudo bajo KDE) ejecuta las aplicaciones como usuario root, por lo tanto, cualquier permiso de archivo tocado está en los archivos root, no en los archivos de los usuarios. ejecutar estas aplicaciones nuevamente sin gksudo / kdesudo siempre tendrá el comportamiento esperado.

Lógicas
fuente
0

La respuesta actual es incorrecta. De acuerdo con la wiki Ubuntu RootSudo :

"Nunca debe usar sudo normal para iniciar aplicaciones gráficas como root. Debe usar gksudo (kdesudo en Kubuntu) para ejecutar dichos programas. Gksudo establece HOME = ~ root y copia .Xauthority en un directorio tmp. Esto evita archivos en su hogar el directorio se convirtió en propiedad de root. (AFAICT, esto es todo lo que tiene de especial el entorno del proceso iniciado con gksudo vs. sudo) ".

eugene1832
fuente
2
Hay otras cuatro respuestas; cual es incorrecto ¿No es su respuesta esencialmente la misma que la de Davros?
fijador1234
Me refería a la respuesta marcada como correcta. Sí, Davros dice lo mismo, pero agregué esto porque el suyo no contenía un enlace a una fuente.
eugene1832
1
Una mejor solución sería proponer una edición para esa respuesta. Es probable que se acepte la mejora de una respuesta (+2 rep), mientras que duplicar una respuesta es probable que atraiga votos negativos.
Fixer1234