Diferencias entre gksudo, kdesudo, sudo y su

Foro de soporte para usuarias de habla hispana

Moderator: Wibol

Forum rules
Topics in this forum are automatically closed 6 months after creation.
Locked
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

Este post es una traducción de este otro escrito por xenopeek.

Las diferencias entre estos comandos generan bastantes dudas entre los usuarios. En este post se resumen esas diferencias, basándose en la configuración predeterminada de sudoers para Linux Mint 18.

Lo primero aclarar que gksudo y kdesudo hacen lo mismo, solo que el primero se usa en Cinnamon, Mate y XFCE, mientras que el segundo se utiliza en KDE. Por tanto, deberás emplear uno u otro según tu escritorio.

En general, siempre debes usar gksudo o kdesudo para ejecutar programas gráficos como root. Utiliza sudo y su sólo para programas de línea de comandos. De lo contrario, puede terminar con programas gráficos que cambien la propiedad de los archivos en tu directorio /home a root, lo que puede causar muchos problemas.

NOTA: A partir de la versión 19 (Tara) de Linux Mint, gksudo ya no está disponible debido a un cambio en Ubuntu. Por tanto, si usas esta versión es muy recomendable la lectura del siguiente post de Wibol: Ya no está disponible "gksudo" en Tara.

gksudo, kdesudo y sudo se emplean con tu propia contraseña, siempre y cuando pertenezcas al grupo sudo. Si tu usuario es el primero que creaste al instalar el sistema, pertenecerá a este grupo. Por su parte, su requiere la contraseña del usuario al que vas a cambiar y no necesita ser miembro del grupo sudo para utilizarse. Si utilizas gksudo o kdesudo se te pedirá la contraseña en una ventana gráfica. Por contra, sudo y su piden la contraseña en la terminal (no se ve mientras escribes, esto es una medida de seguridad).

Tras estas aclaraciones, pasamos a resumir las diferencias entre estos comandos:

gksudo y kdesudo establecen $ HOME en el directorio /home del root y establecen $ XAUTHORITY en un nuevo archivo fuera de tu directorio /home (aunque con la misma cookie para comunicarse con el servidor X), por lo que el programa que ejecuta no cambia la propiedad de los archivos en tu directorio /home a root. Sólo un número limitado de variables de entorno, y no funciones ni alias, se conservan al cambiar de usuario de esta manera.

sudo no hace nada de eso y por ello no debe emplearse en programas gráficos, pues estos emplean esas variables de entorno, y solo un número limitado de estas variables de entorno se conservan, no funciones ni alias al cambiar de usuario de esta manera. Dentro de este comando, destacamos:

sudo -i Establece $ HOME en el directorio /home de root y además cambia a ese directorio. Pero al no establecer valor para la variable $XAUTHORITY no debería ser usado para aplicaciones gráficas. Al cambiar de usuario de esta manera, solo se preservan un número limitado de variables de entorno, y no funciones ni alias.
sudo -H Establece $ HOME como directorio /home de root. Tampoco establece $ XAUTHORITY y por tanto tampoco debe usarse con programas gráficos. Sólo un número limitado de variables de entorno, y no funciones ni alias, se conservan al cambiar de usuario de esta manera.

su Establece $ HOME como directorio /home de root, pero de nuevo no se establece $ XAUTHORITY y por tanto tampoco se debe usar para programas gráficos. Todas las variables de entorno (con algunos cambios), pero sin funciones ni alias, se conservan al cambiar de usuario de esta manera.

su - Hace lo mismo que sudo -i, pero empleas tu contraseña como root, aunque repito, no hagas caso a esto si utilizas el usuario creado durante la instalación, ya que tu usuario pertenece al grupo sudo y por tanto no te afecta esta diferencia.

EJEMPLO SOBRE SUDO:
sudo -i Por defecto no precisa de un comando o aplicación que correr y si no lo añadimos cambia de directorio sin más.
sudo -H Necesita de un comando o aplicación que correr, por lo que la sintaxis completa sería: sudo -H [comando]

Así, usando el comando ls para listar un directorio, observamos que uno cambia de directorio y otro no:
sudo -i ls ⇒ mostraría el contenido de /root.
sudo -H ls ⇒ mostraría el contenido de /home/nombredetuusuario.
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 10 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

