Ich weiß, dass ich kein Root bin, weil ich keine Pakete durchsuchen kann. Erstens bin ich mir bewusst,DasSeite, aber es funktioniert bei mir nicht. Nachdem ich diese Anweisungen befolgt habe, erhalte ich die Eingabeaufforderung, wenn ich Sublime von Unity aus öffne, aber ich kann immer noch keine Pakete durchsuchen. Wenn ich Sublime gksu subl
im Terminal öffne, passiert nichts. Wenn ich sudo subl
es tue, öffnet es sich und ich kann Pakete durchsuchen. Ist es in Ordnung, Sublime jedes Mal als sudo statt als gksu zu öffnen?
Bearbeiten: Tatsächlich werde ich zur Eingabe des Kennworts aufgefordert, wenn ich Sublime von Unity aus öffne, und es öffnet sich dann überhaupt nicht.
Bearbeiten: gksudo subl
hat die gleiche Wirkung wie gksu. Ich habe Sublime von der Website installiert (habe auf den Ubuntu 64-Link geklickt, es wurde heruntergeladen, auf den Download geklickt, es führte mich zum Software Center). „which subl“ gibt zurück /usr/bin/subl
. gksu ist installiert. Glutanimate, ja, das meine ich. Irgendeine Idee, was dann passiert? Ich kann sie nur durchsuchen, wenn ich sudo verwende.
/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;
Antwort1
Wenn gksu
/ gksudo
nicht funktioniert oder nicht verfügbar ist, können Sie stattdessen verwenden.sudo -H
Wenn Sie ein grafisches Programm mit sudo
statt gksu
/ ausführen gksudo
, sollten Sie sudo -H ...
(oder sudo -i ...
) statt nur verwenden sudo ...
.
sudo -H subl
sudo -i subl
(Weder die einfache sudo ...
noch diese anderen Methoden funktionieren normalerweise über das Unity-Dashboard, da hierfür ein Terminal erforderlich ist, auf dem Sie zur Eingabe Ihres Kennworts aufgefordert werden. Sie können sie jedoch über das Terminal ausführen.)
Der Hauptgrund dafür istals schlecht angesehenum ein grafisches Programm mit normal auszuführen, sudo
ist, dass dies die Anwendung mit der HOME
Umgebungsvariable auf das Home-Verzeichnis des nicht-root-Anrufers ( ) anstatt auf das Home-Verzeichnis des root-Anrufers ( ) setzt. Das ist oft/home/username
/root
bewirkt, dass Konfigurationsdateien, die dem normalen Benutzer gehören sollten, stattdessen dem Root-Benutzer gehören(und unzugänglich).
Durch Ausführen sudo
mit dem -H
Flag wird dies verhindert, indem sichergestellt wird, dass stattdessen das Home-Verzeichnis von Root verwendet wird.
sudo -i
tut dies und mehr: Es führt ein Programm in einer simulierten Root-Anmeldesitzung aus. Mir sind keine triftigen Gründe bekannt, das eine oder das andere von sudo -H
und vorzuziehen sudo -i
, wenn das Ziel nur darin besteht, grafische Programme problemlos als Root auszuführen.