私のスクリプトは次のようなものです。
#!/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で開始することを拒否するため、問題です。どうすれば解決できますか?
スクリプトを次のように変更できます。
#!/bin/bash
teamviewer --daemon enable
Sudo -u USERNAME teamviewer
teamviewer --daemon disable
この方法では、teamviewer
を使用してスクリプトを実行しているため、gksu
をUSERNAMEとして実行し、他のユーザーをSudoユーザーとして実行できます。
テストする簡単な方法が必要な場合は、gksu
を使用して次を実行します。
#!/bin/bash
echo "Without 'Sudo' -->" ; whoami
echo "With 'Sudo -u USERNAME' -->" ; Sudo -u USERNAME whoami