Запускать команды sudo без запуска всего сценария с sudo (с помощью средства запуска на рабочем столе) [дубликат]

Мой сценарий выглядит примерно так:

#!/bin/bash
sudo teamviewer --daemon enable
teamviewer
sudo teamviewer --daemon disable

Он отлично работает сам по себе и запрашивает мой пароль в окне терминала. Итак, теперь я хочу сделать для него лаунчер. У меня есть это в моем файле .desktop :

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Categories=Network;
Name=TeamViewer 12
Comment=Remote control and meeting solution.
Exec=gksu /path/here/Start.sh
Icon=teamviewer

Таким образом, он запрашивает мой пароль во всплывающем окне вместо окна терминала, но при этом весь скрипт запускается с sudo, что является проблемой, потому что TeamViewer отказывается запускаться с sudo. Как я могу решить эту проблему?

1
задан 7 June 2017 в 22:14

1 ответ

Можно измениться на сценарий к:

#!/bin/bash

teamviewer --daemon enable

sudo -u USERNAME teamviewer

teamviewer --daemon disable

Этот способ, которым можно выполниться teamviewer как ИМЯ ПОЛЬЗОВАТЕЛЯ, все еще выполняя другие как sudo пользователя, поскольку Вы запускаете скрипт с gksu.

<час>

, Если Вы хотите простой способ протестировать его, выполните следующее с gksu:

#!/bin/bash

echo "Without 'sudo' -->" ; whoami

echo "With 'sudo -u USERNAME' -->" ; sudo -u USERNAME whoami
3
ответ дан 7 December 2019 в 12:32

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

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