Как я могу запустить Perl-скрипт от имени пользователя root, но все же повлиять на настройки gconf
==================================================================================================

НОВЫЙ ЗАПРОС: Я пытаюсь создать единый сценарий, который инициализирует новую установку Ubuntu по своему вкусу, для установки пакетов он должен запускаться под sudo, но использование gconftool-2 для влияния на настройку gconf опирается на сеанс dbus, который не обрабатывается правильно методом простого изменения UID только в скрипте. Кто-нибудь знает, как это сделать?

СТАРЫЙ ЗАПРОС: Я пишу сценарий Perl, который будет выполняться при первой загрузке новой установки Ubuntu. Это облегчает добавление репозиториев, установку пакетов и настройку параметров gconf. Моя проблема - разрешения. Для установки пакетов мне нужно, чтобы скрипт выполнялся как sudo, но затем вызов gconftool-2 действует от имени пользователя root, а не от моего личного пользователя.

После долгих чтений, проб и ошибок кажется, что при запуске скрипта от имени root отсутствует то, что переменная среды DBUS\_SESSION\_BUS\_ADDRESS не установлена. Это должно быть установлено И UID изменен на пользовательский, прежде чем настройки gconf могут быть установлены. Это мой тестовый скрипт, который я использовал, чтобы опробовать его. Выполните один или другой системный вызов в конце, чтобы изменить порядок кнопок окна. Попробуйте скрипт как пользователь или как root (sudo), чтобы увидеть, что он работает.

Примечание: есть хорошая информация[Вот](https://ubuntuforums.org/showthread.php?t=1530586).



Вы можете изменить UID в середине скрипта, изменив UID с помощью`POSIX::setuid()` (увидеть[Perldoc POSIX](https://perldoc.perl.org/POSIX.html#setuid)):



Вы можете снова использовать sudo для удаления своих привилегий root, таких как: