LoginSignup
3
0

More than 1 year has passed since last update.

EC2 amazon linux2 rootにスイッチする方法を検証してみた

Last updated at Posted at 2023-04-11

はじめに

EC2 AL2のデフォルト設定ではrootにスイッチできないということがありました。
そのため、記事にまとめました。

※amazon linux2のことをAL2と記載させて頂きます。

rootにスイッチするには2パターンあります。

rootのパスワードを入力してrootにスイッチする
AL2ではデフォルトでrootユーザーのパスワード設定をしていません。

$ su -

ログインユーザーのパスワードを入力してrootにスイッチする
※上記の場合はwheelグループに所属している必要があります。

$ sudo su -

検証した結果

su -でrootにスイッチする場合

AL2のrootユーザーはデフォルトではパスワード設定する必要があります
そのため、su -でrootにスイッチする際は、rootユーザーのパスワードの入力が求められるため、
パスワード設定をする必要があります。

AL2のデフォルトのrootユーザーの設定を以下に貼りました。
※以下はec2-userでsudo su -してrootにスイッチして作業しました。

[root@ip-10-0-23-181 ~]#cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash

※パスワードが設定されていません。
[root@ip-10-0-23-181 sudoers.d]# cat /etc/shadow | grep root
root:*LOCK*:14600::::::

パスワードを設定しました

[root@ip-10-0-23-181 ~]# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

rootへスイッチした際のコマンドは以下です。

[ec2-user@ip-10-0-23-181 ~]$ su -
Password:
Last login: Mon Apr 10 23:51:51 UTC 2023 on pts/0
[root@ip-10-0-23-181 ~]# ※rootにスイッチしました。

sudo su -でrootにスイッチする場合

以下のサイトが参考になりました。
https://ex1.m-yabe.com/archives/5233

wheelグループに所属しているため、ec2-userはデフォルトでsudo su -が可能です

root@ip-10-0-23-181 ~]# id ec2-user
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)

testユーザーを新規で作成しました。

[root@ip-10-0-23-181 sudoers.d]# useradd test
[root@ip-10-0-23-181 sudoers.d]#
[root@ip-10-0-23-181 sudoers.d]# passwd test
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

testユーザーはwheelグループに所属していません。

[root@ip-10-0-23-181 ~]# id test
uid=1002(test) gid=1002(test) groups=1002(test)

sudoersの設定ファイルを確認したところ、wheelグループは許可されています。

[root@ip-10-0-23-181 sudoers.d]# cat /etc/sudoers | grep -v "^#" | grep -v "^$"
Defaults   !visiblepw
Defaults    always_set_home
Defaults    match_group_by_gid
Defaults    always_query_group_plugin
Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root    ALL=(ALL)       ALL
%wheel  ALL=(ALL)       ALL

testユーザーでsudo してみたところ、以下のメッセージが出てsudo出来ませんでした。

[test@ip-10-0-23-181 ~]$ sudo su -

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 test:
test is not in the sudoers file.  This incident will be reported.

testユーザーをwheelグループに所属させました。

[root@ip-10-0-23-181 ~]# usermod -aG wheel test

グループにwheelが入っていることを確認しました。

[root@ip-10-0-23-181 ~]# id test
uid=1002(test) gid=1002(test) groups=1002(test),10(wheel)

testユーザーからrootへsudo出来ました。

[test@ip-10-0-23-181 ~]$ sudo su -
[sudo] password for test: ※testユーザーのパスワード入力
Last login: Mon Apr 10 23:53:34 UTC 2023 on pts/0

まとめ

AWS EC2でrootにスイッチする方法が2つあることが分かりました。
su -はrootユーザーのパスワード入力し、sudo su -はログインユーザーのパスワード入力することが分かりました。
私は普段sudo su -を使用しています。基本的なことのため、このあたりの知識はしっかりつけたいです。

ログインできない場合は、ログイン出来るユーザーでSSH接続して「/var/log/secure」のユーザー認証時に出力されるログをみると、
認証失敗のエラーが出ているため、確認が必要です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0