Exec行を含むカスタム.desktopファイルを作成しました
#!/usr/bin/env xdg-open
[Desktop Entry]
(...)
Exec=gksudo /my/path/to/bash_script.sh
(...)
このスクリプトはいくつかのzenity呼び出しを起動します。
次に、このデスクトップファイルをunity-2dランチャーのサイドバーに表示するようにしました。
私の問題は、このランチャーショートカットを使用するたびに、パスワードを要求し続けることです...期待される動作は一度尋ねることですが、しばらくの間覚えておいてください。 それはgnome/Lucidでそのように機能していたため、何かが変更されましたが、何ですか?
(私は「-k」オプションも試しましたが、問題は変わりません)
(私の通常のユーザーとして)端末からそのコマンドラインを試す場合
gksudo /my/path/to/bash_script.sh
期待どおりに機能します(= Lucidと同じ動作):最初の起動時にのみパスワードを要求します。
ここで何が欠けていますか?
私の知る限り、一定期間パスワードを記憶しているのは端末環境です。
たとえば、次のコマンド
gksudo nautilus
端末では、特定の時間枠内に一度だけパスワードを要求します。同じコマンドが alt+f2 ランチャーは毎回それを求めます。
いずれにせよ、何かをrootとして実行したい場合、毎回パスワードを尋ねるのは奇妙なことではありません。これにより、rootとしてコマンドを実行することがわかります。
これは絶対に正常です。ターミナルでは、常に同じ「セッション」を取得しているため、認証が記憶されますが、.desktopランチャーの場合とは異なります。
ファイルを/ etc/sudoers.dに追加することをお勧めします(my_scriptなどの名前を付けます)。これにより、パスワードなしで常にコマンドを使用できます(スクリプトでt安全な引数を受け入れる)-しかしこれは自己責任で行ってください:
次の内容で新しいファイルを作成します
your_username ALL=(ALL) NOPASSWD: /my/path/to/bash_script.sh
Gksuでテストしたところ、すぐに動作しましたが、動作しなかった場合は、ログインとログアウトをやり直すか、再起動してみてください。