sudo を使用するスクリプトは端末で実行できますが、デスクトップのショートカットでは実行できません。

sudo を使用するスクリプトは端末で実行できますが、デスクトップのショートカットでは実行できません。

encfsファイルシステムをマウントするための小さなスクリプトを作成しました。このように:

#!/bin/bash
kdialog --password "Wprowadź hasło do SSH lub ENTER żeby rozłączyć:" >  /home/maciek/Pobrane/pass-1
sudo encfs -S --public /home/maciek/dir/.dir_c /home/maciek/dir_v < /home/maciek/Pobrane/pass-1
status=$?
if test $status -eq 0
then
cat /dev/null > /home/maciek/Pobrane/pass-1
<command_A>
kdialog --passivepopup "Zamontowano SSH" 5
exit
else
cat /dev/null > /home/maciek/Pobrane/pass-1
<command_B>
kdialog --passivepopup "Rozłączono SSH lub błędne hasło" 5
fi

通常のユーザーまたはrootで端末で実行すると正常に動作します。その後、KDEデスクトップにショートカットを作成してスクリプトを実行しました。他の場合は、「encfs」が間違ったパスワードのためにfilesysをマウントしないため、ショートカット定義で「ターミナルで実行」オプションを使用する必要がありました。ところでパスワードはちゃんと入力されましたね。 KDEの「konsole」ターミナルから起動したときにのみスクリプトが機能するようにしたいのですが、何が間違っていますか?

答え1

以下を含む/etc/sudoers行をコメントアウトします。

#Defaults requiretty

問題を解決しました!

答え2

入力を要求し、STDIN 読み取りを拒否するコマンドを実行します。画面からコマンドを実行します。、しばらくお待ちください。それに入力を与える

関連情報