Nueva traducción, a ver qué sugerencias tenéis :D
Ghermain

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by Ghermain »

Gracias, para seguir aprendiendo.
:lol:
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

Ghermain wrote:Gracias, para seguir aprendiendo.
:lol:
Veo que lo has puesto en tu página, ¡gracias! Así llegará a más gente :D
User avatar
JCSenar
Level 11
Level 11
Posts: 3646
Joined: Sat Sep 06, 2014 6:26 pm
Location: Irun, España
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JCSenar »

Hay que tener cuidado con las traducciones. Tal y como está redactado no entiendo demasiado.

Por ejemplo:
Otherwise you may end up with the graphical programs changing ownership of files in your home directory to root, which can cause lots of issues.
debería traducirse como:
De lo contrario, puedes terminar con programas gráficos que cambian la propiedad de los archivos en tu directorio /home a root, lo que puede causar muchos problemas.
o:
gksudo and kdesudo set $HOME to the home directory of root, and set $XAUTHORITY to a new file outside your home directory (though with the same cookie for communicating with the X server), so the program you run doesn't change ownership of files in your home directory to root. Only a limited number of environment variables, and no functions or aliases, are preserved when changing user this way.
sería:
gksudo y kdesudo establecen $ HOME en el directorio /home de root y establecen $ XAUTHORITY en un nuevo archivo fuera de tu directorio /home (aunque con la misma cookie para comunicarse con el servidor X), por lo que el programa que ejecuta no cambia la propiedad de los archivos de tu directorio /home a root. Sólo un número limitado de variables de entorno, y no funciones ni alias, se conservan al cambiar de usuario de esta manera.
¿Podrías echar un ojo al resto? Gracias.
Si tu consulta ha sido resuelta, por favor, edita tu primer mensaje y añade [SOLUCIONADO] al título. Gracias.
User avatar
JOPETA
Level 17
Level 17
Posts: 7762
Joined: Thu Nov 20, 2014 6:10 am
Location: En un lugar de cuyo nombre no quiero acordarme

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JOPETA »

Completamente de acuerdo JCSenar, además de extremar los cuidados en la traducción hay un error evidente no es (✔sudo -h sino sudo -H).

Creo que es preferibe mantener los anglicismo/neologismos
gksudo ykdesudo establecen $HOME en el directorio home del root
si no se quiere dar una vuelta para evitarlos
gksudo ykdesudo establecen la variable $HOME en el directorio de superusuario (/root)
En el apartado sudo xenopeek pretende ser deliberadamente machacón por lo que no estoy muy de acuerdo con la simplificación y tampoco la de los apartados sudo -i y sudo -H.
sudo no hace nada de eso y por ello no debe emplearse en programas gráficos, pues estos emplean esas variables de entorno. Solo un número limitado de variables de entorno se conservan, no funciones ni alias al cambiar de usuario de esta manera. Dentro de este comando, destacamos:
  • sudo -i Establece $ HOME en el home del root y además cambia a ese directorio, pero al no establecer (valor para la variable) $XAUTHORITY no debería ser usado para aplicaciones gráficas. Al cambiar de usuario de esta manera, solo se preservan un número limitado de variables de entorno, y no funciones ni alias.
    (...)
.
Mucha gracias por el trabajo Linux123 y a rematar la faena. :wink:
Last edited by JOPETA on Sat Oct 21, 2017 11:17 am, edited 1 time in total.
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

En cuanto pueda lo miro y os notifico cuando esté todo correcto. Por cierto, os tomaré prestadas algunas correcciones :P

Saludos.
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

Vale, creo que ya está mejor, a ver qué os parece.
User avatar
JOPETA
Level 17
Level 17
Posts: 7762
Joined: Thu Nov 20, 2014 6:10 am
Location: En un lugar de cuyo nombre no quiero acordarme

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JOPETA »

Aun podrías "tutear" algo mas pero francamente mejor. Añadido al Indice de temas Ensenciales, por ahora en verde aunque no por mucho tiempo. :D
User avatar
JCSenar
Level 11
Level 11
Posts: 3646
Joined: Sat Sep 06, 2014 6:26 pm
Location: Irun, España
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JCSenar »

