LinuC Lv1は101と102の2科目で構成されるが、101が「Linuxを起動して使えるようにする」ための基礎中心なのに対し、102はシェル・ネットワーク・システム管理・セキュリティ・ライセンスといった運用者視点の範囲になる。試験直前に全体像を確認したい受験者にも、実務でコマンドを引きたくなったエンジニアにも使える形で、102の出題範囲を棚卸ししていく。
LinuCレベル1-102の立ち位置
LinuC(リナック)はLPI-Japanが提供する日本のLinux技術者向け認定で、2018年からLPICに代わる制度として始まった。すでにLPICを取得している人は簡単な手続きでLinuC資格に移行できる。試験は90分60問、合格基準は7割の多肢選択式で、レベル1〜3まで順に取得していく構造になっている。
全体のレベル構造と、102試験が扱う6つの主題を図で整理しておく。
ここから各主題を順に見ていく。
シェルおよびスクリプト
102で最初につまずきやすいのがbashの環境設定ファイル読み込み順序だ。.bash_profileと.bashrcの違い、全ユーザ共通の/etc/profileと個人設定の関係が整理できていないと、「エイリアスがSSHログイン時だけ効かない」といった実務トラブルの原因になる。
読み込みタイミングはログインシェルとして起動されたか、インタラクティブに呼ばれたかで分岐する。
シェルスクリプトで頻出のtestコマンドによるファイル判定オプションも整理しておく。
| オプション | 真となる条件 |
|---|---|
| -d / -f / -e | ディレクトリ / 通常ファイル / 存在する |
| -L | シンボリックリンク |
| -r / -w / -x | 読み取り / 書き込み / 実行可能 |
ネットワークの基礎
ネットワーク章は設定ファイルの場所と新旧コマンドの対応を押さえるのが近道だ。
| ファイル | 役割 |
|---|---|
| /etc/hostname | ホスト名 |
| /etc/hosts | ホスト名とIPの静的対応 |
| /etc/resolv.conf | 参照するDNSサーバ |
| /etc/nsswitch.conf | 名前解決手段の優先順位 |
現場では古いコマンドから新しい代替への移行が進んでおり、試験でも両方が問われる。ifconfig→ip addr/ip link、route→ip route、netstat→ss、nslookup→dig/hostという対応を覚える。ipはip OBJECT COMMANDの形で、OBJECTにaddr link route neighを取る。
開いているポートを調べる手段は複数あり、用途で使い分ける。
| コマンド | 用途 | 特徴 |
|---|---|---|
| ss / netstat | 自ホストのポート | -pでプロセスも表示 |
| lsof -i | 自ホストのポート | プロセス起点で見える、root権限必要 |
| nmap | 外部からのポートスキャン | 攻撃者視点の確認 |
| fuser | ポート占有プロセスの特定 | ピンポイント調査 |
DNS問い合わせはdig @server domain query-typeの形式で、query-typeにA(アドレス)、NS(ネームサーバ)、MX(メールサーバ)、SOA(ゾーン情報)、ANY(すべて)を指定する。
システム管理と重要なサービス
時刻管理はdate(システム時刻)、hwclock(ハードウェア時刻)、timedatectl(systemd環境での統合管理)、chronyc(Chrony制御)の4つを役割で使い分ける。
hwclock --systohc # システム時刻 → ハードウェア時刻
timedatectl set-timezone Asia/Tokyo # タイムゾーン変更
timedatectl set-ntp yes # NTP同期を有効化
chronyc tracking # Chronyの同期状態確認NTP実装は従来のntpdからChronyへの移行が進んでいる。ネットワークが断続的に切れる環境(ノートPCや仮想マシン)でも同期収束が速く、最近のディストリビューションでは標準になっている。
ログ管理の二系統
ログまわりはsyslog系(rsyslog、syslog-ng)とsystemd-journaldの2系統が共存している状態。この関係を押さえるとjournalctlと/var/log/messagesのどちらを見るべきかの判断が速くなる。
journalctlで頻用するオプションは-f(追従)、-u <unit>(ユニット絞り込み)、-k(カーネルログ)、--since "1 hour ago"の4つ。メール配送関連では、MTA/MDA/MUAの役割分担に加え、mailq(キュー確認)、/etc/aliasesとnewaliases(別名設定)、~/.forward(ユーザ単位の転送)を押さえておく。
セキュリティ
セキュリティ章はボリュームが大きいが、ユーザー関連とネットワーク関連に二分すると見通しがよくなる。
| 仕組み / コマンド | 役割 |
|---|---|
| SUID | root所有のプログラムを一般ユーザがroot権限で実行 |
| chage | パスワード有効期限の設定(-l表示、-M最大日数) |
| who / w / last | ログイン状況・履歴の確認 |
| /bin/false, /sbin/nologin | ログインシェル無効化によるログイン禁止 |
| ulimit | プロセス単位のリソース上限 |
| su / sudo | ユーザ切替・管理者コマンド実行 |
| /etc/nologin | 作成するとroot以外のログインを禁止 |
パケットフィルタリングの階層
LinuxカーネルのNetfilterを制御する上位ツールとして、従来のiptablesとCentOS 7以降のfirewalldがある。階層を押さえると「iptablesとfirewalldはどっちを触るべきか」で迷わなくなる。
firewalld操作は--permanentの有無で挙動が変わる二重構造に注意する。
firewall-cmd --remove-service=dhcpv6-client # 即時反映だが再起動で消える
firewall-cmd --permanent --remove-service=dhcpv6-client # 永続化するが reload が必要
firewall-cmd --reload # --permanent を反映SSHとスーパーサーバ
SSH鍵の暗号アルゴリズムはRSA・DSA(安全性懸念)・ECDSA・ED25519の4種で、新規鍵生成はED25519が推奨される。ssh-keygenで鍵ペアを作成し、公開鍵を接続先の~/.ssh/authorized_keysに登録する。ファイル暗号化にはGnuPG(gpg)を使う。
リソース節約のために常駐せず要求時だけサービスを起動する仕組みとしてinetd/xinetdがある。xinetdの設定は/etc/xinetd.confと/etc/xinetd.d/配下で構成される。
オープンソースの文化
ライセンスはコピーレフト(派生物も同じライセンスで公開)の強度で性質が分かれる。
| ライセンス | コピーレフト | 特徴 |
|---|---|---|
| GPL | 強 | FSFの代表的ライセンス |
| AGPL | 強 | ネットワーク越しの利用でもソース開示を要求 |
| LGPL | 弱 | ライブラリ向け |
| MPL | 弱 | Mozilla Foundation |
| BSD / MIT / Apache | なし | 商用利用しやすい |
いずれも著作権表示と免責事項の記載は義務。OSSをプロダクトに組み込む際に最初に確認すべき点になる。
試験対策と実務定着を両立させる
102の範囲は単にコマンドを暗記しても定着しづらい。どのレイヤーで何が動いているかを紐づけて理解するほうが結果的に得点にもつながる。ネットワーク系なら「カーネルのNetfilter → 管理コマンド(iptables/firewalld) → 設定ファイル」、ログ系なら「アプリ → syslog/journald → logrotateでローテーション」といった具合に、流れで押さえればコマンドが単なる暗記事項ではなくなる。
手を動かす環境はDockerコンテナやクラウドの無料枠で気軽に用意できる。試験勉強のついでにjournalctl -fでログを眺めたり、ss -tulpnで空きポートを確認したりといった動作を日常業務に組み込んでおけば、合格後も記憶が薄れにくい。チートシートは暗記ツールではなく、実務で引いて確認する早見表として使うのが一番効果的だ。