Судо, похоже, сохраняет $ HOME и $ PATH для "пользовательского" дома и пути вместо корневых параметров среды. Это действие привело к проблемам для «пользователя», и большинство экспертов утверждают, что вы не должны запускать графические приложения X с помощью sudo, а вместо этого следует использовать gksudo.
Графические приложения обычно хранят файлы .config в $ HOME. Если вы запускаете графическое приложение с помощью sudo, файлы конфигурации в домашнем каталоге «пользователя» будут созданы (или, если они существуют, могут быть перезаписаны) учетной записью root.
Когда вы вернетесь из sudo, вы можете обнаружить, что ваши приложения сломаны, поскольку обычные пользователи не могут получить доступ к файлам конфигурации, созданным root.
Правильный способ для вашего случая должен заключаться в том, чтобы продолжать использовать ваше приложение в качестве «пользователя» и хранить файлы в месте, к которому у «пользователя» есть доступ.
Кстати, gksudo -k
, похоже, сохраняет пользовательские настройки в моих тестах в Debian:
gv@debian:~/Desktop/PythonTests$ echo $USER-$HOME-$PATH
gv-/home/gv-/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
gv@debian:~/Desktop/PythonTests$ ./oneshot.sh
You run this script as USER=gv
Your HOME dir is /home/gv
Your PATH is /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
gv@debian:~/Desktop/PythonTests$ gksudo ./oneshot.sh
You run this script as USER=root
Your HOME dir is /root
Your PATH is /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
gv@debian:~/Desktop/PythonTests$ gksudo -k ./oneshot.sh
You run this script as USER=root
Your HOME dir is /home/gv
Your PATH is /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
gv@debian:~/Desktop/PythonTests$ cat oneshot.sh
#!/bin/bash
echo "You run this script as USER=$USER"
echo "Your HOME dir is $HOME"
echo "Your PATH is $PATH"
exit 0