目次
第1章 Linuxの基礎知識
1-1 UNIXの基礎
1-1-1 ログイン・ログアウト
1-1-2 シェルとコマンド
1-1-3 マニュアルコマンド man
- マニュアルを参照する
- manの読み方
- manファイル内の検索
1-1-4 ユーザとグループ
1-1-5 パーミッションと所有権
- パーミッション
- ファイルタイプ
1-1-6 ファイル
1-1-7 ディレクトリ
1-2 Linuxのディレクトリ構成
1-2-1 前提知識
- FHS
- マウント
- パーティション
1-2-2 /(ルート)
1-2-3 /boot
- ①Systemmap-2632-5-amd64
- ②config-2632-5-amd64
- ③grub
- ④initrdimg-2632-5-amd64
- ⑤vmlinuz-2632-5-amd64
1-2-4 /etc
1-2-5 /bin
1-2-6 /sbin
1-2-7 /usr
- /usr/local
1-2-8 /home
1-2-9 /var
- /var/tmp
- /var/{log,spool}
- /var/mail
- /var/run
- /var/lock
- /var/{opt,cache,lib/{misc,locate},local]
1-2-10 /proc
1-2-11 /sys
1-2-12 /dev
1-2-13 /tmp
第2章 シェル
2-1 シェルを使ってみよう
2-1-1 シェルとは
2-1-2 シェルの種類
- bash
- csh/tcsh
- dash
- zsh
2-1-3 シェルの機能
- コマンドプロンプト
- プログラム実行の動き
- 補完機能とヒストリ機能
- ジョブ制御機能
- リダイレクトとパイプ
2-2 シェルコマンド
2-2-1 ビルトインコマンドとは
2-2-2 主なビルドインコマンド
- 何もせずに終了コード「0」を返す
- ほかのシェルスクリプトを読み込んで実行する
- 指定したディレクトリに移動する
- パラメータの間接参照をする
- 指定されたコマンドを自身で実行する
- 標準入力から1行読み込む
- そのほかのビルドインコマンド
2-3 シェルスクリプトの文法
2-3-1 シェル宣言をする
- 「/」の意味
2-3-2 シェルの変数
- シェル変数
- 環境変数
- 位置パラメータ
- 特殊パラメータ
2-3-3 ifによる条件判断
2-3-4 while/forで繰り返す構文
- while文を使ったコマンドの繰り返し
- for文を使ったコマンドの繰り返し
- breakでループを抜けてcontinueで続ける
- ワイルドカードを利用した繰り返し
2-3-5 条件分岐
- case文
2-3-6 シェル関数
- function文で関数を利用する
- shiftを利用してコマンドライン引数を処理する
- 「'」と「""」の違い
- バッククォート
2-4 シェルの設定ファイル
2-4-1 ログインシェル
2-4-2 対話シェル
第3章 Linuxカーネル
3-1 Linuxカーネル概要
3-1-1 Linuxカーネルとは
- デバイス管理
- プロセス管理
- メモリ管理
- システムコールの提供
3-1-2 システムが起動するまでの仕組み
- BIOS
- MBR
- ブートローダ
- Linuxカーネルファイル構成
3-2 Linuxで利用するブートローダ
3-2-1 GRUB
- GRUBの2つのバージョン
3-2-2 GRUBシェル
- set root
- kernel/linux
- initrd
- boot
3-3 標準入力・標準出力・標準エラー出力
3-3-1 3つの標準入出力
- 標準入力
- 標準出力
- 標準エラー出力
3-3-2 標準入出力の表示例
- ファイルディスクリプタの生成
3-4 ファイルシステム
3-4-1 ファイルシステムとは
3-4-2 ファイルシステムの仕組み
- ジャーナルファイルシステム
3-4-3 ファイルシステムを操作するコマンド
3-4-4 カーネルとライブラリとアプリケーション
3-5 アプリケーションの動作
3-5-1 lsコマンドの動作
3-5-2 straceで動作を追う
3-6 Linuxカーネルの構築
3-6-1 ソースコードの準備
3-6-2 ビルド設定方法
3-6-3 ビルド方法
3-7 Debian GNU/Linuxでのカーネル構築方法
3-7-1 ビルドの準備とソースパッケージの取得
3-7-2 ビルド設定
3-7-3 パッケージのビルド
3-7-4 パッケージのインストール
3-8 CentOSでのカーネル構築方法
3-8-1 ソースパッケージの取得
3-8-2 ソースパッケージの展開
3-8-3 ビルド設定
3-8-4 パッケージのビルド
3-8-5 VanillaカーネルからカーネルRPMパッケージを作成する
3-8-6 パッケージのインストール
3-9 UNIXデバイス
3-9-1 デバイスファイルの種類
- ブロックデバイス
- キャラクタデバイス
3-9-2 メジャー番号とマイナー番号
第4章 X Window System
4-1 X Window Systemの構成
4-1-1 X Window Systemとは
- クライアント/サーバ
4-1-2 Xプロトコル
4-1-3 XFree86とXorg
4-1-4 Xユーティリティ
4-1-5 Xセッション
4-1-6 Xセッションマネージャ
4-2 Xのアクセス制御
4-2-1 xhost
4-2-2 xauth
4-3 Xの設定
4-3-1 xorgconfの生成
4-3-2 xorgconfの内容
- 基本フォーマット
- xorgconfのサンプル
- キーボードとマウスの設定
- ビデオカードの設定
- ディスプレイの設定
4-3-3 xorgconfd
4-4 Xの起動
4-4-1 Xの起動の流れ
4-4-2 xinitとstartx
- startx(1)の実行(Ubuntu)
- startx(1)の実行(CentOS)
4-5 Xディスプレイマネージャ
4-5-1 Xディスプレイマネージャとは
4-5-2 XDMCP
4-6 Xサーバのログ
4-6-1 Xサーバのログの見方
第5章 スクリプトとシステム設定ファイル
5-1 起動スクリプトと設定ファイル
5-1-1 sysvinit
5-1-2 upstart
- ジョブの記述方法
- initctlを使う
- upstartの動作(CentOS)
- upstartの動作(Ubuntu)
- 独自ジョブファイルの作成
5-1-3 systemd
- systemdの構成
- systemdのユニット
- systemdの利用コマンド
- systemdの設定ファイル
- サービスの登録・起動・停止・再起動
5-1-4 パーティションとマウントポイントを紐付ける(/etc/fstab)
5-1-5 コマンドライン入力支援ライブラリ(/etc/inputrc)
5-2 ユーザとグループ定義ファイル
5-2-1 UNIXにおけるユーザとグループ
5-2-2 パスワードファイル(/etc/passwd)
5-2-3 暗号化したパスワードを格納する(/etc/shadow)
5-2-4 ユーザグループファイル(/etc/group,/etc/gshadow)
5-3 ネットワーク設定スクリプト
5-3-1 Linuxのネットワーク機能
5-3-2 TCP/IP
- TCP/IPとは
- IPアドレス
5-3-3 ネットワーク設定の動作
- ネットワークインタフェース設定ファイル(CentOS)
- ネットワークインタフェース設定ファイル(Debian)
5-3-4 名前解決問い合わせ用DNSサーバを指定する(/etc/resolvconf)
- 名前解決の必要性
- DNSの種類(コンテンツサーバ・キャッシュサーバ)
- 名前解決の方法
- resolv.confの書式
5-4 パケットフィルタリング
5-4-1 Linuxでiptables/Netfilterを動作させる
5-4-2 TCP/IPとICMPとパケットフィルタ
5-4-3 iptablesの書き方
- ルール=マッチング+ターゲット
- チェイン=ルール+ルール+……
- テーブル=チェイン+チェイン
5-4-4 ロギング
5-4-5 パケットフィルタスクリプトの作成
5-4-6 デバッグ方法
5-4-7 iptablesルール起動スクリプト
5-5 udev
5-5-1 udevの設定ファイル
5-5-2 udevルールファイル
5-6 httpd起動スクリプト
5-6-1 httpd起動スクリプト(CentOS)
5-6-2 httpd起動スクリプト(Debian)
第6章 アプリケーションサーバ
6-1 SSHサーバ
6-1-1 SSHとは
6-1-2 SSHデーモン
6-1-3 SSHデーモンの設定ファイル
- sshd_configの内容(Ubuntu)
- sshd_configの内容(CentOS)
6-1-4 SSHクライアントの設定
6-2 ネットワークファイルシステム
6-2-1 NFS
6-2-2 Samba
- smb.confの内容
- smbclientによる接続
- ファイルマネージャ「Nautilus」
6-2-3 WebDAV
- httpd-davconfの内容
- WebDAVの設定例
- WebDAVへのアクセス
6-3 Apache(httpdサーバ)
6-3-1 Apacheとは
6-3-2 Apacheの設定ファイル
- 設定ファイルの内容(CentOS)
- 設定ファイルの内容(Debian)
6-4 Postfix(SMTPサーバ)
6-4-1 メールシステムの概要
6-4-2 SMTPサーバ Postfix
- Postfixとは
- Postfixと協調するデーモン
- 設定ファイルの内容(Debian)
- 設定ファイルの内容(CentOS)
- telnetを使ってSMTPサーバと会話する
第7章 システム管理
7-1 syslogd
7-1-1 syslogとは
7-1-2 syslogの記録内容
7-1-3 ファシリティとプライオリティ
7-1-4 設定ファイル(rsyslog)
7-1-5 syslogデーモン運用の注意点
- 時刻は各サーバで合わせよう
- syslogを信用しきってよいのか
7-2 cron
7-2-1 cronデーモン
7-2-2 cronの設定ファイル
- 設定ファイル(Ubuntu)
- 設定ファイル(CentOS)
7-2-3 ユーザごとのcron設定ファイル
- crontabによる設定
- ユーザごとのアクセス制御
7-2-4 設定の確認
7-2-5 ログローテーション
- ログローテーションとは
- ログローテーションの処理手順
7-3 anacron
7-3-1 anacronとは
7-3-2 anacronの実行
7-4 at
7-4-1 atとは
7-4-2 ジョブキューの確認と出力
第8章 認証
8-1 認証
8-1-1 認証とは
8-1-2 Linuxの認証の流れ
8-2 PAMによる認証
8-2-1 PAMとは
8-2-2 PAMの設定ファイル
- /etc/pamdの記述フォーマット
- /etc/pamdの記述例
8-3 LDAPによる認証
8-3-1 LDAPとは
8-3-2 OpenLDAPの設定
- OpenLDAPの稼働に必要なもの
- LDIF
- slapdconfをLDIFに変換する
- 新規でOpenLDAPを設定する
- LDAPとシステムの連携
- LDAPとPAMの連携
- デバッグ方法
8-4 SSH公開鍵認証
8-4-1 公開鍵暗号
- 公開鍵と秘密鍵の違い
- SSHサーバの公開鍵
8-4-2 SSHでの公開鍵認証
- 公開鍵の有効化
- SSHサーバにおける公開鍵の設定
- SSHクライアントでのデバッグ