

# Amazon EC2 Linux インスタンスのシステムユーザーを管理する
<a name="managing-users"></a>

各 Linux インスタンスは、デフォルトの Linux システムユーザーで起動されます。インスタンスには、ユーザーを追加することも、削除することもできます。

デフォルトのユーザーの場合、[デフォルトのユーザー名](#ami-default-user-names)は、インスタンスの起動時に指定した AMI によって決まります。

**注記**  
デフォルトでは、パスワード認証とルートログインは無効になっており、また、sudo は有効化されています。インスタンスにログインするには、キーペアを使用する必要があります。ログインの詳細については、「[SSH を使用した Linux インスタンスへの接続](connect-to-linux-instance.md)」を参照してください。  
ユーザーは、インスタンスのパスワード認証とルートログインを許可できます。詳細については、「インスタンスのオペレーティングシステムに関するドキュメント」を参照してください。

**注記**  
Linux システムユーザーと IAM ユーザーを混同しないようにしてください。詳細については、『*IAM ユーザーガイド*』の[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_iam-users)を参照してください。

**Topics**
+ [デフォルトのユーザー名](#ami-default-user-names)
+ [考慮事項](#add-user-best-practice)
+ [ユーザーの作成](#create-user-account)
+ [ユーザーの削除](#delete-user-account)

## デフォルトのユーザー名
<a name="ami-default-user-names"></a>

EC2 インスタンスのデフォルトのユーザー名は、インスタンスの起動時に指定した AMI によって決まります。

デフォルトのユーザー名は以下のとおりです。
+ Amazon Linux AMI の場合、ユーザー名は `ec2-user` です。
+ Centos AMI の場合、ユーザー名は `centos` または `ec2-user` です。
+ Debian AMI の場合は、ユーザー名は `admin` です。
+ Fedora AMI の場合、ユーザー名は `fedora` または `ec2-user` です。
+ FreeBSD AMI の場合、ユーザー名は `ec2-user` です。
+ RHEL AMI の場合、ユーザー名は `ec2-user` または `root` です。
+ SUSE AMI の場合、ユーザー名は `ec2-user` または `root` です。
+ Ubuntu AMI の場合、ユーザー名は `ubuntu` です。
+ Oracle AMI の場合、ユーザー名は `ec2-user` です。
+ Bitnami AMI の場合、ユーザー名は `bitnami` です。

**注記**  
他の Linux ディストリビューションのデフォルトのユーザー名を確認するには、AMI プロバイダーに確認してください。

## 考慮事項
<a name="add-user-best-practice"></a>

デフォルトのユーザーを使用するのが多くのアプリケーションに適しています。ただし、個人が自分のファイルとワークスペースを持つことができるように、ユーザーを追加することを選択できます。さらに、新しいユーザー用にユーザーを作成することは、デフォルトユーザーへのアクセス権を複数のユーザーに (経験のないユーザーも含めて) 与えるよりも、はるかに安全です。これはデフォルトのユーザーが不適切に使用された場合、システムにさまざまな損害を与える可能性があるためです。詳細については、[EC2 インスタンスの保護のヒント](https://aws.amazon.com/articles/tips-for-securing-your-ec2-instance/)を参照してください。

Linux システムのユーザーを使用してユーザーが EC2 インスタンスに SSH アクセスできるようにするには、SSH キーをユーザーと共有する必要があります。または、EC2 Instance Connect を使用して、SSH キーを共有および管理せずにユーザーにアクセスを提供できます。詳細については、「[パブリック IP アドレスと EC2 Instance Connect を使用して Linux インスタンスに接続する](connect-linux-inst-eic.md)」を参照してください。

## ユーザーの作成
<a name="create-user-account"></a>

最初にユーザーを作成してから、ユーザーがインスタンスに接続してログインできるようにする SSH パブリックキーを追加します。

**重要**  
この手順のステップ 1 では、新しいキーペアを作成します。キーペアはパスワードのように機能するため、安全に取り扱うことが非常に重要です。ユーザー用のキーペアを作成する場合は、プライベートキーを安全に送信する必要があります。または、ユーザーが自分のマシン上で独自のキーペアを作成し、プライベートキーを安全に保持することでステップ 1 と 2 を完了してから、あなたにパブリックキーを送信してステップ 3 以降の手順を完了してもらうこともできます。

**ユーザーを作成するには**

1. [新しいキーペアを作成します](create-key-pairs.md#having-ec2-create-your-key-pair)。この `.pem` ファイルは、ユーザーを作成するユーザーに提供する必要があります。ユーザーがインスタンスに接続するには、このファイルを使用する必要があります。

1. 前のステップで作成したキーペアからパブリックキーを取得します。

   ```
   $ ssh-keygen -y -f /path_to_key_pair/key-pair-name.pem
   ```

   コマンドは、次の例に示すように、パブリックキーを返します。

   ```
   ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   ```

1. インスタンスに接続します。

1. **adduser** コマンドを使用して、ユーザーを作成し、システムに追加します (`/etc/passwd` ファイルにエントリが追加されます)。このコマンドでも、グループが作成され、ユーザーのホームディレクトリが作成されます。この例では、ユーザーは `newuser` という名前になります。
   + AL2023 と Amazon Linux 2

     AL2023 および Amazon Linux 2 では、デフォルトでパスワード認証が無効化された状態で、ユーザーが作成されます。

     ```
     [ec2-user ~]$ sudo adduser newuser
     ```
   + Ubuntu

     パスワード認証が無効化されたユーザーを作成するには、`--disabled-password` パラメータを含めます。

     ```
     [ubuntu ~]$ sudo adduser newuser --disabled-password
     ```

1. 新しいユーザーに切り替えて、作成するディレクトリとファイルが適切な所有権を持つようにします。

   ```
   [ec2-user ~]$ sudo su - newuser
   ```

   シェルセッションが新しいユーザーに切り替わったことを示すために `ec2-user` から `newuser` に変更するように求められます。

1. ユーザーに SSH パブリックキーを追加します。以下のサブステップで説明しているように、最初に SSH キーファイル用のディレクトリをユーザーのホームディレクトリに作成し、次にキーファイルを作成して、最後に公開キーをキーファイルに貼り付けます。

   1. `.ssh` ホームディレクトリに `newuser` ディレクトリを作成し、そのファイルのアクセス許可を `700` (所有者のみ、読み取り、書き込み、削除が可能) に変更します。

      ```
      [newuser ~]$ mkdir .ssh
      ```

      ```
      [newuser ~]$ chmod 700 .ssh
      ```
**重要**  
厳密なファイル権限がなければ、ユーザーはログインできません。

   1. `authorized_keys` という名前のファイルを `.ssh` ディレクトリに作成し、そのファイルのアクセス許可を `600` (所有者のみ、読み取りおよび書き込みが可能) に変更します。

      ```
      [newuser ~]$ touch .ssh/authorized_keys
      ```

      ```
      [newuser ~]$ chmod 600 .ssh/authorized_keys
      ```
**重要**  
厳密なファイル権限がなければ、ユーザーはログインできません。

   1. <a name="edit_auth_keys"></a>お好みのテキストエディタ (例: **vim** や **nano**) で、`authorized_keys` ファイルを開きます。

      ```
      [newuser ~]$ nano .ssh/authorized_keys
      ```

      **ステップ 2** で取得したパブリックキーをファイルに貼り付け、変更を保存します。
**重要**  
パブリックキーは、必ず 1 つの連続した行に貼り付けてください。パブリックキーを複数行に分割することはできません。

      これで、`authorized_keys` ファイルに追加したパブリックキーの対であるプライベートキーを使用して、インスタンスの `newuser` ユーザーにログインできるようになりました。Linux インスタンスに接続するさまざまな方法の詳細については、[SSH を使用した Linux インスタンスへの接続](connect-to-linux-instance.md)を参照してください。

## ユーザーの削除
<a name="delete-user-account"></a>

ユーザーが不要になった場合、今後使用されないようにそのユーザーを削除できます。

システムからユーザーアカウントを削除するには、**userdel** コマンドを使用します。`-r` パラメータを指定すると、ユーザーのホームディレクトリとメールスプールが削除されます。ユーザーのホームディレクトリとメールスプールを維持するには、`-r` パラメータを省略します。

```
[ec2-user ~]$ sudo userdel -r olduser
```