web-dev-qa-db-ja.com

スクリプト全体を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
POPCORNS

スクリプトを次のように変更できます。

#!/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
3
M. Becerra