Я сделал скрипт bash, который использует kdialog исключительно для взаимодействия с пользователем. Он запускается из файла ".desktop", поэтому пользователь никогда не видит терминал. Он выглядит на 100% как приложение с графическим интерфейсом (хотя это всего лишь скрипт bash). Он работает только в KDE (Kubuntu 12.04).
Моя единственная проблема - безопасно и удобно обрабатывать ввод пароля . Я не могу найти удовлетворительное решение.
Сценарий был разработан для запуска в качестве обычного пользователя и запроса пароля, когда команда sudo требуется в первый раз. Таким образом, большинство команд, не требующих прав sudo, запускаются как обычный пользователь. Что происходит (когда скрипт запускается из терминала), так это то, что у пользователя запрашивается пароль один раз, а тайм-аут sudo по умолчанию позволяет скрипту завершиться, включая любые дополнительные команды sudo, без повторного запроса пользователя. Вот как я хочу, чтобы это работало при запуске за GUI тоже.
Основная проблема заключается в том, что использование kdesudo
для запуска моего сценария, который является стандартным способом графического интерфейса пользователя, означает, что весь сценарий выполняется пользователем root. Таким образом, владельцы файлов назначаются пользователю root, на которые я не могу положиться ~/
в путях, и многие другие вещи не идеальны. Выполнение всего скрипта от имени пользователя root - это просто очень неудовлетворительное решение, и я считаю, что это плохая практика.
Я ценю любые идеи, позволяющие пользователю вводить пароль sudo только один раз через графический интерфейс, при этом не запуская весь сценарий от имени пользователя root. Спасибо.