Linuxってなに?
WindowsやMacなどのようなOSのこと。
「サーバーに関してよくわからない」っていう人はLinuxを入れて使ってみると理解が深まる。
基本無償なので、個人や開発時に利用しやすい。サーバのOSとして使われることが多く、Windowsなどと違って、CUIメインで低スペックのPCで動作するし、高いWindowsサーバーOSを買わなくてもいいので広く利用されている。
※CUIはコマンドだけで操作する画面のこと。反対にwindowsのようにデスクトップ画面で操作するのがGUI
WindowsOSは商用なのでソースコードが公開されておらず、中で何が起こっているのか把握できない。
その点、LinuxはOSの中身が分かるので把握しやすい。
Linuxはマルチユーザーのマルチタスクに対応してる。
※マルチユーザーはユーザーをいくつも作れる。マルチタスクは同時にいくつものユーザーで作業が出来る。
Linuxというのは本来はLinuxカーネルのことで、centOSやRedHatなどと呼ばれてるのはOSではなくてディストリビューションという。
※カーネルというのはOSの核になっている心臓部的なプログラムのこと。
ディストリビューションの意味がわからない
Linuxとその他の付属ソフトをパッケージにしたもの。マックのハッピーセット的な。
ソフトはApatchとかMySQLが入ってたり。
ディストリビューションによって入っているソフトが違う。
ディストリビューションには「RedHat系」と「Debian系」がある。
Redhat系ディストリビューション
RedHat Enterprise Linux
企業の業務で使用されているシェア1位の商用製品
CentOS
RedHat Enterpriseを機能そのままにサポートなしのフリーソフトとして公開しているもの。
有償のRedHatの機能をそのままに無償にしてサポートなしにしたもの。
RPMというパッケージ管理システムが入っている。
※パッケージ管理システムとは、パッケージ名を指定するだけでソフトをインストール出来たり(わざわざダウンロードサイトを探さなくていい)、そのソフトに更新があれば通知してくれたりする。
RPMパッケージには、コンパイル済みの「バイナリパッケージ」と自分でコンパイルする「ソースパッケージ」ある。
Debian系ディストリビューション
Ubuntu
GUI環境のLinux初心者向き。
などなど。
仮想環境でのCentOSのインストールをしよう。というか、して。
Linuxを使うにはWindowsなどと同じようにOSのインストールが必要だが、PCがもう1台あるならそこにインストールして使うか、WindowsやMacのOSの上に仮想環境を作ってそこにLinuxOSをインストールする方法がある。
仮想環境を構築するには「VirtualBox」などのフリーソフトを使う。
VirtualBoxのインストール方法、CentOSのインストール方法はネットで検索すればすぐ出るので割愛します。
ログインしてみよう
rootでログイン
全権限を持つ管理者rootユーザでログインします。
centos login: root ←ログインユーザ名としてrootと入力
Password: ←インストール時に設定したrootのパスワードを応答(表示はされない)
※ログアウトするには exit
と入力
パッケージ管理を使ってみよう
[root@centos ~]# yum -y update
[root@centos ~]# yum -y groupinstall "Base" "Development tools" "Japanese Support"
[root@centos ~]# yum -y install yum-cron
[root@centos ~]# /etc/rc.d/init.d/yum-cron start
[root@centos ~]# chkconfig yum-cron on
[root@centos ~]# chkconfig --list yum-cron
yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ユーザーを作成してみよう
1.ユーザーを新しく追加する
[root@centos ~]# useradd ユーザ名
[root@centos ~]# passwd ユーザ名
Changing password for user user_name.
New password: パスワード ←ユーザーのパスワード入力
Retype new password: パスワード ←パスワード再入力
passwd: all authentication tokens updated successfully.
2.ホームディレクトリ作成されてるか確認
# ls /home/
作ったユーザのフォルダがあればOK
3.ユーザ情報を確認
テキストファイルを閲覧できる
# less /etc/passwd
で追加したユーザー情報を確認
※最後の行に ユーザ名:x:500:500::/home/ユーザ名:/bin/bash
が追加されてればOK
※上記は ユーザ名:パスワード:ユーザID:グループID:コメント:ホームディレクトリ:シェル
を表してる
グループを作成してみよう
1.グループを作成する
# groupadd [オプション名] グループ名
2.グループ情報を確認する
# cat /etc/group
※最終行に グループ名:x:501
が追加されていればOK
※501はグループID。グループを増やすごとに500から1ずつ増えていく。
ユーザーに管理者権限を与えつつユーザを切り替える
管理者権限でないと使えないコマンドがある(むやみに重要なファイルなど削除されたりしないため)ので、一般ユーザ(自分で作成したユーザ)に管理者権限を与えます。
権限の与え方は2通り。
rootユーザの状態で以下のどちらかのコマンド入力。
su ユーザー名 ←ユーザーの環境を引き継いで昇格。
su - ユーザー名 ←環境引き継がずに昇格。
基本、下を使えばOK
sudoコマンドにユーザ登録して、管理者権限を与える
毎回、権限を与えてユーザ切り替えするのも面倒なので、管理者権限を受けられるユーザを登録しておく。
rootユーザの状態で以下コマンド入力。
visudo /vi/sudoers ←ユーザーを登録する
最終業に ユーザー名 ALL=NOPASSWD=ALL
を追加。
ipアドレスを取得してみる
ネットワーク設定から、自動で取得にチェック入れる。
コマンドプロンプトでipconfigコマンド入れると、ipアドレスが見れる。
hostsファイルの設定
ホスト名とipアドレスの対応テーブルのあるファイル。
これで名前解決を行う。
OSの種類によって保存場所が違う。
pingコマンドで通信できるか試す。
パケット送信して、うまくいけば返答がある。
4回リクエストするので、4回リプライあればOK。
・まずは自分宛に送ってみて自分のネットワークが使える状態か確認する。
・次に名前解決が行われているか、自分のホスト名でping飛ばす。
・ルーターへ飛ばす。
linuxでネットワークを設定する
Linuxはifconfigで自情報が分かる。
pingはctrl+Cを押さないとずっと送られる。
回数決めるなら、ping -c 回数 ホスト名
とやる。
pingのホスト名をドメイン名にすれば、ネットのサイトへも送れる。
SSHを使う
接続のたびにクライアントからサーバへ公開鍵が送られ、認証をし、OKならユーザー認証に入る。
セキュリティ設定
SFTPでファイル転送
SSHで接続後にsftp ホスト名 で接続。
そして、get ファイル名、put ファイル名でファイルやり取りする。
SSHの公開鍵暗号化設定をする
クライアント側で
ssh-keygen -t rsa