Как мне сослаться на оригинальную команду, чтобы я мог заменить ее функцией

Судо, похоже, сохраняет $ 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
1
10.08.2016, 01:17
0 ответов

Теги

Похожие вопросы