毎日暑いですね、アイス珈琲を飲まずにはいられない小室です。皆さん、夏バテはしていませんか。
今日は暑いので、時々遭遇するぞわっとする事象を解決したいと思います。
みなさんが大好きなAmazonLinuxをはじめEC2を起動すると割り当てられる初期アカウント(例えばec2-user, ubuntu等)はsudoするのにパスワードなしで昇格出来ます。
[ec2-user@ip-10-99-46-145 ~]$ yum update<br /> Loaded plugins: priorities, security, update-motd, upgrade-helper<br /> You need to be root to perform this command.<br /> [ec2-user@ip-10-99-46-145 ~]$ sudo yum update<br /> Loaded plugins: priorities, security, update-motd, upgrade-helper<br /> amzn-main | 2.1 kB 00:00 <br /> amzn-updates | 2.3 kB 00:00 <br /> Setting up Update Process<br /> Resolving Dependencies<br /> 略〜
それが気持ち悪いと思ったりしませんか。えぇ、私は最初ぞわっとしました。恐ろしいですね。
さてそのような場合は該当アカウントにパスワードをつけて、sudoする際はパスワードプロンプトを出しましょう。
[ec2-user@ip-10-99-46-145 ~]$ sudo passwd ec2-user
ユーザー ec2-user のパスワードを変更。
新しいパスワード: #パスワード入力
新しいパスワードを再入力してください: #同じパスワード入力
passwd: 全ての認証トークンが正しく更新できました。
その後/etc/sudoers.d/cloud-initファイルを編集します。
[ec2-user@ip-10-99-46-145 ~]$ sudo visudo -f /etc/sudoers.d/cloud-init #ec2-user ALL = NOPASSWD: ALL<br /> ec2-user ALL=(ALL) ALL
ここでは必ずvisudoを使いましょう。必ず使ってよかったと思うはずです。変更後もし反映していないようでしたら以下の方法でリロードするとよいかと思います。
[ec2-user@ip-10-99-46-145 ~]$ sudo service sudo restart
これで起動中のインスタンス内でsudoをするときはパスワードを求められると思います。
[ec2-user@ip-10-99-46-145 ~]$ sudo yum update We trust you have received the usual lecture from the local System<br /> Administrator. It usually boils down to these three things: #1) Respect the privacy of others.<br /> #2) Think before you type.<br /> #3) With great power comes great responsibility. [sudo] password for ec2-user: <span style="color:#0000CD;">#設定したパスワードを入力</span><br /> Loaded plugins: priorities, security, update-motd, upgrade-helper<br /> Setting up Update Process<br /> Resolving Dependencies<br /> 略〜
ちなみにこの設定しても、ブート時のUser Data(root権限ありの処理含む)を実行には影響を及ぼしません(もちろん起動後にSSHした後のsudo実行の時にはパスワードは求められますが)
またパスワード設定→sudoers設定変更、反映の順番で実行しないと、昇格が出来なくなりますので気をつけましょう。