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