Quelle est la difference entre “gksudo nautilus” et “sudo nautilus”?

100

J'ai utilisé gksudo nautiluset à sudo nautilustravers Alt+ F2.

Quelle est la différence? Ils ressemblent beaucoup!

DrKenobi
la source
une explication / discussion très utile comprenant de nombreuses captures d'écran: psychocats.net/ubuntu/graphicalsudo
noisette à propos de natty

Réponses:

113

Tiré d' ici :

Vous ne devriez jamais utiliser normal sudopour démarrer des applications graphiques en tant que root. Vous devriez utiliser gksudo( kdesudosur Kubuntu) pour exécuter de tels programmes. gksudodéfinit HOME=/rootet copie .Xauthoritydans un tmprépertoire. Cela évite que les fichiers de votre répertoire personnel ne deviennent la propriété de root.

Veuillez noter qu'il s'agit principalement de fichiers de configuration . Si vous exécutez Nautilus en tant que root, même avec gksu/ gksudo, et que vous créez un fichier ou un dossier n’importe où avec lui (y compris dans votre répertoire personnel), ce fichier ou ce dossier sera la propriété de root. Mais si vous exécutez Nautilus (ou la plupart des autres applications graphiques) comme rootavec sudo, ils peuvent enregistrer leurs fichiers de configuration dans votre répertoire personnel (plutôt que dans rootle répertoire personnel de). Ces fichiers de configuration peuvent appartenir à rootet être inaccessibles lorsque vous n’exécutez pas en tant que root, ce qui peut gâcher gravement vos paramètres et peut même empêcher certaines applications de fonctionner complètement.

La solution, une fois que vous avez commis cette erreur, consiste à rechercher les fichiers de configuration et à les supprimer ou à chownles ramener à votre non- rootutilisateur. Beaucoup de ces fichiers commencent par un .ou sont contenus dans un répertoire qui commence par un .. Certains sont situés dans le .configdossier de votre répertoire personnel. Pour voir les fichiers et les dossiers commençant par un .dans Nautilus, appuyez sur Ctrl+ H(les fichiers cachés s'affichent .) Pour les afficher ls, utilisez l' indicateur -a(ou -A).

Pour savoir s’il existe des fichiers ne vous appartenant pas dans votre répertoire personnel, vous pouvez utiliser la commande suivante dans un terminal:

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

qui listera tous les fichiers du répertoire de base n'appartenant pas à l'utilisateur.

Rmano
la source
1
J'ai déjà utilisé 'sudo nautilus'. Cela signifie que mon répertoire personnel appartient maintenant à root? (PS: mon anglais n'est pas parfait)
DrKenobi
22
Non, cela signifie que pendant que vous exécutiez Nautilus en tant que root, tous les fichiers créés dans votre répertoire personnel appartiendront à root. Cela peut inclure des vignettes et d’autres fichiers de support créés automatiquement par Nautilus.
Ryan Thompson
1
. Le segemnet cité que vous avez utilisé m'a laissé perplexe depuis que je l'ai lu pour la première fois; en particulier là où il est écrit: "Cela empêche les fichiers de votre répertoire personnel de devenir la propriété de root." .. J'ai testé cela aujourd'hui en créant des fichiers de test, le 10.04, 10.04 (VM), 10.10 (VM), et peu importe comment j'ai commencé sudo / gksudo (Terminal-> Nautilus, Terminal-> gedit, Alt + F2 .. .) ... tous les cas ont fait que ma nouvelle création appartient à "root", avec le groupe "root" .. Peut-être ai-je raté quelque chose, mais je pense qu'une partie du segment cité trompe les gens ...
Peter. O
Hmm, je viens de citer la page du wiki. Je ne comprends pas vraiment la différence entre les deux outils. Peut-être que quelqu'un sur unix.stakexchange.com peut vous aider?
2
@ Peter.O J'ai développé cette réponse pour répondre à cette question et expliquer exactement quels fichiers sont traités différemment avec sudo, via gksu/ gksudo. (@ChrisWilson N'hésitez pas à annuler ou à raccourcir cette modification si vous estimez que ce n'est pas tout à fait dans le cadre de votre réponse ... il me semble que oui, mais c'est tout à fait votre appel.)
Eliah Kagan
9

