Я знаю, что я не root, потому что я не могу просматривать пакеты. Во-первых, я знаю оэтотстраницу, но она у меня не работает. После выполнения этих инструкций я получаю приглашение при открытии Sublime из Unity, но я все еще не могу просматривать пакеты. Если я открываю sublime с помощью gksu subl
терминала, ничего не происходит. Если я sudo subl
это делаю, он открывается, и я могу просматривать пакеты. Можно ли открывать sublime как sudo каждый раз вместо gksu?
Редактировать: На самом деле, когда я открываю Sublime из Unity, он запрашивает пароль, а затем вообще не открывается.
Редактировать: gksudo subl
имеет тот же эффект, что и gksu. Я установил Sublime с веб-сайта (нажал на ссылку Ubuntu 64, он загрузился, нажал на загрузку, он перенаправил меня в Центр программного обеспечения). "which subl" возвращает /usr/bin/subl
. gksu установлен. Glutanimate, да, это то, что я имею в виду. Есть идеи, что тогда происходит? Я могу просматривать их, только если использую 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;
решение1
Если gksu
/ gksudo
не работает или недоступен, вы можете использовать вместо него.sudo -H
Если вы запускаете графическую программу sudo
вместо gksu
/ gksudo
, вам следует использовать sudo -H ...
(или sudo -i ...
) вместо просто sudo ...
.
sudo -H subl
sudo -i subl
(Ни простой sudo ...
, ни эти способы обычно не работают из панели управления Unity, поскольку им нужен терминал, на котором будет запрашиваться ваш пароль. Но вы можете запустить их из терминала.)
Основная причина, по которой этосчитается плохимдля запуска графической программы с нормальным режимом работы sudo
это то, что приложение запускается с HOME
переменной окружения, установленной на домашний каталог не-root-вызывающего ( ), а не на домашний каталог root-пользователя ( ). Это часто/home/username
/root
приводит к тому, что файлы конфигурации, которые должны принадлежать обычному пользователю, вместо этого принадлежат пользователю root(и недоступны).
Запуск sudo
с этим -H
флагом предотвращает это, гарантируя, что вместо этого будет использоваться домашний каталог root.
sudo -i
делает это и даже больше: он запускает программу в сеансе с имитацией входа в систему root. Я не знаю никаких веских причин предпочесть один или другой из sudo -H
и sudo -i
, когда цель состоит только в том, чтобы запускать графические программы как root без проблем.