【Linux試験対策】LPIC-1 102見直しポイント

本稿ではLinux認定試験のLPICで必要とされる知識のうち見直すべきポイントをまとめます。

目次

シェル、スクリプト

myfuncという関数の定義を表示するコマンド

declare -f myfunc

declareは変数の属性を変更するためのコマンドです。

ログインシェルにおいて読み込まれる設定ファイルを述べよ
  • /etc/profile
  • /etc/.bash.bashrc
  • ~/.bash_profile or ~/.bash_login or ~/.profile
対話型シェルにおいて読み込まれる設定ファイルを述べよ
  • ~/.bashrc
シェルスクリプトの実行方法と必要な権限およびプロセスの関係をまとめよ
実行方法必要な権限プロセス
bash myscript読み取り子プロセス
source myscript読み取り同一プロセス
. myscript読み取り同一プロセス
./myscript読み取り+実行子プロセス
あるコマンドを同一プロセスで起動させるための方法を述べよ

exec {コマンド}

testコマンドの-f・-s・-eの違いを述べよ
  • -f(file):ファイルがあれば真(ディレクトリや特殊ファイルは除く)
  • -s(size):ファイルがあれば真(サイズ0である空のファイルは除く)
  • -e(exists):ファイルがあれば真

ユーザーインタフェースとデスクトップ

KDEとは

拡張性の高いデスクトップ環境の一つで,最新バージョンはPlasmaと呼ばれている

Gnomeとは

ベーシックなデスクトップ環境の一つで,Ubuntuなどで採用されている

Xfceとは

軽量でシンプルなデスクトップ環境の一つで,低スペックのマシンでも快適に動作する

XDMCPとは

Xサーバとディスプレイマネージャの間で利用されるプロトコル

VNCとは

クロスプラットフォーム対応のリモートデスクトップソフトウェア

# vncserver :{ディスプレイ番号}
vncserver :1
Spiceとは

オープンソースの画面転送プロトコル。VNCとは異なり通信の暗号化やマルチモニタ機能を搭載。

/etc/X11/xorg.confを自動生成する方法

Xorg -configureにより/root/xorg.conf.newが作成されるため,/etc/X11/xorg.confにcpする

Xorg.confにおいてDeviceとInputDeviceの違いを述べよ
  • Device:グラフィックカード(GPUなど)
  • inputDevice:入力デバイス(キーボードやマウス)
Xのログファイルはどこに格納されるか

/var/log/Xorg.{ディスプレイ番号}.log

localpcのディスプレイ上にremotepcで実行されているrxvtのウィンドウを表示させる手順を述べよ
# XサーバがディスプレイにXクライアントからの指令を表示させるための許可設定
[lpic@localpc] xhost +remotepc

# remotepcの指令を出す先を設定
[lpic@remotepc] export DISPLAY=localpc:0
# 端末エミュレータの起動
[lpic@remotepc] rxvt &
ディスプレイマネージャとは

ログイン画面の表示とユーザ認証を行うソフトウェア

ディスプレイマネージャ(DM)を列挙せよ
  • XDM(X Display Manager)← Xで利用されている
  • GDM(Gnome Display Manager)← GNOMEで利用されている
  • SSDM(Simple Desktop Display Manager)← KDE Plasmaで利用されている
  • LightDM(Light Display Manager)← Ubuntuで利用されている
ウィンドウマネージャ(WM)を列挙せよ
  • twm ← 最もベーシックなWM
  • Mutter ← GNOMEで利用されている
  • KWin ← KDEで利用されている
LightDMを自動的に有効にする設定方法を述べよ
systemctl enable lightdm.service
統合デスクトップ環境のGUI・DM・WM・Distroを整理せよ
環境GUIDMWMDistro
GNOMEGTK+GDMMutterCentOS/Ubuntuなど
KDE PlasmaQtSDDMKWinopenSUSEなど
ディスプレイマネージャが起動するプログラムを挙げよ
  • Xサーバ:Xorg
  • Xクライアント:gnome-session(GNOME)・startkde(KDE)

管理タスク

LC_ALLとLANGの違いを説明せよ

LC_ALLは強制,LANGはデフォルト値

LANGにはLCが付かないので要注意。

ISO-8859とは何か

ASCIIを拡張した8ビット256種類の文字コード

