ファイルマネージャでsudoコマンドを呼び出すときに失敗しました。

ファイルマネージャでsudoコマンドを呼び出すときに失敗しました。

Fedora 20インストールで次のスクリプトを実行しようとしています。

#!/bin/bash
password={password}
echo "$password" | sudo -Sk /bin/bash -c '[[ $EUID -eq 0 ]]'
[[ $? -ne 0 ]] && zenity --error --text failed. || zenity --error --text success.

ターミナルエミュレータで実行しようとすると成功が報告されますが、ファイルマネージャ(この場合はThunar)でスクリプトをダブルクリックすると失敗が報告されます。

他のいくつかのディストリビューション(Debian Wheezyなど)では、一貫した動作が見られます。

なぜこれが起こるのですか?この問題を解決するにはどうすればよいですか?

答え1

/ etc / sudoersファイル(visudoを使用してアクセス可能)で、次の操作を実行してrequirettyプログラムに対してこの機能をオフにできます。

Defaults!/path/to/program !requiretty

あなたの場合はbashを使用しているので、このパスはから取得するすべてのものになりますwhich bash

答え2

/etc/sudoerssudoがファイルにttyを要求しないことを確認する必要があります(requiretty設定しないでください)。

関連情報