

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在您的 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 系統使用者，透過 SSH 存取您的 EC2 執行個體，您必須與使用者共用 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`，表示您已將 shell 工作階段切換至新使用者。

1. 將 SSH 公有金鑰新增到使用者。首先在使用者的主目錄中建立 SSH 金鑰檔案的目錄、然後建立金鑰檔案，最後將公有金鑰貼到金鑰檔案中，如下列子步驟中所示。

   1. 在 `.ssh` 主目錄中建立 `newuser` 目錄，然後將其檔案許可變更為 `700` (只有擁有者能讀取、寫入和開啟目錄)。

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

      ```
      [newuser ~]$ chmod 700 .ssh
      ```
**重要**  
若沒有這些明確的檔案許可，使用者將無法登入。

   1. 在 `.ssh` 目錄中建立名為 `authorized_keys` 的檔案，然後將其檔案許可變更為 `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** 中擷取到的公開金鑰貼到檔案中，並儲存這些變更。
**重要**  
請確定將此公開金鑰貼成連續一行。此公開金鑰絕對不可分成多行。

      使用者現在應該能使用對應到您為 `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
```