EC2 自動インスタンス Sudo が機能しない

EC2 自動インスタンス Sudo が機能しない

私はビルド サーバーをセットアップするために Atlassian Bamboo を使用しています。これにより、「エラスティック イメージ」を使用でき、使用する AMI を指定できます (私は Amazon Linux/CentOS イメージを使用しています)。また、基本的にサーバーを「プロビジョニング」するためのスクリプトを追加することもできます。sudoスクリプトを使用してビルドを実行すると、次のようなエラーが発生します。

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified

を使用しない場合sudo、権限が拒否されたエラーが発生します。

脚本私が実行しようとしているのは、次のように簡単です:

sudo yum install -y php-mysql
sudo yum install -y php-pdo
sudo yum install -y php-pecl-xdebug
sudo yum update

Bamboo はキーでセットアップされるため、実際のパスワードは必要ありません (私の知る限りでは存在しない) なので、tty 入力がなくても問題ないはずですよね?

サーバーが常時起動していれば、SSH で接続して sudo 権限を有効にする方法を見つけることができましたが、そうではありません...サーバーが作成され、ビルドが実行され、その後終了します。

TL;DR;動的にスピンアップされた EBS Backed AMI が許可されない原因は何でしょうかsudo?

答え1

Bamboo はキーを使用してセットアップされるため、実際のパスワードは必要ありません (私の知る限り、パスワードはありません)。つまり、tty 入力がなくても問題ないということですね?

いいえ。ここが混乱しているところです。ssh への認証方法は sudo とは何の関係もありません。sudo がパスワードを要求するように設定されている場合は、ユーザーのパスワードを入力する必要があります。入力しないと機能しません。ユーザーがパスワードを持っていない場合は、機能しない可能性があります。

sudoを再設定する必要があるようです。

  • ttyは必要ありません
  • パスワードは必要ありません

たとえば、パスワードなしで任意のユーザーとして任意のコマンドを実行できるようにするには、/etc/sudoers私が持っているファイル

bamboo  ALL=(ALL)   NOPASSWD: ALL

答え2

ドキュメントに書いてある通りもしAtlassianが提供する画像があなたの望むように機能しない場合は、カスタムイメージを作成する

答え3

/etc/sudoers ファイルが正しく設定されているかどうかを確認してください。昨日、ビルド スクリプトの 1 つが /etc/sudoers ファイルで行った変更を上書きし、権限の問題が発生したときにこのエラー メッセージが表示されました。

関連情報