さくらのVPSで Ruby on Rails のアプリを公開 第4回

Ruby on Rails

こんにちは、じじグラマーのカン太です。
50歳を過ぎても休日返上で、週末プログラマーをしています。

Ruby on Railsで開発した業務系のアプリをさくらのVPSサーバーで公開したので、その手順を紹介する企画の第4弾です。

今回の記事では、セキュリティを向上させるために一般ユーザーを作成し、そのユーザーでのみログインを許可する設定を行います。管理者ユーザーの「root」で直接ログインできなくすることが目的です。では、さっそくはじめましょう。

前回の記事はこちらをどうぞ。

はじめに

今回の作業は、はじめてサーバー周りを設定される方にはわからないところが多々出てくるのではないかと思います。もちろん僕もほとんどわかりません。ただ、紹介するコマンドを順番に打っていけば設定できるようになっています。わからないところがひっかかる方は、都度グーグル先生にお聞きください。僕のように「よくわからないけど使えればいいや」という方は、どんどん進めていきましょう。

一般ユーザーを作成する

危険な「root」ユーザーで直接ログインさせないために、窓口となる一般ユーザーを作成していきます。まずは、前回使った「Tera Term」で「root」ユーザーでログインしてください。

# useradd sakura_user

上記コマンドでユーザーを作成します。
次に、作成したユーザーにパスワードを設定します。

# passwd sakura_user

パスワードを設定するよう求められるので、パスワードを打ち込む(2回)と、設定できました。

Changing password for user sakura_user.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

※パスワードは入力しても何も表示されませんのでご注意ください。

sudoの設定

「sudo」は、一般ユーザーにスーパーユーザーの実行権限を与えるコマンドです。つまり、「sudo」をつければ、一般ユーザーがスーパーユーザー権限でプログラムを実行できるようになる優れものです。

その方法としては、一般ユーザーを「wheel」グループに所属させた後、 「wheel」グループ に「sudo」を使えるように設定するというものです。どうやら「wheel」 というグループはデフォルトで作成されているグループのようです。

# usermod -G wheel sakura_user

次に、「wheel」グループに所属するユーザーに「sudo」を使えるように設定します。

# visudo

実行すると、/etc/sudoersファイルを編集するエディタが開きます。

/etc/sudoers.tmp
・
・
・

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

・
・
・

最後の方までスクロールさせて、「 ## Allows people in group wheel to run all commands 」を探してください。「%wheel ALL=(ALL) ALL」 と書かれた行の先頭に「#」があればはずしてください。上記例のようになっていれば作業は不要です。(「#」はコメント行であることを意味します)

ここまでできたら、動作確認をしてみましょう。
Tera Term の接続を一旦切り、登録したユーザーとパスワードで再接続してください。

接続が成功したら、続いて「sudo」コマンドを使ってテストしてみましょう。

# sudo id
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
 
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
 
[sudo] sakura のパスワード:
uid=0(root) gid=0(root) groups=0(root)

# sudo id と入力すると、パスワードを聞いてきます。入力をEnterで、「root」の内容を表示します。
# id だけ入力すると、パスワードは聞かれずに、ログインユーザーの内容を表示します。

まとめ

いかがでしたでしょうか。一般ユーザーは問題なく作れましたでしょうか。ちょっと長くなったので今回はここまでにしておきましょう。

次回は、ログインできるユーザーから「root」を外す作業を紹介する予定です。

コメント