Я создал значок на рабочем столе для gddccontrol, но выполнять его я должен выполнить его от sudo. Есть ли способ выполнить команду от значка на рабочем столе как,
sudo -pPASSWORD gddccontrol
таким образом, это не попросит у меня пароля в терминале?
Я просто хочу щелчок и выполняю его с sudo полномочиями.
[Desktop Entry]
Type=Application
Name=GDDCControl
Terminal=false
Comment=gddccontrol ddccontrol
Exec=sudo -pPASSWORD gddccontrol
Icon=~/Pictures/10429.png
Когда я выполняю значок от терминала со следующей командой Exec, это работает хорошее, но это не работает в Средстве запуска :(
Exec=echo mypasswd | sudo -S gddccontrol
НИКОГДА не используют Ваш пароль, сохраненный в .desktop
файл. Это ужасно небезопасно.
, Кроме того, Вы не можете выполнить сложные команды в .desktop
файл точно так же, как это, но это - другой предмет.
, у Вас есть несколько опций:
Добавляют gddccontrol
к sudoers
файл, как объяснено, например, здесь . Это может быть сделано, если Вы уверены, что приложение не может использоваться, чтобы сделать злонамеренные вещи.
Затем использование
Exec=sudo gddccontrol
в Exec=
- строка
Другая опция состоит в том, чтобы заменить Exec=
строка:
Exec=gksu gddccontrol
В этом случае, после того как Вы нажимаете значок, Вам предложат ввести Ваш пароль через gui.
возможно необходимо установить gksu
:
sudo apt-get install gksu
Используя sudo
по определению запросит запрос пароля. То, что необходимо сделать, должно предоставить, выполняют полномочия пользователю. Я не уверен, где та программа расположена, но ради этого ответа, давайте предположим, что это /usr/bin/
.
В терминале выполняет это:
sudo chmod o+x /usr/bin/gddccontrol
, Что команда предоставляет пользователи o ther (как Вы) право на execute программа без потребности в разрешении.
Затем в .desktop файле, просто используйте:
Exec=gddccontrol
Я против пароля жесткого кодирования в файле простого текста, таким образом, я могу думать о двух возможных решениях:
делают редактирование в масштабе всей системы, которое каждая команда, данная Вашим пользователем с sudo, работал как суперпользователь, не запрашивая пароль. Можно узнать, как в этот ответ
, Если Вы не хотите sudo
команды всегда выполняться с подсказкой пароля, использованием лучшей практики gksu
перед Вашей командой для запроса пароль в графическом окне вместо того, чтобы писать необработанный пароль в файле.
Откройте терминал и выполните эту команду
cd /usr/share/applications
После этого запустите эту команду
sudo gedit application.desktop
и скопируйте и вставьте следующее для x64-битных машин
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/lampp/htdocs/favicon.ico
Exec=sudo /opt/lampp/manager-linux-x64.run
Comment[en_US]=start xampp manager
Name[en_US]=xampp
Name=xampp
Comment= start xampp application
Замените
Exec=sudo /opt/lampp/manager-linux-x64.run
путем приложения, которое вы хотите запустить для моего в случае, если это менеджер xampp
Замените
Icon[en_US]=/opt/lampp/htdocs/favicon.ico
путь к значку вашего приложения.
Сохраните файл и выполните приведенную ниже команду
sudo visudo
Добавьте следующую строку в конец файла
<your-username> ALL = NOPASSWD: <path of application>
Введите свое имя пользователя и вставьте путь к вашему приложению, не включая угловые скобки, подобные этой
nelson ALL = NOPASSWD: /opt/lampp/manager-linux-x64.run
Сохраните файл файл и проверьте свои приложения, он там.
Надеюсь, это поможет.