ユーザー定義スクリプトは、ユーザーが ECS インスタンスの起動動作をカスタマイズするために Alibaba Cloud が提供するスクリプトの一種です。 詳しくは「ユーザー定義データ 」をご参照ください。
この例では、Linux インスタンスを作成する際、Linux インスタンスを使用して、ルートユーザー権限を持つ新規アカウントを作成するためのユーザー定義スクリプトの使用方法を説明します。 ユーザー定義スクリプトを使用して、Windows インスタンス用の管理者権限のある新規アカウントを作成することもできます。
シナリオ
Linux ECS インスタンスを作成する際に、次の結果を得るためには、インスタンスのユーザー定義スクリプトを使用します。
- Linux ECS インスタンスに付属のデフォルトの ルートアカウントを無効にします。 スクリプトを使用して、ルートユーザーを無効にする方法と無効にする ルートユーザー権限の数をカスタマイズできます。
- ルートユーザー権限のある新規アカウントを作成し、アカウント名をカスタマイズします。
- ルートユーザー権限のある新規アカウントを使用してインスタンスを管理するためのリモートログインには、SSH キーペアのみを使用し、ユーザーパスワードは使用しないでください。
- ルートユーザー権限を持つユーザーのみが実行できる操作を行うためにこの新規アカウントが必要な場合は、特権昇格用パスワードなしで
sudo
コマンドを使用できます。
手順
ルートユーザー権限のある新規アカウントを作成するには、次の手順を実行します。
- Linux インスタンスを作成します 。 インスタンスを次のように設定します。
- ネットワーク種別: VPC を選択します。
- インスタンス種別: I/O 最適化インスタンスを選択します。
- オペレーティングシステム: [ パブリックイメージ ] タブで " CentOS 7.2" を選択します。
- インスタンス作成ページの [ユーザーデータ] ボックス に次のスクリプトを入力します。
#! /bin/sh useradd test echo "test ALL=(ALL) NOPASSWD:ALL" | tee -a /etc/sudoers mkdir /home/test/.ssh touch /home/test/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhGqhEh/rGbIMCGItFVtYpsXPQrCaunGJKZVIWtINrGZwusLc290qDZ93KCeb8o6X1Iby1Wm+psZY8THE+/BsXq0M0HzfkQZD2vXuhRb4xi1z98JHskX+0jnbjqYGY+Brgai9BvKDXTTSyJtCYUnEKxvcK+d1ZwxbNuk2QZ0ryHESDbSaczlNFgFQEDxhCrvko+zWLjTVnomVUDhdMP2g6fZ0tgFVwkJFV0bE7oob3NOVcrx2TyhfcAjA4M2/Ry7U2MFADDC+EVkpoVDm0SOT/hYJgaVM1xMDlSeE7kzX7yZbJLR1XAWV1xzZkNclY5w1kPnW8qMYuSwhpXzt4gsF0w== rsa-key-20170217" | tee -a /home/test/.ssh/authorized_keys
注- 最初の行は、先頭にスペースを入れずに
#!. /bin/sh
とする必要があります。 - テキストに不要なスペースや復帰文字を入力しないでください。
- 最後の行は公開鍵です。 定義することが可能です。
- 必要に応じて、スクリプトに他の設定を追加することができます。
- サンプルスクリプトは CentOS 7.2 にのみ適用されます。 他のイメージを使用している場合は、オペレーティングシステム種別に応じてスクリプトをカスタマイズしてください。
- 最初の行は、先頭にスペースを入れずに
- [セキュリティ設定] で後作成の [設定] を選択します。
- 設定が終了したら、[今すぐ購入] をクリックし、ページの指示に従ってインスタンスを有効化します。
インスタンスが作成されたら、新しい [テスト] ユーザーを使用し、SSH 秘密鍵を使用してインスタンスに接続できます。 次の図に示すように、sudo
コマンドを使用して権限レベルを上げ、ルートユーザー権限が必要な操作を実行することもできます。