web-dev-qa-db-fra.com

Comment puis-je exécuter Sublime Text 3 en tant que root à partir de Unity?

Je sais que je ne suis pas root car je ne peux pas parcourir les packages. Premièrement, je suis au courant de this page, mais cela ne fonctionne pas pour moi. Après avoir suivi ces instructions, je reçois l'invite lorsque j'ouvre Sublime à partir de Unity, mais je ne suis toujours pas en mesure de parcourir les packages. Si j'ouvre sublime en utilisant gksu subl dans le terminal, rien ne se passe. Si je fais Sudo subl il s'ouvre et je peux parcourir les paquets. Est-il possible d'ouvrir chaque fois sublime Sudo au lieu de gksu?

Edit: En fait, lorsque j'ouvre sublime de Unity, il demande le mot de passe, puis ne s'ouvre pas du tout.

Edit: gksudo subl a le même effet que gksu. J'ai installé Sublime à partir du site Web (j'ai cliqué sur le lien Ubuntu 64, téléchargé, puis cliqué sur le téléchargement, cela m'a amené au Centre de logiciels). "which subl" renvoie /usr/bin/subl. gksu est installé. Glutanimate, oui c'est ce que je veux dire. Une idée de ce qui se passe alors? Je ne peux les parcourir que si j'utilise Sudo.

/usr/share/applications/sublime-text.desktop:

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=Sublime Text
GenericName=Text Editor 
Comment=Sophisticated text editor for code, markup and prose 
Exec=gksu /opt/sublime_text/sublime_text %F
Terminal=false 
MimeType=text/plain; 
Icon=sublime-text
Categories=TextEditor;Development; 
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window] 
Name=New Window
Exec=/opt/sublime_text/sublime_text -n 
OnlyShowIn=Unity;

[Desktop Action Document] 
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;
2
michaelAdam

Lorsque gksu/gksudo ne fonctionne pas ou est indisponible, vous pouvez utiliser Sudo -H à la place.

Si vous exécutez un programme graphique avec Sudo au lieu de gksu/gksudo, vous devez utiliser Sudo -H ... (ou Sudo -i ...) au lieu de Sudo ... .

Sudo -H subl
Sudo -i subl

(Ni Plain Sudo ..., ni ces méthodes ne fonctionneront généralement à partir du tiret Unity, car ils ont besoin d'un terminal sur lequel vous demander votre mot de passe. Mais vous pouvez les exécuter à partir du terminal.)

La principale raison pour considéré comme mauvais d'exécuter un programme graphique avec Sudo normal est que cela exécute l'application avec sa variable d'environnement HOME définie sur le répertoire de base de l'appelant non root (/home/username) plutôt que le répertoire de base de la racine (/root). C'est souvent le cas les fichiers de configuration qui appartiennent à l'utilisateur normal doivent plutôt appartenir à root (et sont inaccessibles).

L'exécution de Sudo avec l'indicateur -H l'empêche en s'assurant que le répertoire de base de root est utilisé à la place.

Sudo -i fait ceci et plus encore: il exécute un programme dans une session de connexion root simulée. Je ne connais aucune raison forte de préférer l'une ou l'autre de Sudo -H et Sudo -i, alors que l'objectif est simplement d'exécuter des programmes graphiques en tant que root sans problèmes.

4
Eliah Kagan