¿Hay alguna diferencia entre el comportamiento de gksu fooy gksudo foo?
¿Se pueden usar indistintamente?
Ambos archivos apuntan al mismo lugar:
$ ls -l /usr/bin/gksudo
lrwxrwxrwx 1 root root 4 2010-09-27 18:23 /usr/bin/gksudo -> gksu
... gksudoestá vinculado a gksu. Pero esto no significa que hagan lo mismo, ni mucho menos.
Las aplicaciones pueden detectar el comando utilizado para ejecutarlo. Esto es típicamente argv[0]en lenguajes de estilo C o $0en scripts de shell de estilo Bourne. La aplicación puede ver eso y, en este caso, en realidad cambia su funcionamiento. La primera indicación de esto está en la man gksupágina:
gksu is a frontend to su and gksudo is a frontend to sudo.
Si busca en la fuente ( apt-get source gksu) run_mode, verá cómo detecta esto:
{ /* support gksu_sudo_run */
gchar *myname = g_path_get_basename (argv[0]);
if (!strcmp(myname, "gksudo"))
run_mode = SUDO_MODE;
g_free (myname);
}
Puede anular esto con los argumentos --su-mode/ -wy --sudo-mode/ -S(para que pueda ejecutar comandos equivalentes sin necesidad del gksudoenlace simbólico ... Pero eso depende de usted.
Si quieres saber cómo estos "modos" realmente difieren, solo hay un poco de escape gksu. Tienes que seguirlo libgksu. Esta es la biblioteca que realmente verifica los permisos antes de entregarlos al sistema.
Si no se especifica ningún modo (por ejemplo, llama gksusin argumentos) para cuando llegue libgksu, verificará Gconf (como señala Stefano) y si aún no puede decidir, pasará al sumodo predeterminado .
bashactiva el modo estricto POSIX cuando se invoca comosh. Ygksues también consciente de nombre de invocación.En Ubuntu (!), No hay diferencia.
gksunormalmente iniciaría sesión en el usuario root y ejecutaría una aplicación en esta sesión. Sin embargo, en Ubuntu, por defecto usa el "modo sudo", que es equivalente a la ejecucióngksudo. Esto se debe a que en ubuntu no puede iniciar sesión como root de forma predeterminada.gksudoes el equivalente gráfico desudo(y como señala Oli, solo un enlace simbólico a gksu)De la entrada gconf de gksu:
Además, sobre la diferencia entre sudo y gksudo:
fuente
Sé que este es un hilo viejo, pero me han pedido que les cuente sobre una diferencia sutil pero esencial entre
gksuygksudo.Aunque he buscado mucho, no puedo encontrar una diferencia documentada en ningún lado, y sin embargo, existe. Tampoco he descubierto por qué hay una diferencia. Encontré esto de la manera difícil cuando eliminé accidentalmente algunos archivos del sistema precisamente debido a esta diferencia (discutido en un hilo en los foros de Ubuntu ): había estado usando
gksu, pero desde entonces me he asegurado de usar siempregksudo.Para resumir, intente esto.
touch abctouch abc.tmptouch abctmpEjecute los siguientes seis comandos. Los primeros cinco dan el mismo resultado (esperado) (es decir, solo
abc.tmp), mientras que el sexto incluye un archivo adicional (abctmp) que no debería.Imagine los problemas cuando reemplaza
-printcon-deleteen elfindcomando (que es exactamente lo que me sucedió, causando que se eliminen algunos archivos del sistema).Entonces, por favor use en
gksudolugar degksu.fuente
gksudoes equivalente a escribirgksu --sudo-mode