Запускать команды 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 ответ

Решение

Вы можете перейти на скрипт:

#!/bin/bash

teamviewer --daemon enable

sudo -u USERNAME teamviewer

teamviewer --daemon disable

Таким образом, вы можете выполнить teamviewer как USERNAME, в то время как остальные запускаются как пользователь sudo, так как вы запускаете скрипт с gksu,


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

#!/bin/bash

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

echo "With 'sudo -u USERNAME' -->" ; sudo -u USERNAME whoami
Другие вопросы по тегам