¿Cuál es la diferencia entre "gksudo nautilus" y "sudo nautilus"?


100

He estado usando gksudo nautilusy a sudo nautilustravés de Alt+ F2.

¿Cual es la diferencia? ¡Se ven muy similares!


Una explicación / discusión muy útil que incluye muchas capturas de pantalla: psychocats.net/ubuntu/graphicalsudo
nutty sobre


Respuestas:


113

Tomado de aquí :

Usted debe nunca se uso normal sudopara iniciar aplicaciones gráficas como root. Debe usar gksudo( kdesudoen Kubuntu) para ejecutar dichos programas. gksudoestablece HOME=/rooty copia .Xauthorityen un tmpdirectorio. Esto evita que los archivos en su directorio de inicio sean propiedad de root.

Tenga en cuenta que esto se trata principalmente de archivos de configuración . Si ejecuta Nautilus como root, incluso con gksu/ gksudo, y crea un archivo o carpeta en cualquier lugar (incluido en su directorio de inicio), ese archivo o carpeta será propiedad de root. Pero si ejecuta Nautilus (o la mayoría de las otras aplicaciones gráficas) como rootcon sudo, pueden guardar sus archivos de configuración en su directorio de inicio (en lugar del rootdirectorio de inicio). Esos archivos de configuración pueden ser de propiedad roote inaccesibles cuando no se está ejecutando como root, lo que puede dañar gravemente su configuración e incluso puede impedir que algunas aplicaciones funcionen por completo.

La solución, una vez que haya cometido este error, es encontrar los archivos de configuración y eliminarlos o chownvolver a pertenecer a su no rootusuario. Muchos de estos archivos comienzan con a .o están contenidos en un directorio que comienza con a .. Algunos se encuentran dentro de la .configcarpeta en su directorio de inicio. Para ver los archivos y carpetas que comienzan con a .en Nautilus, presione Ctrl+ H(esto muestra archivos ocultos ). Para verlos con ls, use el indicador -a(o -A).

Para saber si hay archivos que no son de su propiedad en su directorio de inicio, puede usar el siguiente comando en una terminal:

find $HOME -not -user $USER -exec ls -lad {} \;

que enumerará todos los archivos en el directorio de inicio que no sea propiedad del usuario.


1
Ya he usado 'sudo nautilus'. ¿Eso significa que mi directorio personal ahora es propiedad de root? (PD: mi inglés no es perfecto)
DrKenobi

22
No, significa que mientras estaba ejecutando Nautilus como root, los archivos que creó en su directorio personal serán propiedad de root. Esto podría incluir miniaturas y otros archivos de soporte que Nautilus crea automáticamente.
Ryan Thompson, el

1
. El segemnet citado que usaste me ha intrigado desde la primera vez que lo leí; específicamente donde dice: "Esto evita que los archivos en su directorio de inicio sean propiedad de root". Probé esto hoy creando algunos archivos de prueba, en 10.04, 10.04 (VM), 10.10 (VM), y no importa cómo empecé sudo / gksudo (Terminal-> Nautilus, Terminal-> gedit, Alt + F2 .. .) ... todos los casos causaron que mi recién creado sea propiedad de "root", con el grupo "root" ... Tal vez me haya perdido algo, pero creo que parte del segmento citado es gente engañosa ...
Peter. O

Hmm, solo estaba citando la página wiki. Realmente no tengo una comprensión profunda de la diferencia entre las dos herramientas. ¿Quizás alguien en unix.stakexchange.com pueda ayudar?

2
@ Peter.O He ampliado esta respuesta para abordar esa pregunta y explicar exactamente qué archivos se tratan de manera diferente sudo, a través de gksu/ gksudo. (@ChrisWilson Siéntase libre de retroceder o acortar esta edición si siente que no está totalmente dentro del alcance de su respuesta ... me parece que sí, pero esa es su decisión.)
Eliah Kagan

9

¿Sabía que hay un complemento de Nautilus llamado nautilus-gksuInstalar nautilus-gksu que agrega un "abrir como administrador" al menú de clic derecho de nautilus?

Nota: No disponible en Ubuntu 12.04 y versiones posteriores.


1
nautilus-gksuya no está disponible desde Ubuntu 12.04 en adelante.
IQAndreas

Y su enlace solo muestra que está disponible hasta las 11.10 ...
Wilf

5

Si inicia una aplicación gráfica con sudo, puede arruinar la propiedad de sus archivos, lo que puede hacer que sus aplicaciones se rompan. Nunca hagas eso. Consulte la Ayuda de la comunidad :

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 que los archivos en su directorio de inicio sean propiedad de Root. (AFAICT, esto es todo lo que es especial sobre el entorno del proceso iniciado con gksudo vs. sudo).


3

sudo por defecto conserva su variable $ HOME. Por ejemplo, si ejecuta sudo firefox, ejecutará con privilegios de root pero su configuración. Si cambia la configuración en esta situación, terminará con partes de su configuración propiedad de root en lugar de su ID de usuario.


Me gusta la asertividad de esta respuesta.
Andre Figueiredo

2

sudo -H GUI-application-program

En Ubuntu (17.10) 17.10.1 y probablemente futuras versiones de Ubuntu, gksuy gksudoestán en desuso. Trabajan en Xorg pero no en Wayland. Pero puede usar sudo -Hpara ejecutar programas de aplicación GUI sin dañar sus archivos de configuración. No , no usar sin formato sudo.

Si está ejecutando Wayland (el nuevo sistema gráfico que reemplaza a Xorg), también necesita un comando con xhost.

xhost +si:localuser:root       # if Wayland
sudo -H nautilus --no-desktop

Vea el siguiente enlace para más detalles,

¿Por qué gksu / gksudo o lanzar una aplicación gráfica con sudo no funcionan con Wayland?


-2

Encontrado en el archivo generado por el comando de terminal 'info gksudo':

gksu es un front-end para su y gksudo es un front-end para sudo. Su propósito principal es ejecutar comandos gráficos que necesitan root sin la necesidad de ejecutar un emulador de terminal X y usar su directamente.

He descubierto que, en muchos casos, los archivos de 'información' tienen descripciones útiles, así como información útil sobre las opciones. Sugeriría encarecidamente que aprender sobre cualquier comando primero comience por acceder al archivo 'info' en ese comando.

Para el principiante, en la terminal, escriba o pegue la información del comando con el nombre del comando que le interesa como parámetro. El formato es info [command_name](recuerde no incluir el símbolo del sistema o los corchetes). Las entradas de terminal sugeridas para el principiante son:

$ info
$ info info

-3

Si elige gksudo nautilus, le pedirá su contraseña gráficamente. Con sudo, lo pides en una terminal


66
Esa no es la única diferencia, y a menudo no es la diferencia más importante. (Vea algunas de las otras respuestas aquí.)
Eliah Kagan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.