Как выполнить .desktop значок от sudo

Я создал значок на рабочем столе для 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
10
задан 20 August 2016 в 07:36

4 ответа

НИКОГДА не используют Ваш пароль, сохраненный в .desktop файл. Это ужасно небезопасно.

, Кроме того, Вы не можете выполнить сложные команды в .desktop файл точно так же, как это, но это - другой предмет.

, Что сделать

, у Вас есть несколько опций:

  1. Добавляют gddccontrol к sudoers файл, как объяснено, например, здесь . Это может быть сделано, если Вы уверены, что приложение не может использоваться, чтобы сделать злонамеренные вещи.

    Затем использование

    Exec=sudo gddccontrol
    

    в Exec= - строка

  2. Другая опция состоит в том, чтобы заменить Exec= строка:

    Exec=gksu gddccontrol
    

    В этом случае, после того как Вы нажимаете значок, Вам предложат ввести Ваш пароль через gui.
    возможно необходимо установить gksu:

    sudo apt-get install gksu
    
17
ответ дан 23 November 2019 в 04:21

Используя sudo по определению запросит запрос пароля. То, что необходимо сделать, должно предоставить, выполняют полномочия пользователю. Я не уверен, где та программа расположена, но ради этого ответа, давайте предположим, что это /usr/bin/.

В терминале выполняет это:

sudo chmod o+x /usr/bin/gddccontrol

, Что команда предоставляет пользователи o ther (как Вы) право на execute программа без потребности в разрешении.

Затем в .desktop файле, просто используйте:

Exec=gddccontrol
4
ответ дан 23 November 2019 в 04:21

Я против пароля жесткого кодирования в файле простого текста, таким образом, я могу думать о двух возможных решениях:

  1. делают редактирование в масштабе всей системы, которое каждая команда, данная Вашим пользователем с sudo, работал как суперпользователь, не запрашивая пароль. Можно узнать, как в этот ответ

  2. , Если Вы не хотите sudo команды всегда выполняться с подсказкой пароля, использованием лучшей практики gksu перед Вашей командой для запроса пароль в графическом окне вместо того, чтобы писать необработанный пароль в файле.

0
ответ дан 23 November 2019 в 04:21

Откройте терминал и выполните эту команду

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

Сохраните файл файл и проверьте свои приложения, он там.

Надеюсь, это поможет.

0
ответ дан 29 June 2020 в 12:08

Другие вопросы по тегам:

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