¿La diferencia entre sudo y gksu es la misma que la diferencia entre sudo -i y sudo -s?

26

¿Es la diferencia entre sudo cmdy gksu cmd, lo mismo que la diferencia
entre comenzar un shell con sudo -iy sudo -s?

... o dicho de otra manera,
¿Es sudo cmd lo mismo sudo -i cmd
y gksu cmdlo mismo que sudo -s cmd?

EDITAR: según lo que leí en una página de documentación de Ubuntu donde dice:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

El "AFACIO" realmente no me da plena confianza de que no hay nada más.


(... una ACTUALIZACIÓN tardía : probé su comentario hoy (2 meses después) sobre:
"Esto evita que los archivos en su directorio principal sean propiedad de root".
Todos los archivos que creé a través de sudo / gksu eran propiedad de " root ", y el grupo era " root ").


He leído partes de la info sudoy se dio cuenta de la -iy -s parece estar haciendo lo mismo que la AFAICT tema del medio ambiente ...
pero llegué a la sobrecarga .. así que he pedido a mi pregunta aquí.

PD ... Mi pregunta no es sobre sudo vs gksu
... Es más sobre: ​​¿Es gksu lo mismo que sudo -s
... y si no, en qué se diferencian?

Peter.O
fuente

Respuestas:

16

gksues básicamente una interfaz gráfica para sudo que permite ejecutar comandos gráficos sin la necesidad de ejecutar un emulador de terminal X y usar su directamente. Efectivamente es solo una máscara GTK + para los comandos de superusuario.

Entonces, si desea ejecutar un programa basado en GUI como root, lo invocaría con gksu cmd, en lugar de sudo cmd, que se utiliza para invocar programas de consola como root.


fuente
1
No sé a qué se podría referir con una graphicalinterfaz ... una aplicación GTK funciona bastante bien independientemente de si se inicia a través de sudo o gksu ... pero sí ejecuta el programa en un entorno diferente ... (Yo ' Agregaré algo más a mi pregunta para señalar por qué hice la pregunta ...
Peter.O
2
Finalmente entendí lo que quieres decir con a graphical frontend. Siempre uso el terminal para ejecutar sudo / gksu ... pero en el espíritu de fuerza bruta probando todo lo que se me ocurría, intenté correr sudoy gksucon Alt + F2 ... ¡Bingo! ... sudodesapareció en el vacío, pero gksuaprovechó la ocasión y me presentó el (legendario) graphical forntend... Es el mismo diálogo que aparece para Synaptic Package Manager, etc ...
Peter.O
PD ... Acabo de probar gksu en una nueva terminal. El diálogo de contraseña también aparece allí ... Debo haberlo visto antes pero asociado con la contraseña (solo), y no por el hecho de que era un diálogo GUI de un comando de Terminal ... ("Ya veo". dijo el ciego :) ... Gracias ...
Peter.O
. siguiendo más allá, estimulado por su respuesta, parece que gksucambia la carpeta XAUTHORITY, y sudono ... No estoy seguro de qué se trata, ¡pero parece significativo! ... Esto ha resuelto mi dilema ... (detalles en mi respuesta a continuación)
Peter.O
10

sudo -irestablece el entorno de inicio de sesión al usuario de destino ( root , en este caso). Principalmente, es que la HOMEvariable de entorno cambia, lo que significa que el usuario objetivo ~/.bashrcestá cargado.

gksues, por lo tanto, como sudo -ien que se cambia $HOMEal usuario raíz .

Kees Cook
fuente
Gracias KC ... Está empezando a tener sentido para mí (despacio, lentamente) ... pero parece claro que gksu, al crear una copia de XAUTHORITY y trabajar desde (?), Pone a gksu en una categoría bastante separada. cualquiera de las sudovariantes a las que me he referido ... ¡y darme cuenta de esto ha sido el Aha! momento para mí ... El resultado es: ¡Usa gksu para aplicaciones GUI! ... pero me queda una cantera sin resolver más ... ¿Se aplica gksu solo a las aplicaciones GTK , o está perfectamente bien usar gksu cuando se ejecuta una aplicación GUI de KDE ?
Peter.O
5

Esto no es realmente una respuesta, pero puede ser de algún interés ...
Estoy empezando a tener una idea de lo que sucede con estos comandos su,
pero todavía no estoy del todo ... Sí lo uso gksu. .. Esto es más un viaje de comprensión para mí ... y no quiero entender si gksues válido para konsoleo kate, o debo usar la variante de KDE kdesu...

Aquí hay algunos resultados de algunas pruebas que acabo de probar.

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

Estos resultados no concuerdan con la página de documentación de Ubuntu , donde dice:

 This prevents files in your home directory becoming owned by root

ACTUALIZACIÓN: Las envvariables XAUTHORITY para los terminales invocados sudo y gksu son diferentes (como se menciona en la página de documentación de Ubuntu ).

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

Esto muestra que gksudefinitivamente no es lo mismo que el sudo -scomando al que me referí en la pregunta ... y, por lo tanto, responde mi pregunta original (de alguna manera aún oscura) ... ¡y la respuesta de Chris ciertamente me hizo pensar mucho en esta! ... ¡¡Necesito un café!!

Peter.O
fuente
3

sudo es para aplicaciones de línea de comandos, gksu / gksudo para gráficos

karthick87
fuente
Gracias, mi pregunta puede haber sido tan poco clara como mi comprensión original del problema ... Estaba tratando principalmente de averiguar cuál fue la diferencia específica que hizo necesario tener ambos comandantes. Parece que la diferencia principal está en forma en que gksufunciona desde una copia temporal del XAUTHORITY .. no me queda claro en los detalles de por qué XAUTHORITY necesita ser manejado especialmente, pero es una cosa importante que distingue a su comportamiento desudo
Peter.O