Las aplicaciones gráficas a menudo almacenan configuraciones y otros datos específicos del usuario en archivos de configuración escritos dentro de la carpeta de inicio del usuario . El principal mecanismo que usan las aplicaciones para determinar qué deben usar como carpeta de inicio del usuario es la HOME
variable de entorno . (Puede inspeccionarlo usted mismo echo $HOME
).
Supongamos que está ejecutando gedit
(un editor de texto gráfico) como root
. Si ejecuta sudo gedit
, HOME
continuará apuntando hacia su directorio de inicio, aunque el programa se esté ejecutando comoroot
. En consecuencia, gedit
escribirá los archivos de configuración comoroot
en su directorio de inicio. Esto a veces dará como resultado que los archivos de configuración sean de su propiedadroot
y, por lo tanto, inaccesibles para usted (cuando luego ejecute el programa como usted mismo y no como root
). Esto sucede principalmente cuando la aplicación tiene que crear un nuevo archivo de configuración. Los archivos recién creados, por defecto, son propiedad del usuario que los crea (quien en este caso es root
usted, no usted).
Esa es la razón principal por la que debe ejecutar aplicaciones gráficas con una interfaz sudo
gráfica en lugar de una recta sudo
. En Ubuntu y la mayoría de sus derivados (incluidos Xubuntu y Lubuntu), la interfaz gráfica estándar es gksu
/gksudo
. En Kubuntu lo es kdesudo
. (Depende del entorno de escritorio que se use).
Si desea usar sudo
directamente para ejecutar una aplicación gráfica como gedit
, puede ejecutar:
sudo -H gedit
El -H
indicador sudo
establece HOME
que apunte a root
la carpeta de inicio de (que es /root
).
Eso todavía no manejará automáticamente la propiedad .Xauthority
copiándola en una carpeta temporal (esto es otra cosa que las interfaces gráficas sudo
se encargan de usted). Pero en el caso poco frecuente que .Xauthority
es inaccesible, recibirá un error que dice que sí, y luego puede solucionar el problema eliminándolo ( sudo rm ~/.Xauthority
), ya que se regenera automáticamente. Por lo tanto, proteger .Xauthority
la propiedad y los permisos es menos importante que proteger la propiedad y los permisos de los archivos de configuración.
A diferencia de una root
participada .Xauthority
, cuando los archivos de configuración se convierten en propiedad como root
, no siempre es tan evidente cuál es el problema (ya que los programas gráficos a menudo se ejecutarán, pero no funciona muy bien, y la salida de los errores útiles a la consola). Y a veces es una molestia más grande solucionarlo, especialmente si se encuentra en una situación en la que desea que uno o más archivos en su directorio principal sean propiedad de otra persona que no sea usted (porque entonces no puede solucionarlo simplemente recursivamente chown
todos sus archivos de vuelta a ti mismo).
Por lo tanto, sudo
(al menos sin -H
) no debe usarse para ejecutar una aplicación gráfica a menos que esté muy familiarizado con el funcionamiento interno de la aplicación y sepa con certeza que nunca intentará escribir ningún archivo de configuración.