こんにちは、インフラエンジニアのryuです。
LPICの勉強をしていて、参考書の内容は読めるのに、問題になるとコマンドのオプションやファイルの場所で迷うことはありませんか?
LPICの問題は、選択肢を選ぶだけでなく、コマンド名やファイルのパスを入力して答える形式もあります。なんとなく覚えているだけでは、点数につながりにくい試験です。
この記事では、LPIC-1の2つの試験(101-500と102-500)から5問ずつ、合計10問の練習問題を用意しました。すべてオリジナルの問題で、1問ずつ正解と解説を付けています。
勉強の進め方そのものについては『LPICの勉強方法』で書いているので、ここでは問題を解くことに集中していきます。
LPIC-1の試験の基本¶
問題に入る前に、試験の基本を確認しておきます。
LPIC-1は、LPI(Linux Professional Institute)が認定しているLinuxの資格です。現在の試験はバージョン5.0で、101-500 と 102-500 の2つの試験に分かれています。
LPIC-1に認定されるには、101と102の両方に合格する必要があります。 どちらから受けてもかまいません。
| 項目 | 内容 |
|---|---|
| 試験 | 101-500 と 102-500 |
| 試験時間 | 各90分 |
| 問題数 | 各60問 |
| 形式 | 選択式と、コマンドなどを入力する記述式 |
| 合格点 | 200〜800点のスコアで500点 |
問題数は、出題範囲の各項目に付けられた重み(Weight)の合計と結びついています。重みが大きい項目ほど、多く出題されると考えてください。
101と102の出題範囲¶
2つの試験の出題範囲は、次のように分かれています。
| 試験 | 主題 | 主な内容 |
|---|---|---|
| 101 | 101 システムアーキテクチャ | ハードウェアの設定、起動の流れ、ランレベルとターゲット |
| 101 | 102 Linuxのインストールとパッケージ管理 | パーティション、ブートローダー、dpkgとrpm |
| 101 | 103 GNUとUnixのコマンド | テキスト処理、リダイレクト、プロセス管理、正規表現、vi |
| 101 | 104 デバイスとファイルシステム | マウント、パーミッション、リンク、FHS |
| 102 | 105 シェルとシェルスクリプト | 環境変数、シェルの設定、簡単なスクリプト |
| 102 | 106 ユーザーインターフェースとデスクトップ | X11、ディスプレイマネージャー、アクセシビリティ |
| 102 | 107 管理タスク | ユーザーとグループ、ジョブスケジュール、ロケール |
| 102 | 108 重要なシステムサービス | 時刻の同期、ログ、メール転送 |
| 102 | 109 ネットワークの基礎 | IPアドレス、ネットワーク設定、名前解決 |
| 102 | 110 セキュリティ | SUID、パスワードの管理、SSH、GnuPG |
今回の10問は、次のように振り分けています。
| 問題 | 試験 | 主題 |
|---|---|---|
| 問題1〜2 | 101 | 103 GNUとUnixのコマンド |
| 問題3 | 101 | 104 デバイスとファイルシステム |
| 問題4 | 101 | 102 パッケージ管理 |
| 問題5 | 101 | 101 システムアーキテクチャ |
| 問題6 | 102 | 105 シェルとシェルスクリプト |
| 問題7〜8 | 102 | 107 管理タスク |
| 問題9 | 102 | 109 ネットワークの基礎 |
| 問題10 | 102 | 110 セキュリティ |
正解は各問題の下にある引用ブロックに書いています。先に答えを見ないように、自分の答えを決めてから読み進めてください。
101試験の練習問題¶
まずは101試験の範囲から5問です。コマンド操作とファイルシステムが中心になります。
問題1:ファイルの末尾を表示する¶
ログファイル /var/log/app.log の最後の20行だけを表示したいとき、正しいコマンドはどれですか?
- A.
head -n 20 /var/log/app.log - B.
tail -n 20 /var/log/app.log - C.
cat -n 20 /var/log/app.log - D.
less +20 /var/log/app.log
正解:B
tailはファイルの末尾を表示するコマンドで、-nで行数を指定します。headは先頭を表示するので、Aでは最初の20行が表示されます。cat -nは行番号を付けて全体を表示するオプションで、行数の指定にはなりません。tail -fで追記を待ち受けながら表示する使い方も、よく問われます。
問題2:標準出力と標準エラー出力をまとめる¶
コマンド ./backup.sh の標準出力と標準エラー出力を、両方とも result.log に書き込みたいとします。正しいものはどれですか?
- A.
./backup.sh 2>&1 > result.log - B.
./backup.sh > result.log 2>&1 - C.
./backup.sh 2> result.log - D.
./backup.sh | result.log
正解:B
リダイレクトは左から順に処理されます。Bでは、まず標準出力(1)が
result.logに向き、その後で標準エラー出力(2)を「標準出力と同じ先」に向けるので、両方がファイルに入ります。Aは順番が逆で、2>&1の時点では標準出力がまだ画面を向いているため、エラーは画面に出てしまいます。Cはエラーだけ、Dはパイプでファイル名をコマンドとして扱おうとするので誤りです。
この順番の違いは、記述式でもよく問われます。標準入出力の考え方は『標準入力・標準出力とは?』と『シェルのリダイレクト』で詳しく説明しています。
問題3:パーミッションの数値表記¶
chmod 754 report.sh を実行したあと、ls -l で表示されるパーミッションはどれですか?
- A.
-rwxr-xr-- - B.
-rwxr--r-x - C.
-rwxrw-r-- - D.
-rw-r-xr--
正解:A
数値表記では、読み取り(r)が4、書き込み(w)が2、実行(x)が1で、その合計を所有者・グループ・その他の順に並べます。
7は4+2+1でrwx、5は4+1でr-x、4はr--です。並べるとrwxr-xr--になります。
パーミッションは101と102の両方で出てくる土台です。所有者やグループの考え方も含めて、『Linuxのパーミッション』で確認しておくと安心です。
問題4:ファイルがどのパッケージに含まれるか調べる¶
Debian系のディストリビューションで、/usr/bin/curl というファイルがどのパッケージからインストールされたかを調べたいとします。正しいコマンドはどれですか?
- A.
dpkg -L /usr/bin/curl - B.
dpkg -S /usr/bin/curl - C.
dpkg -i /usr/bin/curl - D.
dpkg -r /usr/bin/curl
正解:B
dpkg -Sは、ファイル名から、そのファイルを含むパッケージを検索します。dpkg -Lは逆で、パッケージ名を指定して、そのパッケージに含まれるファイルの一覧を表示します。-iはインストール、-rは削除のオプションです。RPM系で同じことをするにはrpm -qf /usr/bin/curlを使います。
dpkgとrpmのオプションは似ていて混ざりやすいので、表にして並べて覚えるのがおすすめです。
| やりたいこと | Debian系 | RPM系 |
|---|---|---|
| ファイルからパッケージを探す | dpkg -S |
rpm -qf |
| パッケージのファイル一覧 | dpkg -L |
rpm -ql |
| インストール済みか確認 | dpkg -l |
rpm -qa |
問題5:起動時のターゲットを変更する¶
systemdを使っているシステムで、次回以降の起動時にGUIを使わないマルチユーザーモード(テキストログイン)で起動するように設定したいとします。正しいコマンドはどれですか?
- A.
systemctl isolate multi-user.target - B.
systemctl set-default multi-user.target - C.
systemctl enable multi-user.target - D.
systemctl get-default
正解:B
systemctl set-defaultは、起動時に使われるデフォルトのターゲットを変更します。Aのisolateは、いま動いているシステムをそのターゲットに切り替えるコマンドで、次回の起動時の設定は変わりません。Dのget-defaultは現在のデフォルトを表示するだけです。SysVinitのランレベル3に相当するのがmulti-user.target、ランレベル5に相当するのがgraphical.targetです。
「今すぐ切り替える」のか「次回の起動から変える」のかで、使うサブコマンドが変わります。問題文のどちらを聞いているかを、落ち着いて読むことが大事です。
102試験の練習問題¶
次は102試験の範囲から5問です。シェルの設定、管理タスク、ネットワーク、セキュリティを扱います。
問題6:変数を子プロセスに引き継ぐ¶
シェルで APP_ENV=production と変数を定義しました。この変数を、このシェルから起動するスクリプト(子プロセス)でも参照できるようにするには、どのコマンドを実行しますか?
- A.
set APP_ENV - B.
export APP_ENV - C.
unset APP_ENV - D.
alias APP_ENV
正解:B
シェルで定義しただけの変数はシェル変数で、子プロセスには引き継がれません。
exportで環境変数にすると、子プロセスにも渡されます。unsetは変数を削除するコマンドで、aliasはコマンドの別名を付けるコマンドです。export APP_ENV=productionのように、定義と同時にexportする書き方もできます。
環境変数の確認方法は『envとprintenvの使い方』でまとめています。
問題7:crontabの時刻指定¶
crontabに次の行を書きました。このジョブが実行されるタイミングはどれですか?
30 2 * * 1 /usr/local/bin/backup.sh
- A. 毎月1日の2時30分
- B. 毎週月曜日の2時30分
- C. 毎日1時2分30秒
- D. 毎週月曜日の30分ごと
正解:B
crontabの時刻指定は、左から「分」「時」「日」「月」「曜日」の順です。この行は、分が30、時が2、日と月は毎回、曜日が1(月曜日)なので、毎週月曜日の2時30分に実行されます。曜日は0と7が日曜日で、1が月曜日です。秒はcrontabでは指定できません。
5つの欄の順番は、記述式で問われることもあります。書き方は『crontabの使い方』で、systemd timerとの違いは『cronとsystemd timerの違い』で説明しています。
問題8:パスワードのハッシュが保存されるファイル¶
一般的なLinuxシステムで、ユーザーのパスワードのハッシュ値が保存されていて、一般ユーザーは読み取れないファイルはどれですか?
- A.
/etc/passwd - B.
/etc/group - C.
/etc/shadow - D.
/etc/login.defs
正解:C
パスワードのハッシュ値は
/etc/shadowに保存され、rootなど限られたユーザーしか読めません。/etc/passwdにはユーザー名やUID、ホームディレクトリ、ログインシェルが書かれていて、誰でも読めるため、パスワードの欄にはxだけが入っています。/etc/groupはグループの情報、/etc/login.defsはuseraddなどが使う初期設定のファイルです。
問題9:DNSサーバーを指定するファイル¶
名前解決に使うDNSサーバーのIPアドレスを、nameserver という行で指定するファイルはどれですか?
- A.
/etc/hosts - B.
/etc/hostname - C.
/etc/resolv.conf - D.
/etc/nsswitch.conf
正解:C
/etc/resolv.confにはnameserver 192.0.2.53のように、問い合わせ先のDNSサーバーを書きます。/etc/hostsはホスト名とIPアドレスの対応を直接書くファイル、/etc/hostnameは自分のホスト名、/etc/nsswitch.confはhostsなどをどの順番で調べるかを決めるファイルです。
4つのファイルは役割がはっきり分かれていますが、名前が似ているので混同しやすいところです。名前解決がどの順番で進むかは『Linuxが名前を引く順番』で詳しく追っています。
問題10:SUIDが設定されたファイルを探す¶
システム全体から、SUIDビットが設定されたファイルを検索したいとします。正しいコマンドはどれですか?
- A.
find / -perm -4000 -type f - B.
find / -perm -2000 -type f - C.
find / -perm -1000 -type d - D.
find / -user root -type f
正解:A
特殊なパーミッションは、SUIDが4000、SGIDが2000、スティッキービットが1000で表します。
-perm -4000は、SUIDのビットが立っているファイルを探す指定です。BはSGID、Cはスティッキービットが付いたディレクトリを探します。Dはrootが所有するファイルを探すだけで、SUIDとは関係ありません。
SUIDが付いたファイルは、実行したユーザーではなくファイルの所有者の権限で動きます。不要なSUIDファイルがないかを定期的に確認するのは、セキュリティの基本的な作業の1つです。
間違えやすいポイントのまとめ¶
10問を解いてみて、いかがだったでしょうか?
LPIC-1で点を落としやすいのは、似た名前のオプションやファイルを取り違えるところです。今回の問題に出てきたものを、もう一度並べておきます。
| 混同しやすい組み合わせ | 違い |
|---|---|
head と tail |
先頭を表示するか、末尾を表示するか |
> file 2>&1 と 2>&1 > file |
書く順番で、エラーの出力先が変わる |
dpkg -S と dpkg -L |
ファイルからパッケージを探すか、パッケージからファイルを一覧するか |
set-default と isolate |
次回の起動から変えるか、今すぐ切り替えるか |
/etc/passwd と /etc/shadow |
ユーザーの基本情報か、パスワードのハッシュか |
/etc/hosts と /etc/resolv.conf |
名前とIPの対応を直接書くか、DNSサーバーを指定するか |
| 4000・2000・1000 | SUID・SGID・スティッキービット |
コマンドのオプションは、実際に打って結果を見ると忘れにくくなります。仮想マシンやWSLでLinuxを1台用意して、問題のコマンドを実行してみてください。
記述式の問題では、スペルが1文字違うだけで不正解になります。 選択肢を見て思い出せるだけでなく、何も見ずに書ける状態を目指すのがおすすめです。
続きはInfraAcademyの問題演習で¶
今回の10問で、自分の苦手な主題が見えてきたと思います。
LPIC-1の出題範囲は広いので、問題数をこなして、間違えたところを繰り返すのがいちばんの近道です。InfraAcademyでは「(無料)LPICの練習問題で毎日トレーニング300問」を用意していて、101と102の範囲を無料で解くことができます。
続きは『InfraAcademy の資格模擬問題』から解いてみてください。
Linuxの基本から順番に学び直したい方は、『Linuxロードマップ』で学習の流れを確認できます。InfraAcademyの問題集の使い方は『LPICの練習問題ができるサイトInfraAcademy』でも紹介しています。
まとめ¶
最後に、この記事のポイントを振り返ります。
- LPIC-1は
101-500と102-500の2試験で、両方の合格で認定される - 各試験は90分・60問で、200〜800点のスコアで500点が合格ライン
- 101はコマンド操作・パッケージ管理・ファイルシステム、102はシェル・管理タスク・ネットワーク・セキュリティが中心
- 似た名前のオプションやファイルの違いを、表にして整理しておく
- 記述式に備えて、コマンドやパスを何も見ずに書けるようにしておく
問題を解いて間違えたところは、伸びしろがはっきり見えた部分です。1問ずつ確実に覚えていけば、合格は十分に狙えます。



