Як запустити .desktop іконку від sudo


11

Я створив значок робочого столу для 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, вона працює добре, але вона не працює в Launcher :(

Exec=echo mypasswd | sudo -S gddccontrol

Відповіді:


17

НІКОЛИ не використовуйте свій пароль, збережений у .desktopфайлі. Це страшенно небезпечно.

Крім того, ви не можете запускати складні команди у .desktopфайлі просто так, але це вже інша тема.

Що робити

У вас є кілька варіантів:

  1. Додайте gddccontrolдо sudoersфайлу, як пояснено, наприклад, тут . Це можна зробити, якщо ви впевнені, що програму не можна використовувати для шкідливих дій.

    Потім використовуйте

    Exec=sudo gddccontrol
    

    в Exec=-ліній

  2. Інший варіант - замінити Exec=рядок на:

    Exec=gksu gddccontrol
    

    У цьому випадку, натиснувши на піктограму, вам буде запропоновано ввести свій пароль через gui.
    Можливо, вам потрібно буде встановити gksu:

    sudo apt-get install gksu
    

ніяких інших способів без редагування судерів і гксу? тому що gksu будь-якими способами задавати пароль, але коли я лягаю на диван у вечірній час, я хотів би просто запустити gddccontrol за допомогою миші зменшити яскравість / контраст і продовжувати дивитися фільм, не заходячи на мою клавіатуру. я б краще надав користувачеві доступ до $ gddccontrol dev: / dev / i2c-4: В дозволі відмовлено, я просто хочу простий спосіб без головного болю змінити яскравість та контраст у вечірній час :(
Євген

1
@Eugene я можу собі уявити. У такому випадку я б пішов про файл судорів.
Яків Влійм

1
Віддаю перевагу pkexecбільш gksu; Я вважаю, що з цього приводу була метапост.
кіт

@cat pkexecне працює на gui-програмах просто так. Складніше налаштувати, при цьому gksuпрацює ідеально.
Яків Влійм

Але мені не потрібно додатково встановлювати pkexec16.04.
Валентас

4

Використання sudoза визначенням підкаже запит на пароль. Що потрібно зробити, це надати дозволу на виконання користувачеві. Я не впевнений, де знаходиться ця програма, але заради цієї відповіді припустимо, що вона є /usr/bin/.

У терміналі запустіть це:

sudo chmod o+x /usr/bin/gddccontrol

Ця команда є надання про þér користувачів (як ви) право х х ecute програми без необхідності дозволу.

Потім у файлі .desktop просто використовуйте:

Exec=gddccontrol

0

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

  1. зробіть загальносистемне редагування, щоб кожна команда, видана вашим користувачем із судо, запускалася як суперпользователь без запиту пароля. Ви можете дізнатися, як у цій відповіді

  2. Якщо ви не хочете, щоб sudoкоманди завжди виконувались із запрошенням пароля, найкраще практикуйте gksuперед командою, щоб запросити пароль у графічному вікні, а не писати ваш нерозроблений пароль у файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.