さくらVPSでサーバーをレンタルし、rootユーザーしか存在しない状態から、管理者ユーザーを作成する手順のメモです。
まず、「仮登録完了のお知らせ」メールに含まれるパスワードを利用して、rootユーザーとしてサーバーに接続します。
ログイン後、まず目的のユーザー(ここではnewuserとします)を作成します。
$ useradd newuser
公開鍵の登録
newuserのホームディレクトリに.sshディレクトリを作成し、パーミッションを700に設定します。
$ mkdir /home/newuser/.ssh $ chmod 700 /home/newuser/.ssh
.sshディレクトリ以下にauthorized_keysというファイルを作成し、パーミッションを600に設定します。
$ cd /home/newuser/.ssh $ touch authorized_keys $ chmod 600 authorized_keys
authorized_keysファイルの中に、接続元ユーザーの公開鍵を登録します。
$ vim authorized_keys
ssh-rsa ...
.sshディレクトリとauthorized_keysファイルの所有者をnewuserに変更します。
$ chown newuser:newuser -R .
これで、接続元ユーザーはnewuserとしてこのサーバーにアクセスすることができるようになりました。
sudoコマンドを利用できるようにする
次に、newuserは管理者ユーザーなのでroot権限でコマンドを実行できるようにしたいと思います。visudoコマンドを利用することでこの設定ができます。
$ visudo
コマンドを実行すると、エディタが開き、sudoに関する設定ファイルを編集することができます。下にスクロールしていくと
## Allow root to run any commands anywhere root ALL=(ALL) ALL
という箇所があると思うので、ここにnewuserを追記すればよいです。ただ、新しい管理者が入った場合に、毎回このファイルを修正するのは大変なので、個人ではなくwheelというグループにsudoコマンドの権限を与えて、newuserをwheelグループに登録する方向でいきます。既に以下のような記述があると思うので、先頭の#を削除してwheelグループのsudo権限を有効にさせます。「:wq」で変更内容を保存し、エディタを終了させます。
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
newuserをwheelグループに登録するには、gpasswdコマンドを使います。
$ gpasswd -a newuser wheel Adding user newuser to group wheel
これでnewuserは再ログイン後にsudoコマンドを利用できるようになりました。
rootによるログインの禁止
以上で、管理者newuserによるログインおよびsudoコマンドの実行が可能になりましたが、rootによるログインも有効のままです。これは、セキュリティ的によろしくないので、rootによるログインを禁止し、また接続の際に公開鍵認証を義務付けたいと思います。この設定を行うには/etc/ssh/sshd_configを編集します。
$ vim /etc/ssh/sshd_config
「PermitRootLogin」、「PermitRootLogin」および「PasswordAuthentication」の設定を「no」にします。
PermitRootLogin no PermitEmptyPasswords no PasswordAuthentication no
設定を有効にするために、sshサービスを再起動します。
$ service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]