linux123 wrote:Vale, creo que ya está mejor, a ver qué os parece.
Solo una duda: Esto es lo que sucede cuando utilizo sudo -i (aparentemente correcto) y sudo -H. Parece que sudo -H es incorrecto (no aprerece entre las opciones de uso) y que lo correcto sería sudo -h seguido de opciones:

Code: Select all

juancar@Juancar-PC ~ $ sudo -i
[sudo] password for juancar:         
Juancar-PC ~ # exit
logout
juancar@Juancar-PC ~ $ sudo -H
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...
juancar@Juancar-PC ~ $ 
Agradecería un ejemplo de uso para entenderlo mejor. Habitualmente solo utilizo sudo a secas (sudo apt-get install XXXXX, etc.)

¿Algo que aclarar ante mi desconocimiento?
Si tu consulta ha sido resuelta, por favor, edita tu primer mensaje y añade [SOLUCIONADO] al título. Gracias.
User avatar
JOPETA
Level 17
Level 17
Posts: 7762
Joined: Thu Nov 20, 2014 6:10 am
Location: En un lugar de cuyo nombre no quiero acordarme

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JOPETA »

Y también tuve que comprobarlo ya que el clic es lo que tiene, que se pierde la costumbre ¡Gracias Mint! :D

sudo -H es correcto lo que falta es el comando o la aplicación que correr con el sudo -H [command] (parece que sudo -i por defecto no lo precisa y cambia de directorio sin más).sudo -h solo te remite a la ayuda . Puedes verlo con man sudo
-H, --set-home
Request that the security policy set the HOME environment
variable to the home directory specified by the target user's
password database entry. Depending on the policy, this may
be the default behavior.
-h, --help
Display a short help message to the standard output and exit.
y sudo --help en español mas escueto
-H, --set-home asignar la variable HOME al directorio de inicio del usuario
-h, --help mostrar mensaje de ayuda y salir
Por ejemplo usa el listado del directorio (ls) así compruebas además que uno se desplaza de directorio y el otro no :wink:

Code: Select all

sudo -i ls  >>mostraría el contenido de /root
sudo -H ls  >>mostraría el contenido de tu directorio de usuario es decir /home/juancar
Last edited by JOPETA on Sun Jul 02, 2017 5:29 am, edited 1 time in total.
User avatar
JCSenar
Level 11
Level 11
Posts: 3646
Joined: Sat Sep 06, 2014 6:26 pm
Location: Irun, España
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JCSenar »

JOPETA wrote:Por ejemplo usa el listado del directorio (ls) así compruebas además que uno se desplaza de directorio y el otro no :wink: :

Code: Select all

sudo -i ls  >>mostraría el contenido de /root
sudo -H ls  >>mostraría el contenido de tu directorio de usuario es decir /home/juancar
¡Exactamente! :D Seguimos aprendiendo :wink:

Por mi parte, que siempre he usado mal estos comandos (sudo pluma .... :oops: ) me comprometo a usar en adelante gksudo pluma .... :D

Si linux123 está de acuerdo, añadiría al final del tutorial el ejemplo que acaba de comentar JOPETA para ilustrarlo un poco. ¿Algo tal que así?:
______________________________________________

EJEMPLO:

sudo -i por defecto no precisa de un comando o aplicación que correr y si no lo añadimos cambia de directorio sin más.

sudo -H sí necesita de un comando o aplicación que correr: sudo -H [command]

Por ejemplo, usando el comando para listar un directorio (ls) uno se desplaza de directorio y el otro no:

sudo -i ls >> mostraría el contenido de /root.

sudo -H ls >> mostraría el contenido deldirectorio /home/usuario.
_____________________________________________
Si tu consulta ha sido resuelta, por favor, edita tu primer mensaje y añade [SOLUCIONADO] al título. Gracias.
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

JCSenar wrote:Por mi parte, que siempre he usado mal estos comandos (sudo pluma .... :oops: ) me comprometo a usar en adelante gksudo pluma .... :D
Vaaaale, lo reconozco, ya somos dos :mrgreen: (soy muy de sudo nemo noseque....).

En cuento al ejemplo, ahora mismo lo añado, es buena idea y así queda todo perfectamente aclarado.

EDIT: Añadido queda.
User avatar
TursonX
Level 3
Level 3
Posts: 116
Joined: Thu May 26, 2016 1:36 am

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by TursonX »

