sudo:ttyが存在せず、Askpassプログラムが指定されていません。

sudo:ttyが存在せず、Askpassプログラムが指定されていません。

mod_perlを介してWebブラウザで実行されている他のスクリプトから分岐したPerlスクリプトがあります。sudo service X stopバックアップリカバリプロセスの一部として分岐したスクリプト(最終的にはApacheとして実行されます)が必要です。 Xサービスは回復に依存します。 Windowsではうまくいきましたが、CentOSに移植するとタイトルにエラーが表示されます。

設定:

  1. sudoersファイルがコメントアウトされました。# Defaults requiretty
  2. sudoersファイルにはapache_usr localhost=(root) NOPASSWD: /sbin/service X stopvisudo -cチェックによって)他の行はapache_usrありません。

私が試したこと:

  1. sudo /sbin/servicesudo serviceフォークされたプロセスだけでなく
  2. 注釈付きまたはなしのsudoersファイルDefaults !visiblepw
  3. sudoersファイルで上記のNOPASSWD行を(ALL)使用してください。(root)

また何を試すことができますか?

ベストアンサー1

簡単に言えば、これはsudoが設計された方法です。ねえ

ネットワーク接続/高速DNSサーバーが存在しない場合の遅延を避けるために、ホストの検索は少し異なります。

コンピュータ名が「salt」の場合、正しいsudoers行は次のようになります。

apache_usr salt=(root) NOPASSWD: /sbin/service X stop

つまり、localhostはsudoerの有効なホスト名ではありません。

おすすめ記事