Я записал пользовательский .desktop файл, который содержит Исполнительную строку
#!/usr/bin/env xdg-open
[Desktop Entry]
(...)
Exec=gksudo /my/path/to/bash_script.sh
(...)
Этот сценарий запускает некоторые вызовы zenity.
Затем я сделал этот файл на рабочем столе для появления в единице 2-й боковой панели средства запуска.
Моей проблемой является каждый раз, когда я использую этот ярлык средства запуска, который это продолжает просить мой пароль... В то время как ожидаемое поведение состоит в том, чтобы спросить однажды, затем помните в течение некоторого времени. Это действовало как этот в гноме / Lucid, таким образом, что-то изменилось, но что?
(Я также попробовал '-k' опция, но не изменяю мою проблему),
Если попытка, что командная строка от терминала (как мой обычный пользователь)
gksudo /my/path/to/bash_script.sh
Это работает как ожидаемый (=same поведение как в Lucid): спрашивает пароль только относительно первого запуска.
Что я пропускаю здесь?
Это абсолютно нормально. В терминале у вас всегда один и тот же «сеанс», поэтому он запоминает аутентификацию, но это не то же самое с лаунчером .desktop.
Я бы порекомендовал вам просто добавить файл в /etc/sudoers.d (назовите его my_script или что-то в этом роде), чтобы вы всегда могли использовать свою команду без пароля (если ваш скрипт не принимает аргументы, которые должны быть безопасными) - но делаете это на свой страх и риск :
Создайте новый файл со следующим содержанием
your_username ALL=(ALL) NOPASSWD: /my/path/to/bash_script.sh
Когда я тестировал это с gksu, это работало сразу после этого, но если это не так, попробуйте войти в систему и выйти снова или перезагрузиться.
Насколько я знаю, это среда терминала, которая запоминает пароль в течение определенного времени.
Например, команда
gksudo nautilus
в терминале будет запрашивать пароль только один раз за определенный период времени. Хотя одна и та же команда в панели запуска alt kbd> + f2 kbd> запрашивает ее каждый раз.
В любом случае, если вы хотите запустить что-то от имени пользователя root, это не так уж странно, он будет каждый раз спрашивать ваш пароль. Таким образом, вы знаете, что будете выполнять команду от имени пользователя root.