web-dev-qa-db-ja.com

カスタムUnityランチャーを使用するときにgksudoがパスワードを要求し続ける

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と同じ動作):最初の起動時にのみパスワードを要求します。

ここで何が欠けていますか?

2
martin-mystere

私の知る限り、一定期間パスワードを記憶しているのは端末環境です。

たとえば、次のコマンド

gksudo nautilus

端末では、特定の時間枠内に一度だけパスワードを要求します。同じコマンドが alt+f2 ランチャーは毎回それを求めます。

いずれにせよ、何かをrootとして実行したい場合、毎回パスワードを尋ねるのは奇妙なことではありません。これにより、rootとしてコマンドを実行することがわかります。

1
Timo

これは絶対に正常です。ターミナルでは、常に同じ「セッション」を取得しているため、認証が記憶されますが、.desktopランチャーの場合とは異なります。

ファイルを/ etc/sudoers.dに追加することをお勧めします(my_scriptなどの名前を付けます)。これにより、パスワードなしで常にコマンドを使用できます(スクリプトでt安全な引数を受け入れる)-しかしこれは自己責任で行ってください

次の内容で新しいファイルを作成します

your_username ALL=(ALL) NOPASSWD: /my/path/to/bash_script.sh

Gksuでテストしたところ、すぐに動作しましたが、動作しなかった場合は、ログインとログアウトをやり直すか、再起動してみてください。

1
jplatte