【LinuC Lv1-102 チートシート】試験範囲と実務コマンドを一気に整理

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つの主題を図で整理しておく。

ここから各主題を順に見ていく。

LinuCレベル体系と102試験のスコープ レベル1 初級(本記事) レベル2 中級 レベル3 上級 レベル1の内訳 101試験 1.01 Linuxインストール・仮想化 1.02 ファイル・ディレクトリ操作 1.03 GNUとUnixのコマンド 1.04 リポジトリとパッケージ管理 1.05 ハードウェアとファイルシステム 102試験(本記事) 1.06 シェルおよびスクリプト 1.07 ネットワークの基礎 1.08 システム管理 1.09 重要なシステムサービス 1.10 セキュリティ 1.11 オープンソースの文化

シェルおよびスクリプト

102で最初につまずきやすいのがbashの環境設定ファイル読み込み順序だ。.bash_profile.bashrcの違い、全ユーザ共通の/etc/profileと個人設定の関係が整理できていないと、「エイリアスがSSHログイン時だけ効かない」といった実務トラブルの原因になる。

読み込みタイミングはログインシェルとして起動されたか、インタラクティブに呼ばれたかで分岐する。

bash環境設定ファイルの読み込み順序 ログイン時 bash起動時 ログアウト時 /etc/profile (全ユーザ) ~/.bash_profile なければ ~/.bash_login ~/.profile /etc/bash.bashrc (Debian) /etc/bashrc (RedHat) ~/.bashrc ~/.bash_logout ポイント: ログイン時は profile 系、インタラクティブ起動時は bashrc 系という役割分担。 多くの環境で .bash_profile 内から .bashrc を読み込ませ、SSHログインでも alias を有効化する。

シェルスクリプトで頻出のtestコマンドによるファイル判定オプションも整理しておく。

オプション真となる条件
-d / -f / -eディレクトリ / 通常ファイル / 存在する
-Lシンボリックリンク
-r / -w / -x読み取り / 書き込み / 実行可能

ネットワークの基礎

ネットワーク章は設定ファイルの場所新旧コマンドの対応を押さえるのが近道だ。

ファイル役割
/etc/hostnameホスト名
/etc/hostsホスト名とIPの静的対応
/etc/resolv.conf参照するDNSサーバ
/etc/nsswitch.conf名前解決手段の優先順位

現場では古いコマンドから新しい代替への移行が進んでおり、試験でも両方が問われる。ifconfigip addr/ip linkrouteip routenetstatssnslookupdig/hostという対応を覚える。ipip OBJECT COMMANDの形で、OBJECTにaddr link route neighを取る。

開いているポートを調べる手段は複数あり、用途で使い分ける。

コマンド用途特徴
ss / netstat自ホストのポート-pでプロセスも表示
lsof -i自ホストのポートプロセス起点で見える、root権限必要
nmap外部からのポートスキャン攻撃者視点の確認
fuserポート占有プロセスの特定ピンポイント調査

DNS問い合わせはdig @server domain query-typeの形式で、query-typeA(アドレス)、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のどちらを見るべきかの判断が速くなる。

syslog系とsystemd-journaldの関係 ログ生成元 アプリケーション / カーネル / systemdユニット rsyslog / syslog-ng /etc/rsyslog.conf ファシリティ + プライオリティで振分 出力先: /var/log/* (テキスト) systemd-journald /etc/systemd/journald.conf systemd起動プロセスのstdoutも収集 出力先: /var/log/journal/ (バイナリ) 連携可 参照コマンド cat / tail / grep / less 参照コマンド journalctl (-f / -u / -k / –since) 補助: logger コマンドで任意のログメッセージを生成、logrotate で古いログをローテーション管理する。

journalctlで頻用するオプションは-f(追従)、-u <unit>(ユニット絞り込み)、-k(カーネルログ)、--since "1 hour ago"の4つ。メール配送関連では、MTA/MDA/MUAの役割分担に加え、mailq(キュー確認)、/etc/aliasesnewaliases(別名設定)、~/.forward(ユーザ単位の転送)を押さえておく。

セキュリティ

セキュリティ章はボリュームが大きいが、ユーザー関連ネットワーク関連に二分すると見通しがよくなる。

仕組み / コマンド役割
SUIDroot所有のプログラムを一般ユーザが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はどっちを触るべきか」で迷わなくなる。

Netfilterを中心としたパケットフィルタの階層 ユーザ空間 / 管理ツール iptables 従来からの管理コマンド チェイン・テーブル単位で 細かくルールを記述 firewalld CentOS 7以降の標準 firewall-cmd で操作 ゾーン概念 (public等) ルールを設定 カーネル空間 Netfilter Linuxカーネルのパケットフィルタ基盤 (実際のパケット処理を担当)

firewalld操作は--permanentの有無で挙動が変わる二重構造に注意する。

firewall-cmd --remove-service=dhcpv6-client              # 即時反映だが再起動で消える
firewall-cmd --permanent --remove-service=dhcpv6-client  # 永続化するが reload が必要
firewall-cmd --reload                                    # --permanent を反映

SSHとスーパーサーバ

SSH鍵の暗号アルゴリズムはRSADSA(安全性懸念)・ECDSAED25519の4種で、新規鍵生成はED25519が推奨される。ssh-keygenで鍵ペアを作成し、公開鍵を接続先の~/.ssh/authorized_keysに登録する。ファイル暗号化にはGnuPG(gpg)を使う。

リソース節約のために常駐せず要求時だけサービスを起動する仕組みとしてinetd/xinetdがある。xinetdの設定は/etc/xinetd.conf/etc/xinetd.d/配下で構成される。

オープンソースの文化

ライセンスはコピーレフト(派生物も同じライセンスで公開)の強度で性質が分かれる。

ライセンスコピーレフト特徴
GPLFSFの代表的ライセンス
AGPLネットワーク越しの利用でもソース開示を要求
LGPLライブラリ向け
MPLMozilla Foundation
BSD / MIT / Apacheなし商用利用しやすい

いずれも著作権表示と免責事項の記載は義務。OSSをプロダクトに組み込む際に最初に確認すべき点になる。

試験対策と実務定着を両立させる

102の範囲は単にコマンドを暗記しても定着しづらい。どのレイヤーで何が動いているかを紐づけて理解するほうが結果的に得点にもつながる。ネットワーク系なら「カーネルのNetfilter → 管理コマンド(iptables/firewalld) → 設定ファイル」、ログ系なら「アプリ → syslog/journald → logrotateでローテーション」といった具合に、流れで押さえればコマンドが単なる暗記事項ではなくなる。

手を動かす環境はDockerコンテナやクラウドの無料枠で気軽に用意できる。試験勉強のついでにjournalctl -fでログを眺めたり、ss -tulpnで空きポートを確認したりといった動作を日常業務に組み込んでおけば、合格後も記憶が薄れにくい。チートシートは暗記ツールではなく、実務で引いて確認する早見表として使うのが一番効果的だ。

目次