初期アカウントがパスワード無しでsudo出来るのが気持ち悪いという貴方へ

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

毎日暑いですね、アイス珈琲を飲まずにはいられない小室です。皆さん、夏バテはしていませんか。

今日は暑いので、時々遭遇するぞわっとする事象を解決したいと思います。

みなさんが大好きなAmazonLinuxをはじめEC2を起動すると割り当てられる初期アカウント(例えばec2-user, ubuntu等)はsudoするのにパスワードなしで昇格出来ます。

[ec2-user@ip-10-99-46-145 ~]$ yum update
Loaded plugins: priorities, security, update-motd, upgrade-helper
You need to be root to perform this command.
[ec2-user@ip-10-99-46-145 ~]$ sudo yum update
Loaded plugins: priorities, security, update-motd, upgrade-helper
amzn-main                                                | 2.1 kB     00:00     
amzn-updates                                             | 2.3 kB     00:00     
Setting up Update Process
Resolving Dependencies
略〜

 

それが気持ち悪いと思ったりしませんか。えぇ、私は最初ぞわっとしました。恐ろしいですね。

さてそのような場合は該当アカウントにパスワードをつけて、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
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
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] password for ec2-user:  #設定したパスワードを入力
Loaded plugins: priorities, security, update-motd, upgrade-helper
Setting up Update Process
Resolving Dependencies
略〜

ちなみにこの設定しても、ブート時のUser Data(root権限ありの処理含む)を実行には影響を及ぼしません(もちろん起動後にSSHした後のsudo実行の時にはパスワードは求められますが)

またパスワード設定→sudoers設定変更、反映の順番で実行しないと、昇格が出来なくなりますので気をつけましょう。

 

AWS運用自動化サービス「Cloud Automator」