Saviez-vous qu'il existe un add-on de Nautilus appelé nautilus-gksuInstaller Nautilus-Gksu qui ajoute un "ouvrir en tant qu'administrateur" au menu contextuel de nautilus?

Remarque: non disponible dans Ubuntu 12.04 et les versions ultérieures.

robin0800
la source
1
nautilus-gksun’est plus disponible à partir d’Ubuntu 12.04 et ultérieur.
IQAndreas
Et votre lien indique uniquement qu'il est disponible jusqu'au 11.10 ...
Wilf
5

Si vous démarrez une application graphique avec sudo, vous risquez de gâcher la propriété de vos fichiers, ce qui risquerait de casser vos applications. Ne fais jamais cela. Consultez l' aide de la communauté :

Vous ne devriez jamais utiliser sudo normal pour lancer des applications graphiques en tant que racine . Vous devriez utiliser gksudo (kdesudo sur Kubuntu) pour exécuter de tels programmes. gksudo définit HOME = ~ root et copie .Xauthority dans un répertoire tmp. Cela évite que les fichiers de votre répertoire personnel ne deviennent la propriété de Root. (AFAICT, c’est tout ce qui fait la spécificité de l’environnement du processus démarré avec gksudo vs sudo).

desgua
la source
3

sudo par défaut préserve votre variable $ HOME. Par exemple, si vous exécutez, sudo firefoxvous utiliserez des privilèges root, mais votre configuration. Si vous modifiez les paramètres dans cette situation, vous obtiendrez des parties de votre configuration appartenant à root et non à votre ID utilisateur.

Mark Russell
la source
J'aime l'assertivité de cette réponse.
Andre Figueiredo
2

sudo -H GUI-application-program

Dans Ubuntu (17.10) 17.10.1 et probablement futures versions d'Ubuntu, gksuet gksudosont déconseillés. Ils travaillent à Xorg mais pas à Wayland. Mais vous pouvez utiliser sudo -Hpour exécuter des programmes d’application graphique sans endommager vos fichiers de configuration. Ne pas utiliser nature sudo.

Si vous utilisez Wayland (le nouveau système graphique qui remplace Xorg), vous avez également besoin d’une commande xhost.

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

Voir le lien suivant pour plus de détails,

Pourquoi ne pas gksu / gksudo ou le lancement d’une application graphique avec sudo ne fonctionne pas avec Wayland?

sudodus
la source
-2

Trouvé dans le fichier généré par la commande de terminal 'info gksudo':

Gksu est une interface pour Su et Gksudo est une interface pour Sudo. Leur objectif principal est d'exécuter des commandes graphiques nécessitant un accès root sans avoir à exécuter un émulateur de terminal X et à utiliser directement su.

J'ai constaté que, dans de nombreux cas, les fichiers «info» contiennent des descriptions utiles ainsi que des informations utiles sur les options. Je suggérerais fortement que l'apprentissage d'une commande commence par accéder au fichier 'info' de cette commande.

Pour le débutant, dans le terminal, tapez ou collez les informations de commande avec le nom de la commande qui vous intéresse en tant que paramètre. Le format est info [command_name](n'oubliez pas de ne pas inclure l'invite de commande ou les crochets). Les entrées de terminal suggérées pour le débutant sont:

$ info
$ info info
James
la source
-3

Si vous choisissez gksudo nautilus, vous demandez graphiquement votre mot de passe. Avec sudo, vous le demandez dans un terminal

winniemiel05
la source
6
Ce n'est pas la seule différence, et souvent ce n'est pas la différence la plus importante. (Voir d'autres réponses ici.)
Eliah Kagan