À partir de la version 19.10 d'Ubuntu, l'avertissement de la section cet article (et dans cette réponse) ne s'applique plus. Voir La réponse de WinEunuuchs2Unix ainsi que cette question .
Les applications graphiques stockent souvent les paramètres et d'autres données spécifiques à l'utilisateur dans des fichiers de configuration écrits à l'intérieur de l'ordinateur de l'utilisateur. dossier personnel . Le principal mécanisme utilisé par les applications pour déterminer ce qu'elles doivent utiliser comme dossier d'accueil de l'utilisateur est la fonction HOME
variable d'environnement . (Vous pouvez l'inspecter vous-même avec echo $HOME
).
Supposons que vous exécutez gedit
(un éditeur de texte graphique) comme root
. Si vous exécutez [sudo](http://manpages.ubuntu.com/sudo.8) gedit
, HOME
continuera à pointer vers votre répertoire personnel, même si le programme est en cours d'exécution comme root
. Par conséquent, gedit
écrira les fichiers de configuration comme root
dans votre répertoire personnel. Ce site entraînera parfois dans les fichiers de configuration étant appartenant à par root
et donc inaccessible pour vous (lorsque vous exécutez plus tard le programme en tant que vous-même et non en tant que root
). Cela se produit principalement lorsque l'application doit créer un nouveau fichier de configuration. Les fichiers nouvellement créés, par défaut, appartiennent à l'utilisateur qui les a créés (qui dans ce cas est root
pas vous).
C'est la raison principale pour laquelle vous devriez exécuter des applications graphiques avec un logiciel de gestion des graphiques. sudo
plutôt qu'avec une simple sudo
. Dans Ubuntu et la plupart de ses dérivés (y compris Xubuntu et Lubuntu), le frontal graphique standard est le suivant gksu
/ gksudo
. Dans Kubuntu, c'est kdesudo
. (Cela dépend de la environnement de bureau utilisé).
Si vous wollen を使用する。 sudo
directement pour exécuter une application graphique comme gedit
tu peux courir :
sudo -H gedit
El -H
le drapeau fait sudo
set HOME
pour pointer vers root
Le dossier personnel de l'utilisateur (qui est /root
).
Cela ne permet toujours pas de gérer automatiquement la propriété de .Xauthority
en le copiant dans un dossier temporaire (c'est l'autre chose que les graphistes ne peuvent pas faire). sudo
Les frontends s'en chargent pour vous). Mais dans le cas peu fréquent où .Xauthority
est inaccessible, vous obtiendrez un message d'erreur indiquant qu'il l'est, et vous pourrez alors résoudre le problème en le supprimant ( sudo rm ~/.Xauthority
), car il est automatiquement régénéré. Ainsi, la protection .Xauthority
La protection de la propriété et des permissions des fichiers de configuration est moins importante que la protection de la propriété et des permissions des fichiers de configuration.
Contrairement à un root
-propriété .Xauthority
lorsque les fichiers de configuration deviennent la propriété de root
il n'est pas toujours évident d'identifier le problème (parce que les programmes graphiques fonctionnent souvent, mais pas très bien, et affichent toutes les erreurs utiles dans la console). Et il est parfois plus difficile de le résoudre, surtout si l'on considère que si vous souhaitez qu'un ou plusieurs fichiers de votre répertoire personnel appartiennent à quelqu'un d'autre que vous (parce qu'alors vous ne pouvez pas le corriger simplement en récursivement chown
en vous rendant tous vos fichiers).
Par conséquent, sudo
(au moins sans -H
) ne doit pas être utilisé pour exécuter une application graphique. sauf si vous connaissez parfaitement le fonctionnement interne de l'application et êtes certain qu'elle ne tente jamais d'écrire des fichiers de configuration.