useraddコマンドでホームディレクトリを自動的に作成するオプションは何か

-mオプション

useraddコマンドでホームディレクトリを指定するオプションは何か

-dオプション

useraddコマンドでデフォルトシェルを指定するオプションは何か

-sオプション

userdelコマンドでホームディレクトリを自動的に削除するオプションは何か

-rオプション

ホームディレクトリのテンプレートはどこに置くか

/etc/skel

アカウントをロックする方法とロックを解除する方法を述べよ
# ロック
usermod -L lpic
passwd -l lpic

# アンロック
usermod -U lpic
passwd -u lpic
ローカルホストやLDAPサーバなどにある情報を出力するコマンド
getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

getent group
root:x:0:
daemon:x:1:
ユーザのcrontabが置かれるディレクトリはどこか

/var/spool/cron

/etc/cron.allowと/etc/cron.denyの両方が存在しない場合の振る舞いを説明せよ

rootのみ実行可能

/etc/at.allowと/etc/at.denyの両方が存在しない場合の振る舞いを説明せよ

rootのみ実行可能

systemdでスケジューリングジョブを実行する方法
  • タイマーユニット(例えばlpic.timerに[Unit]と[Time]と[Install]を定義する)
  • systemd-run

これによりスケジュールされたジョブはsystemctl list-timersで表示し,systemctl stopで削除します。

タイムゾーンの設定方法を述べよ
# バイナリを/etc/localtimeにcp
cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# バイナリへのシンボリックリンクを/etc/localtimeに作成
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# 対話形式で設定
tzselect

# GUIで設定
dpkg-reconfigure tzdata
日付や時刻を規定する変数はLC_TIMEとLC_DATEのどちらか

LC_TIME

/etc/passwdと/etc/shadowのパーミッションを説明せよ
  • /etc/passwd:-rw-r--r--
  • /etc/shadow:-r--------

一般ユーザがログインする際は認証プロセスがroot権限を持つプログラムを通じて実行されるためshadowを利用することができます。

必須システムサービス

NTPサーバの分散ネットワーク

pool.ntp.org

NTPサーバを利用して時刻を同期させる方法
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

を/etc/chrony/chrony.confに設定した上で以下を実行する。

sudo apt install chrony -y
sudo systemctl enable chronyd
sudo systemctl start chronyd
syslog・rsyslog・syslog-ngの違いは何か

rsyslogはsyslogと後方互換性があり,syslog-ngはsyslogと後方互換性がない。

postfix・sendmail・eximの違いは何か

すべでMTAだが,以下の違いがある。

  • postfix:シンプルでデファクトスタンダード
  • sendmail:レガシー
  • exim:カスタマイズ性が高くDebian系のデフォルト
CUPSとは何か

Common UNIX Printing Systemの略称で,Linux向け印刷システムのことを指す

lprとlpqの違いは何か
  • lpr:印刷ジョブの送信
  • lpq:印刷キューの確認
システムクロックをハードウェアクロックに同期させるコマンド
# System to Hardware Clock
hwclock -w
ハードウェアクロックをシステムクロックに同期させるコマンド
# Hardware to System Clock
hwclock -s
systemdを用いた日付・時刻・タイムゾーンの管理を行うコマンド

timedatectl

/var/log/wtmpと/var/run/utmpの違いを説明せよ
  • /var/log/wtmp:過去にログインしたユーザ情報(lastで閲覧)
  • /var/run/utmp:現在ログインしているユーザ情報(whoやwで閲覧)

いずれもバイナリ形式のファイルであるためlessなどで閲覧することはできません。バイナリなのはデータの読み書きの効率性を重視しているからです。

MTA・MDA・MUAの違いを説明せよ
  • MTA(Mail Transfer Agent):メールの転送
  • MDA(Mail Delivery Agent):受信ボックスへの配達
  • MUA(Mail User Agent):ユーザが利用するクライアント
/etc/aliasesでroot: lpicと記述すると何が起きるか

記述しただけでは何も起きない。newaliasesを実行すると,root宛のメールがlpicに転送される。ただしrootには何も届かなくなる。

~/.forwardは転送元にもメールは届きます。

Linuxの印刷サブシステムは何と呼ばれているか

CUPS(Common Unix Printing System)

