
Если я выполню следующую команду, текстовый файл откроется в моем любимом редакторе (kate).
$ xdg-open text_file
Однако если я попробую выполнить следующее: где sparhawk
мое имя пользователя? Я получу несколько предупреждений, и вместо этого откроется jbidwatcher.
$ sudo -u sparhawk xdg-open text_file
В чем разница?
Фон
У меня есть скрипт, запущенный udev, который, следовательно, будет запущен как root. Я пытаюсь открыть файл журнала, используя редактор пользователя по умолчанию.
Вот еще несколько выводов, которые могут быть полезны.
$ xdg-mime query default text/plain
kate.desktop
$ sudo -u sparhawk xdg-mime query default text/plain
jbidwatcher.desktop
$ sudo -iu sparhawk xdg-mime query default text/plain
jbidwatcher.desktop
$ sudo -Eu sparhawk xdg-mime query default text/plain
kate.desktop
$ sudo -iEu sparhawk xdg-mime query default text/plain
jbidwatcher.desktop
Я также попытался провести тестирование после sudo -i
. Во всех случаях вывод был jbidwatcher.desktop
.
решение1
sudo
изменяет окружающую среду.
Пытаться
printenv
и sudo -u sparhawk printenv
увидеть разницу.