Hola.

Al buscar en Google sobre "diferencias sudo su", suele arrojar este artículo: http://www.ubuntu-guia.com/2012/08/coma ... -sudo.html.
En el cual como conclusión aconsejan dado el caso, que el de usar sea sudo -i cuando se trate de muchos los comandos a ejecutar con privilegios de administrador.
No obstante, en su explicación de aquí en el foro de Linux Mint, denoto que no coinciden con ello, o ¿al menos en parte?
LM 18 Mate x64 » kernel 4.4.0-165-generic » MSI 760GM-P34 » video onboard Ati Radeon HD 3000 » AMD Athlon II X2 240 » 4GB RAM ddr3 hynix » HDD WD Sata II
User avatar
JOPETA
Level 17
Level 17
Posts: 7762
Joined: Thu Nov 20, 2014 6:10 am
Location: En un lugar de cuyo nombre no quiero acordarme

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by JOPETA »

TursonX wrote:No obstante, en su explicación de aquí en el foro de Linux Mint, denoto que no coinciden con ello, o ¿al menos en parte?
Yo no lo entiendo así. Aquí las unicas remendaciones que se realizan son las relativas a impedir el cambio de permisos de archivos en el directorio de usuario con las aplicaciones con interfaz gráfica, sudo -i no debería ser usado para aplicaciones gráficas, siendo recomendable su uso, como dices, en los otros casos.

Por la fecha del enlace que proporcionas (2012) estas consideraciones no se tenían muy encuenta (ni una mención a gksudo en el texto principal). Pero Juanetebitel si que hace mención a esto en su respuesta a un comentario al respecto. Como verás la coincidencia es exacta. :wink:
Last edited by JOPETA on Mon Oct 16, 2017 2:43 pm, edited 2 times in total.
Ni cola de león ni cabeza de ratón, prefiero ser diente de ajo.(Javier Krahe)
User avatar
linux123
Level 5
Level 5
Posts: 605
Joined: Thu Sep 03, 2015 6:43 am
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by linux123 »

TursonX wrote:Hola.

Al buscar en Google sobre "diferencias sudo su", suele arrojar este artículo: http://www.ubuntu-guia.com/2012/08/coma ... -sudo.html.
En el cual como conclusión aconsejan dado el caso, que el de usar sea sudo -i cuando se trate de muchos los comandos a ejecutar con privilegios de administrador.
No obstante, en su explicación de aquí en el foro de Linux Mint, denoto que no coinciden con ello, o ¿al menos en parte?
sudo -i Es igual que sudo, solo que en este caso se escribe una vez para todos los comandos que escribas hasta cerrar la terminal (sin duplicar sesiones y procesos como haces con su). Digamos que "escribe sin que se vea" sudo delante de cada comando (absurda explicación, pero sirve para comprenderlo :roll: ). Pero el ser sudo y no gksudo o kdesudo supone que NO debe usarse para aplicaciones gráficas. La -i solo forma parte de la sintaxis de sudo, pero sigue siendo sudo.

Como ves la explicación es muy redundante, pero espero que al menos quede aclarado. Y por cierto, esto para cualquier comando, para ver su uso y su sintaxis solo tienes que escribir man [i]comandoquesea[/i].

Saludos.
thejokerk

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by thejokerk »

Está muy, pero muy interesante el tema, al igual que enredado, vamos a ver cuanto me tomo comprenderlo bien, gracias por el aporte.
User avatar
hatteras
Level 11
Level 11
Posts: 3884
Joined: Fri Sep 24, 2010 6:43 pm
Location: En el paraiso en la tierra
Contact:

Re: Diferencias entre gksudo, kdesudo, sudo y su

Post by hatteras »

En mi caso, con Cinnamon como escritorio:
sudo si quiero hacer algo con permisos de root en una terminal que no se pueda hacer con una aplicación gráfica
gksudo si quiero hacer algo con permisos de root con una aplicación gráfica.
su nunca lo he usado para nada
Todos somos muy ignorantes. Pero no todos ignoramos las mismas cosas.
Es un placer ayudar, y ver que a alguien le es útil.
Es un placer pedir ayuda y ver que alguien te la da desinteresadamente.
Locked

Return to “Español - Spanish”