Linuxの印刷サブシステムの設定で扱われるデータ形式は何か

PPD(Postscript Printer Description)

Adobeのテキストファイル形式です。

/etc/cron.dailyを実行するプログラムはなにか

anacron

anacronはcronデーモンによって呼び出されます。

ネットワークの基礎

tracerouteとtracepathの違いは何か
  • traceroute:古くからある
  • tracepath:非特権ユーザー向けの簡易版 traceroute
hostnameとhostの違いは何か
  • hostname:自分のマシンのホスト名を表示
  • host:ドメイン名からIPアドレスを取得
netstatでネットワークの障害がある場合に利用するオプション

-n(名前解決しない)

ネームサーバの情報を記述する設定ファイルは何か
  • /etc/resolve.conf(NetworkManager等で自動管理,もしくは手動編集)
  • /etc/systemd/resolved/conf(最近のsystemdではこちら)
オープンになっているポートを調べるコマンド
  • lsof
  • netstat
ネットワークインタフェースの受信パケット数などを表示するコマンド
  • ipconfig eth0
  • ip -s link show dev eth0
/etc/hostsのフィールドを述べよ

{IPアドレス} {ホスト名}

findでパーミッションの前に付ける/について説明せよ
  • /4000:SUIDが設定されている(パーミッションは何でもよい)
  • -4000:SUIDが設定されており,かつパーミッションが000である
gpgコマンドで対話型の設定を行うオプション

gpg --edit-key

セキュリティ

who・w・lastの違いを述べよ
  • who(/var/run/utmp): 現在ログイン中のユーザー情報
  • w(/var/run/utmpと/var/log/wtmp): 現在ログイン中のユーザーの詳細な活動情報
  • last(/var/log/wtmp): 過去のログイン履歴

wtmpはwhoの結果を記録するからwが付いていると覚えましょう。

sshでリモートホストに置くのは公開鍵と秘密鍵のどちらか

公開鍵(~/.ssh/authorized_keys)

スーパーサーバを説明せよ

デーモンがメモリ等のリソースを食い潰さないように,必要なときにだけデーモンを起動させるための管理プログラム。inetやinetdはInternet Services Daemonの略称で,スーパーサーバの代表例である。特に,ネットワークのスーパーサーバにはTCP Wrapperが用いられる。

netstat -tuを説明せよ

TCP接続(-t)とUDP接続(-u)の両方を表示する

gpg -c secret.txtは何を行っているか

入力されたパスフレーズから生成された共通鍵による暗号化

gpg -e -a -r lpic@example.com important.txtは何を行っているか

受け取った公開鍵を利用してimportant.txtを暗号化している

gpgにより作成した鍵ペアはどこに格納されるか

~/.gnupg

pgpの--exportオプションは何を行うか

公開鍵のエクスポート

逆に--importは公開鍵のインポートです。

pgpによる署名を解説せよ
  • importした公開鍵に対する署名:pgp --sign-key lpic@example.com
  • ファイルへの署名:pgp -o sample.sig --sign pgp.log

問題演習で引っかかったポイント

/etc/profileと/etc/.profileのどちらが正しいか

/etc/profile

fredの所属グループをdevelop,ホームディレクトリを/home/devに設定するコマンド
usermod -G develop -d /home/dev fred
グループ名・GID・そのグループに所属するユーザが格納されるファイルの名前

/etc/group

ntpサーバに時刻を問い合わせるコマンド

ntpdate {NTPサーバのドメイン}

rsyslog.confの2列目の*は何を表しているか

全てのユーザに表示させる

.bash_profileには実行権は必要か

必要ない

「WaylandはGNOMEやKDEに代わるデスクトップ環境」は正しいか

正しくない。WaylandはX11に代わるディスプレイサーバープロトコルであり,直接GUIを提供するのではなくウィンドウマネージャーやコンポジターに描画の仕組みを提供する。WaylandがGNOME ShellやKWinを利用するという関係性。

X11ポート転送ではDISPLAYは手動で設定しなくてはならないか

自動で設定される

「X11ポート転送はXアプリケーションのデスクトップ画面を転送する」は正しいか

正しくない。Xアプリケーションのポートを転送する。

groupmodはグループにユーザを追加・削除することはできるか

できない。groupsコマンドで表示される/etc/groupファイルを編集する。

