Amazon Linux 2 EC2インスタンスは、cloud-init
起動スクリプト中に次のコマンドを実行して、リモートユーザーのパスワード認証を有効にしますsed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
。したがって、リモートユーザーは、Amazon Linux 2 EC2インスタンスにログインするときにキーペアを使用して認証しません。ユーザーの1人がパスワードを入力しなくてもコマンドを実行できる必要someuser
があります。sudo
Cloud-Init 起動スクリプト
完全なcloud-init
起動スクリプトは次のとおりです。
/usr/sbin/useradd someuser
echo someuser:some-password | chpasswd
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd
cat << 'EOF' > /etc/sudoers.d/someuser
someuser ALL=(ALL) NOPASSWD: ALL
EOF
質問
指定されたパスワードを使用してPuttyを介してリモートでログインしながらパスワードを繰り返すことcloud-init
なくコマンドをsomeuser
実行できるようにするには、上記の起動スクリプトでどの特定の構文を使用する必要がありますか?sudo
someuser
エラーメッセージ
次のスクリーンショットはエラーメッセージを示しています。
スイッチングエラー
上記の現在の構文では、公開someuser
鍵の欠落によりPuttyが使用できなくなります。ただし、上記の3行コマンドをコメントアウトすると、エラーを排除してログインsomeuser
できますが、コマンドを実行することはできません。sudo
cat
#cat << 'EOF' > /etc/sudoers.d/someuser
#someuser ALL=(ALL) NOPASSWD: ALL
#EOF
問題は過去の投稿の最初の3行にあります。sudo
Puttyがパスワード専用機能を維持しながら、このユーザーがパスワードなしでアップグレードできるように、この3行をどのように書き換え、交換、または拡張できますか?
答え1
から/etc/sudoers.d/README
:
それ尊敬される使用ビジュド、エラーによる変更を防ぎ、新しいファイルモード(0440)。
これは、初期化スクリプトが新しく作成されたファイル(/etc/sudoers.d/someuser)のスキーマのみを変更することを意味します。
chmod 0440 /etc/sudoers.d/someuser;
しかし、あなたは解決策を見つけました。ここより良い、
echo 'someuser ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo
ここでは、Visudoは必要なく新しいコンテンツを追加するtee
代わりに使用されます。nano
相互作用、これは私が逃した魔法です!