InfraAcademy

InfraAcademy Blog

LPIC-1の問題を101と102から5問ずつ。コマンドとファイルの場所を確かめる練習問題10問と解説

著者: ryu | #Linux #LPIC #資格
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

この記事を共有

こんにちは、インフラエンジニアの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問ずつ確実に覚えていけば、合格は十分に狙えます。

参考

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

株式会社InfraAcademy 代表 / エンジニア

大手メーカーでインフラエンジニアとして勤務した後、ベンチャー企業・スタートアップでフルスタックエンジニアを経験。その後、起業し学習サービス「InfraAcademy」を運営しています。
保有資格:ネットワークスペシャリストなど 運営会社:株式会社InfraAcademy

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る