cronとcrontabはどちらがコマンドか

crontab(cronはデーモン)

ntpデーモンが参照するファイル

/etc/ntp.conf

/etc/ntpd.confではないため注意しましょう。

journalctlはsyslogdやrsyslogdが集めたlogを閲覧できるか

できない

CUPSに登録されたプリンター情報が指定されている設定ファイル

/etc/cups/printers.cof

CUPSでプリンタの登録や削除を行うコマンド

lpadmin

Ghostscriptとは何か

PostScript形式を解釈してプリンタやデバイスなど非PostScript形式に変換する

プリンタに印刷するコマンド
  • lp -d {プリンタ名} -n {枚数} -o raw fileA
  • lpr -P {プリンタ名} -#{枚数} -o raw fileA

lprでは-o rawの代わりに-lも利用できます。

キューを表示するコマンド
  • lpq(line printer queue)
  • lpc(line printer config)
  • lpstat(line printer stats)

lprはrequest,lpdはdaemonなのでキューの表示とは関係ないです。

CUPSで印刷を停止するコマンド

cupsdisable -c -r {メッセージ} {プリンタ名}

cupsdisableはjobをキューに溜めますが,cupsrejectはjobをキューに溜めません。-cはすでにキューに入っているjobの処理を指していて,指定するとキャンセルされる。

文字コードを表示するコマンド

nkf -g input.txt

クライアントホスト上でDNSサーバの定義を行うファイル名

/etc/resolv.conf

resolve.confではない点に注意してください。

NTPクライアントが監視するのは何か

システムクロックと参照クロックの時間差

resolv.confにはserverとnameserverのどちらを書くか

nameserver

覚えるべきコマンド

Xサーバーのアクセス制御

xhost

パスワードの変更

passwd

有効期限の変更はchageを利用します。

予約中のatジョブを表示するコマンド
at -l
atq
予約中のatジョブを削除するコマンド
at -d 2
atrm 2
通常のコマンドやスクリプトを一時的なサービスとして実行する

systemd-run

Linuxシステムでの時刻管理を行う

timedatectl

NTPサーバとの同期

ntpdate
chronyc

NTPサーバーの状態や同期状況、遅延、精度などを確認する

ntpq

qはqueryと覚えてしまいましょう。

メールの転送先である/etc/aliasesを反映する

newaliases

hostnameや/etc/hostnameを直接編集する代わりに利用する

hostnamectl

システム内のネットワーク接続状態を確認するための軽量ツール

ss

ssはsocket statusと覚えてしまいましょう。

ネットワーク周りの何でも屋さん

netcat

ポートを開いているプロセスを特定する

fuser -n tcp 8080

-nはnamespaceの略称であると理解しましょう。

現在開かれているファイルやソケットを表示する

lsof

List Open Filesの略称です。

ポートスキャンを行う

nmap example.com

パスワードの有効期限を設定するコマンド

chage

changeではないので十分注意してください。

ssh-agentで秘密鍵のパスフレーズを登録する

ssh-add

覚えるべきファイル・ディレクトリ

X Window Systemの設定ファイルとディレクトリ

/etc/X11/xorg.conf
/etc/X11/xorg.conf.d/

X Window Systemのエラーを記録するログファイル

~/.xsession-errors

homeディレクトリのテンプレート

/etc/skel/

デーモンであるcronが定期的に実行するファイルを格納している場所

/etc/cron.d・/etc/cron.daily・/etc/cron.hourly・/etc/cron.monthly・/etc/cron.weekly

ユーザごとのcrontabファイルを置く場所

/var/spool/cron/crontabs/

crontabコマンドを使うとここに配置されます。

システムクロックからローカルタイムへ変換するための時差情報

/etc/localtime

システムで使用されるタイムゾーン情報をバイナリとして格納する場所

/usr/share/zoneinfo/

systemdのジャーナルの設定ファイル

/etc/systemd/journald.conf

ジャーナルの格納場所

/var/log/journal/

ポート番号とサービスの対応を定義するファイル

/etc/services

システムが名前解決をどのように行うかを定義するファイル

/etc/nsswitch.conf

接続要求があったときにサービスを起動するためのユニットファイル

systemd.socket

GnuPGの設定や鍵データを保存するディレクトリ

~/.gnupg/

シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次