「sudo: tty が存在せず、askpass プログラムが指定されていません」というエラーを修正するにはどうすればいいですか? 質問する

「sudo: tty が存在せず、askpass プログラムが指定されていません」というエラーを修正するにはどうすればいいですか? 質問する

私は makefile を使用していくつかのソースをコンパイルしようとしています。makefile には、として実行する必要がある一連のコマンドがありますsudo

ターミナルからソースをコンパイルすると、すべて正常に実行され、コマンドが初めて実行されるときにsudoパスワードを待機して make が一時停止します。パスワードを入力すると、make が再開して完了します。

しかし、NetBeans でソースをコンパイルできるようにしたいのです。そこで、プロジェクトを開始し、NetBeans にソースの場所を示しましたが、プロジェクトをコンパイルするとエラーが発生します。

sudo: no tty present and no askpass program specified

初めてsudoコマンドにヒットしたとき。

インターネットでこの問題を調べたところ、見つけた解決策はすべて、このユーザーのパスワードを無効にするというものでした。ここで問題となっているユーザーは root なので、私はそれをしたくありません。

他に解決策はありますか?

ベストアンサー1

パスワードを要求せずにユーザーにそのコマンドの使用を許可すると、問題は解決するはずです。まず、シェル コンソールを開いて次のように入力します。

sudo visudo

次に、そのファイルを編集して、一番最後に次のコードを追加します。

username ALL = NOPASSWD: /fullpath/to/command, /fullpath/to/othercommand

例えば

john ALL = NOPASSWD: /sbin/poweroff, /sbin/start, /sbin/stop

ユーザーはパスワードの入力を求められることなくsudojohnを実行できるようになりますpoweroffstartstop

visudo で使用する必要があるキーストロークについては、画面の下部を確認してください (これは vi ではありません)。問題の兆候が見られたら、すぐに保存せずに終了してください。健康に関する警告: このファイルを破損すると深刻な結果を招く恐れがありますので、編集には注意してください。

おすすめ記事