キャリテク!マガジン
- TOP
- キャリテク!マガジン
- CentOSサーバの構築とユーザーの作り方
CentOSサーバの構築とユーザーの作り方
こんにちは、吉政創成 アシスタントの菱沼です。
前回まではLinuxはどういうものなのかを整理してきました。
今回から実際に環境に触れていきますが、テキストではCentOS7で解説されます。
そのため、CentOSとはどういったものなのか?その特長に触れた後、Virtual Boxを使ったCentOSサーバの構築、ユーザーの作り方までを学習します。 では、今回も「さわって学ぶLinux入門テキスト/赤星リナ氏著(マイナビ出版)」を片手に勉強していきます。どうぞ超初心者の方、お付き合いいただければ幸いです。
学習に使うのはCentOS、特長は?
Linuxのディストリビューションは複数ありますが、テキストで利用されているのはCentOS 7です。 さて、このCentOSとは具合的にどういったもので、他のディストリビューションから見た特長は何でしょうか?
<CentOSはどんなもの?>
- Red Hat Enterprise Linux(RHEL)の商標や商用パッケージなどを除去し、コミュニティによって再構築されたもの
- RHELと機能的な互換性があることを目指している
- ターゲットは企業のサーバやデスクトップ環境(有償サポートは無し)
- 高機能なGUI環境も標準で提供
- デフォルトパッケージにPythonとPHPが入っている
<Cent OSの特長>
- 安定性が高く、サーバに向いている
- 長期(大体10年)間セキュリティフィックスサポートが提供される(脆弱性対応)
- 知名度が高く、Web上にドキュメントが多い
- RHELと構造がかなり似ている
- 多くのホスティングサービスで選択できる
- 無料で利用できる
参考サイト:
CentOSの概要と特徴を徹底解説!インストール手順と使い方とは?バージョン確認方法とセットアップ方法も説明。|A-STAR
【3分でわかるシリーズ】CentOSとは?|エンジニアの入り口
と、CentOSの概要と特長はこういったもののようです。
また、上記には書きませんでしたが、Linuxのディストリビューションの中でもメジャーなRHELに構造が似ている上、無料で利用できるということで、初心者が学習するにはもってこいという側面もあるようです。だからこのテキストでも学習素材としてCentOSが選ばれたのだと思います。
さて、そのCentOSですが、現在は6~8までがサポート対象となっています。ただし、6は2020年11月末でサポートが終了するため、新たにシステムを立ち上げる場合は、7か8を選択するのが無難だと思います。実際、テキストではCentOS7をベースに解説されています。
ちなみに基本的にバージョンごとのコマンドの差はあまりないらしいのですが、絶対にないわけではないらしいです。
そこでまず、CentOS7と8の違いはどういうものがあるのかを調べてみました。
<7と8の違い>
- コマンドの移行(yum→dnf、iptables→nftables、NTP→ chrony)
- TLS 1.1以下はサポート対象外
- デフォルトのPythonのバージョンがPython 3.6になる
- デフォルトのPHPのバージョンがPHP 7.2になる
- 暗号化ボリュームのデフォルト形式がLUKSからLUKS2に変更
引用元:CentOS 6~CentOS 8の違いをざっくりまとめてみた|Developers IO
コマンドの差はあまりないと言った傍からコマンドが移行されたと書かれていますが、超初心者かつ今から触ろうという人間なため、現状大きな問題ではありませんので、いまはとりあえず頭の片隅に置くだけにしておきます。
Virtual Boxを使ってCentOSの環境を作ろう!
さて、CentOSが何者かについてはこれで大体わかったので、さっそくCentOSに触ってみたいと思います。
テキストではPC上に環境を構築していますが、私の場合、何か問題が起きた時に対処できないことと、PCのパフォーマンスが落ちるのを避けたかったので、某社のクラウドホスティングを使うことにしました。なお、昨今のクラウドホスティングではインスタンスを作る際にOSを指定してぽちっとするだけでインストールされた状態で提供されます。(しないようにもできるようです。) そのため、インストールを経験しなかったのですが、インストール方法だけは確認してみたいと思います。
<CentOSをPCにインストールする方法>
以下はテキストから必要な部分だけを引用し、補足(※)を追記しています。(テキストP10~)
1.Virtual Boxをインストール(このインストールでは特に設定を変更する必要はありません。すべて[Next]ボタンで次にすすめてください。)
※既存OS上にアプリケーションとしてOSを追加、実行することができるツールで米Oracleによって開発されたものです。
※同様の機能を提供するものは他にもあり、「VMWare」や「KVM」といったものがあります。それぞれの違いがまとめられているページがありましたので、ご興味のある方はご参照ください。
参考:知っておきたい仮想マシンまとめ【VirtualBox・VMwareなど】
2.インストールが終わってVirtual Boxが起動したら、[ファイル]メニューから[仮想アプライアンスのインポート]を選択します。
3.[インポートしたい仮想アプライアンス]画面が表示されます。ファイル名を入れる右横の黄色いフォルダアイコンをクリックし、解凍しておいた「CentOS7.ova」ファイルを選択して[次へ]ボタンをクリックします。
※CentOS7.ovaは著者の方が用意してくださったファイルです。「拡張子:ova」を見かけたことがなかったのですが、調べてみるとVirtual Boxで作成した仮想マシンを構成しているファイルをパッケージ化してまとめたファイルとのことだそうです。つまり、CentOSをインストールした仮想環境に、なんやかんやと設定した状態になったものをバックアップしたときにできるファイル、ということのようですので、テキストと全く同じ環境を構築することができる、ということになります。
私は某クラウドサービスに環境を立てることにしたので、ここで提供された「CentOS7.ova」を使わず、クラウドサービス側から提供されているコントロールパネルから「CentOS7」を選択してインストールしました。 自分でCentOSを用意する必要がある方は公式サイトから取得してください。
4.[仮想アプライアンスの設定]画面が表示されたら[インポート]ボタンをクリックするとイメージファイルが読み込まれ、インポートが終わると左側のリストに「CentOS7」が表示されます。
5.「CentOS7」が選択された状態でメニュー下の[設定]ボタンをクリックします。左から[ネットワーク]を選択し、割り当てを「ブリッジアダプター」に変更します。[OK]ボタンをクリックすると最初の画面に戻ります。仮想マシンを起動するにはCentOS7アイコンをダブルクリックします。
作ったサーバにログインしてみる
さて、早速起動してみると、ログインを求められました。
CentOS7.ovaで設定した場合、ユーザーの設定がすでにされているようですが、私はovaを使っていないため、まだroot権限しかありません。なので、いったんroot権限で入ります。
さて、ここでroot権限についてです。テキストではrootについてこのように書かれています。
〇何でもできる「スーパーユーザー」は「root」ユーザー
WindowsやmacOS、Linuxは「マルチユーザー」といって、複数のユーザーで同時にシステムを使うことができます。そのため、ユーザー名とパスワードを設定し、ユーザーを区別してシステムにログインします。
ユーザーアカウントは、システムに関する重要な設定変更を行える管理者ユーザー(スーパーユーザー)と、それ以外の基本的な設定変更はできる一般ユーザーに分かれます。
(中略)
Linuxにはシステムの管理や設定などを行うための特別な権限を持つ「スーパーユーザー(Super user)」と呼ばれるアカウントがあり、「root」ユーザーという名前が割り当てられています。 rootユーザーで通常の作業も行えますが、重要な設定も自由に変えられるので、操作ミスをするとシステムが動かなくなる可能性もあります。
というわけで、うっかり何かをしてしまう前に一般ユーザーを作ってしまうことにします。 テキストでは先のところで説明されているので、それを見ながら作業してみます。
ユーザーを作って、パスワードを設定しよう!
では、ユーザーの作り方はどうすれがいいのでしょうか。
ユーザーを追加するには[ useradd ]コマンドを使います。
このコマンドを実行するには、rootユーザーに変更します。
#useradd ユーザー名
ユーザーが追加されると、/homeディレクトリに新しいユーザー用のホームディレクトリができます。ホームディレクトリとは、そのユーザーが自由に使えるディレクトリです。
(中略)
[ useradd ]コマンドではパスワードの設定はできません。パスワードの設定は次のコマンドで行います。
passwd ユーザー名
(中略)
rootユーザーでパスワードを変更する場合はユーザー名を指定します。一般ユーザーとは異なり、以前のパスワードを知らなくても変更できます。一般ユーザーは自分のアカウントのパスワードしか変えられません。また、以前のパスワードを入力しないと新しいパスワードは設定できません。
一般ユーザーでパスワードを変更する場合は[ passwd ]コマンドを入力してEnterキーを押します。
passwd
ディレクトリについては後日触れることにして、とりあえずユーザーを作る作業です。
まず、root権限で、以下のコマンドを入力してみます。
useradd (ユーザー名)
passwd (パスワードを設定したユーザー名)
画像ではユーザーを作った後に、[ ls ]と言うコマンドを使っていますが、これは追加したユーザー用のディレクトリができているかを確認するために入力しました。(作った後に何も表示されなくて不安になったので…このコマンドについては後日取り上げます。)これで、test2020というユーザーができたことが確認できました。
その後、パスワードの入力を行います。[ls]とかをせずとも、そのまま設定できます。
適当なパスワードを入力してみると、BAD PASSWORDというメッセージが表示されました。 これは第三者が見破りやすいパスワードであるという警告です。この警告メッセージは複数あるようです。
- it does not contain enough DIFFERENT characters(異なる文字が十分に含まれていない)
- it is too short(短すぎる)
- it's WAY too short(あまりにも短すぎる)
- it is based on a dictionary words(辞書にのっている)
- the password is too similar to the old one(パスワードが古いものに似すぎている)
ちなみにこの警告のあとに「Retype new password」と出たので、もう一回設定しなおせと言う意味かと思いきや、ただ単に先ほど入れたパスワードを再度入れるだけでした。 そして、このパスワードの再確認でミスをすると、最初からパスワードを設定しなおすことになるようです。
新しいユーザーでログインしてパスワードを変えてみよう!
さてせっかくなので新しく作ったユーザーでログインして、パスワードを変更してみます。
「exit」と言うコマンドを使えばサーバからログアウトできるそうです。アカウントの切り替え用のコマンドもあるそうですが、それは別の機会に取り上げます。
無事、新ユーザーでログインでき、パスワードを変更してみました。一回警告は出ていますが、無事変更完了です。
では、今回の作業はここで終了します。ちょっとドキドキしながら触ってみましたが、何とか出来たのでほっとしました。最後までお付き合いいただき、ありがとうございました。