4冊の配布資料準拠

Linuxテスト対策 完全版

コマンド重視・初心者向け・試験直前対応

対象資料:Linuxサーバー構築教科書/PostgreSQL教科書/xrdp書き換え用資料/Samba書き換え用資料

0. 直前チェック - 最優先20項目

  1. Apacheのパッケージ/サービス:httpd、設定:/etc/httpd/conf/httpd.conf
  2. BINDのパッケージ/サービス:bindnamed、設定:/etc/named.conf
  3. Postfix:SMTPでメールを受け渡す。設定:/etc/postfix/main.cf
  4. Dovecot:POP3/IMAPでメールを取り出す。設定:/etc/dovecot/以下
  5. Samba:SMB/CIFSを使いWindowsのファイル共有機能を提供
  6. Sambaのサービス:smb(共有・認証)、nmb(NetBIOS名)
  7. Samba設定:/etc/samba/smb.conf、検査:testparm
  8. Samba利用者追加:smbpasswd -a ユーザー名
  9. xrdp:RDP接続を受け付けるサーバープログラム
  10. xrdp設定:/etc/xrdp/xrdp.ini、色深度:max_bpp=24
  11. 起動:systemctl start サービス名
  12. 状態:systemctl status サービス名
  13. 自動起動:systemctl enable サービス名
  14. パッケージ導入:dnf install パッケージ名
  15. firewalldの恒久設定後:firewall-cmd --reload
  16. SELinux booleanの永続変更:setsebool -P ... on
  17. PostgreSQL接続:psql データベース名
  18. SQL文の終端は;、psqlメタコマンドは\で始める
  19. バックアップ:pg_dump ossdb > backup.sql
  20. リストア:createdb -T template0 ossdb2psql ossdb2 < backup.sql

1. 重要用語

用語意味・対比
サーバーネットワークを介してサービスを提供する側
クライアントサービスを利用する側
プロトコル通信の手順・取り決め
ポート番号同じホスト内で通信先サービスを識別する番号
デーモン/サービスバックグラウンドで要求を待ち受けるプログラム
systemdOS起動後に各サービスなどを管理する仕組み
RPMパッケージAlmaLinuxで利用するソフトウェア配布形式
リポジトリdnfがパッケージを取得する場所
FQDNホスト名とドメイン名を省略せず表した名前
DNS名前とIPアドレスなどを対応づける仕組み
ゾーンDNSサーバーが管理を担当する名前空間の範囲
正引き/逆引き名前→IPアドレス/IPアドレス→名前
SMTPメールをサーバーへ送り、サーバー間で配送するプロトコル
POP3/IMAPメールボックスからメールを利用するプロトコル
MTAメールを受け取り、宛先へ転送するソフトウェア
SMB/CIFSWindowsのファイル共有の仕組み/SMBを拡張した機能
NetBIOS名Windowsネットワーク上のPC名
RDPMicrosoftの画面転送用プロトコル
EPELEnterprise Linux向け拡張パッケージ群
DBMSデータベースを管理するソフトウェア
リレーショナルDB表(行・列)でデータを管理するデータベース
主キー行を一意に識別する列(または列の組)
外部キー別表の主キーなどを参照し、表同士を関連づける列
NULL値が存在しないこと。0や空文字とは異なる
トランザクション複数処理をひとまとまりとして扱う単位
COMMIT/ROLLBACKトランザクションを確定/取り消し

2. サービスごとの仕組み

2.1 Web(Apache)

ブラウザーがHTTPリクエストを送り、Apache HTTP Server(httpd)がWebコンテンツを返す。標準のドキュメントルートは/var/www/html。設定変更後は構文を確認し、サービスへ反映する。

2.2 DNS(BIND)

クライアントの問い合わせを受け、キャッシュまたはゾーン情報から回答する。BINDのサービス名はnamed。設定ファイル/etc/named.confからゾーンファイルを参照する。正引きゾーンと逆引きゾーンを区別する。

2.3 メール(Postfix + Dovecot)

PostfixがSMTPでメールを受け取り・配送し、Dovecotがメールボックスに保存されたメールをPOP3/IMAPで利用者へ提供する。「送る仕組み」と「取り出す仕組み」を混同しない。

2.4 Samba

UNIX系OSでWindowsサーバーの機能を実現する。smbがファイル/プリンタ共有・認証などを担当し、nmbがNetBIOS名の解決・一覧表示を担当する。Linuxアカウントを作っただけではSamba認証に使えず、資料のユーザー認証方式ではSambaへの登録も必要。SambaパスワードはOSと独立して管理される。

2.5 xrdp

RDP接続を受け付け、X Window Systemの描画を転送する。xrdpは基本パッケージでなく拡張パッケージに含まれるため、資料ではepel-releaseを先に導入する。サーバー側でGUIへログインしたままにする必要はない。

2.6 PostgreSQL

PostgreSQLサーバーがデータベースを管理し、psqlなどのクライアントが接続する。SQLでデータや定義を操作し、psqlメタコマンドで表示・接続・ファイル実行などを行う。

3. コマンド一覧(書式・意味・代表例・穴埋め)

3.1 systemctl

書式意味代表例穴埋め
systemctl start NAME起動sudo systemctl start httpdsystemctl ( start ) httpd
systemctl stop NAME停止sudo systemctl stop postgresqlsystemctl ( stop ) postgresql
systemctl restart NAME再起動systemctl restart xrdpsystemctl ( restart ) xrdp
systemctl reload NAME設定再読み込みsudo systemctl reload postgresqlsystemctl ( reload ) postgresql
systemctl status NAME稼働状態確認systemctl status smbsystemctl ( status ) smb
systemctl enable NAMEOS起動時の自動起動を有効化systemctl enable smbsystemctl ( enable ) smb
systemctl is-enabled NAME自動起動設定の確認systemctl is-enabled smbsystemctl ( is-enabled ) smb
systemctl edit NAMEユニットの上書き設定を編集資料のPostfix実習で利用systemctl ( edit ) postfix

3.2 dnf・rpm

書式意味代表例穴埋め
dnf install PKG依存関係も含めて導入sudo dnf install httpddnf ( install ) httpd
dnf install epel-releaseEPELリポジトリ導入xrdp導入前dnf install ( epel-release )
dnf install xrdpxrdp導入EPEL導入後dnf install ( xrdp )
rpm -q PKG導入済みか照会rpm -q sambarpm ( -q ) samba

【表記注意】xrdp/Samba書き換え資料のコマンド欄には空欄があり、古い実行結果(例:CentOS、旧Sambaの版)が残る。ここでは空欄から読み取れる操作目的と追記内容を分け、実行結果の版を新しい一般知識で置換していない。

3.3 基本・検索・記録

書式意味代表例・注意
cat FILEファイル表示設定内容の確認
less FILEページ単位で表示長いファイル向け
grep PATTERN FILE一致行を抽出grep INFO /var/log/xrdp.log
tail FILE末尾を表示ログの新しい部分を確認
historyコマンド履歴表示実習提出ファイルへ履歴を追記
history 2直近2件を表示history 2 >> ex1001.txt
vi FILEファイル編集vi /etc/xrdp/xrdp.ini

4. 設定ファイル一覧

分野ファイル/場所役割
Apache/etc/httpd/conf/httpd.conf主要設定
Apache/var/www/htmlドキュメントルート
BIND/etc/named.confnamedの主要設定
BIND/var/named/ゾーンファイル配置先
Postfix/etc/postfix/main.cfPostfix主要設定
Postfix/etc/aliasesメールエイリアス
Dovecot/etc/dovecot/dovecot.conf主要設定(資料では変更不要の節)
Dovecot/etc/dovecot/conf.d/10-mail.confメール保存場所など
Dovecot/etc/dovecot/conf.d/10-auth.conf認証設定
Dovecot/etc/dovecot/conf.d/10-ssl.confSSL設定
Samba/etc/samba/smb.confSamba主要設定
xrdp/etc/xrdp/xrdp.inixrdp設定(max_bpp=24
PostgreSQLpostgresql.confサーバー動作設定
PostgreSQLpg_hba.confクライアント認証設定

5. パイプ・リダイレクト・tee・history

記号/書式意味資料に沿った例
`cmd1 \cmd2`標準出力を次のコマンドへ渡す`semanage boolean -l \grep samba_enable_home_dir`
>標準出力を上書き保存pg_dump ossdb > backup.sql
>>標準出力を追記history 2 >> ex1001.txt
<ファイルを標準入力へ渡すpsql ossdb2 < backup.sql
2>標準エラー出力をファイルへ送る出力先の違いを問う形に注意
`\&`標準出力と標準エラーをパイプへ渡す`systemctl status xrdp \& tee ex1001.txt`
tee FILE画面表示しながらファイルへ保存実習の結果保存
tee -a FILE画面表示しながら追記`firewall-cmd --reload \& tee -a ex0709b.txt`

実習型の基本形:実行コマンド |& tee 提出ファイルhistory 2 >> 提出ファイルteeは画面とファイルの両方、>は通常ファイルだけ、>>は追記と覚える。

6. systemctl / dnf / firewall-cmd / SELinux

firewalld

firewall-cmd --add-service=samba --permanent
firewall-cmd --reload

--permanentは恒久設定へ追加し、--reloadで再読み込みする。【Samba追記】ではこの2行をteeで保存し、履歴も提出する。

SELinux

setsebool -P samba_enable_home_dirs on
semanage boolean -l | grep samba_enable_home_dir

【Samba追記】の原文は設定コマンドでhome_dirs(複数形)、確認用grepではhome_dirという文字列。表記差を勝手に統一せず、そのまま区別して暗記する。-Pは変更を永続化する指定として扱われている。

7. Apache

必須コマンド

sudo dnf install httpd
sudo systemctl start httpd
sudo systemctl status httpd
sudo systemctl enable httpd

覚える関係

  • ソフトウェア:Apache HTTP Server
  • RPMパッケージ/systemdサービス:httpd
  • 主要設定:/etc/httpd/conf/httpd.conf
  • 公開ファイル:/var/www/html以下
  • 状態表示のActive: active (running)を読めるようにする。

穴埋め:Apacheを導入する → sudo dnf ( install ) ( httpd )

8. BIND

必須事項

  • DNSサーバーソフトウェア:BIND
  • サービス:named
  • 主要設定:/etc/named.conf
  • ゾーンファイル:/var/named/以下
  • 正引き:名前からIPアドレス、逆引き:IPアドレスから名前

コマンド型

sudo dnf install bind bind-utils
sudo systemctl start named
sudo systemctl status named
sudo systemctl enable named
named-checkconf
named-checkzone ゾーン名 ゾーンファイル
dig 問い合わせ名

named-checkconfはnamed設定の確認、named-checkzoneはゾーン名とゾーンファイルを指定して確認、digはDNS問い合わせ結果の確認として整理する。

穴埋め:BINDのサービスを起動 → systemctl start ( named )

9. Postfix / Dovecot

役割の分担

ソフト中心プロトコル役割
PostfixSMTPメールの受け取り・転送・配送
DovecotPOP3/IMAP利用者がメールボックスのメールを読む

コマンド型

sudo dnf install postfix
sudo systemctl start postfix
sudo systemctl status postfix
sudo systemctl enable postfix
sudo dnf install dovecot
sudo systemctl start dovecot
sudo systemctl status dovecot
sudo systemctl enable dovecot

設定変更箇所を問う問題では、Postfix=/etc/postfix/main.cf、Dovecot=/etc/dovecot/conf.d/10-mail.conf10-auth.conf10-ssl.confを対応づける。

10. Samba

用語・設定

  • smb:ファイル/プリンタ共有/認証などの主要機能
  • nmb:NetBIOS名の解決/一覧表示
  • /etc/samba/smb.conf:セクション[global][homes][printers]
  • コメント:#または;で始まる行
  • [global]:サーバー全体、[homes]:ホーム共有、[printers]:プリンター共有
  • security = user:ユーザーごとの認証(資料の初期設定)
  • homesの重要項目:commentvalid usersbrowseableread onlywritableinherit acls

インストール・サービス

rpm -q samba
dnf install samba samba-client cifs-utils
systemctl enable smb
systemctl is-enabled smb
systemctl start smb
systemctl status smb

設定検査

testparm
testparm -s
testparm -s --section-name homes

testparmはSamba設定をチェックする。-sはEnter入力を不要にし、--section-name homesはhomesセクションに絞る。

ユーザー管理

smbpasswd -a cuser
smbpasswd cuser
pdbedit -L
pdbedit -Lv cuser
pdbedit -a -u cuser
pdbedit -x -u cuser
  • smbpasswd -a:追加、オプションなしでパスワード変更
  • pdbedit -L:一覧、-Lv:詳細、-a -u:追加、-x -u:削除
  • 先にLinuxユーザーが必要。SambaパスワードはOSと独立。

Linuxから共有へ接続

smbclient -N -L //サーバー名
smbclient -U cuser -L //サーバー名
smbclient -U cuser //サーバー名/cuser
smbclient -U cuser //サーバー名/cuser -c "ls test"
  • -L:共有一覧、-N:パスワード確認なし、-U:ユーザー指定、-c:コマンドを実行して終了
  • パスはバックスラッシュでなく//サーバー/共有のようにスラッシュを使う。
  • $で終わる共有はWindowsの管理用共有。資料例:print$IPC$
  • Windows側で以前の認証が残る場合の【Samba追記】:net use \\192.168.0.100\cuser /deleteで接続を切断。

11. xrdp

導入・起動

dnf install epel-release
dnf install xrdp
systemctl start xrdp
systemctl status xrdp

色深度エラーへの資料記載の2案

  1. Windowsリモートデスクトップ側を「True Color (24ビット)」へ変更。
  2. /etc/xrdp/xrdp.iniを編集しmax_bpp=24、その後systemctl restart xrdp

実習記録

systemctl status xrdp |& tee ex1001.txt
history 2 >> ex1001.txt
grep INFO /var/log/xrdp.log |& tee ex1003.txt
history 2 >> ex1003.txt

【xrdp追記】抽出テキストでは課題欄のsystemctlのサブコマンドとログパスに空欄がある。上記は直前の説明(稼働状況確認)と出力(xrdp.service)、ログ名の文脈から整理した学習用完成形。

12. PostgreSQL / psql / SQL

12.1 接続とpsql

psql ossdb
psql ossdb sato
psql -h localhost -p 5432 -U postgres ossdb
psqlメタコマンド意味
\lデータベース一覧
\c DB名データベースへ接続
\d表などの一覧
\d 表名表定義表示
\duユーザー(ロール)一覧
\i ファイルファイル中のSQLを実行
\qpsql終了
\?メタコマンドのヘルプ
\h SQL名SQL文のヘルプ

SQL文は;で終える。メタコマンドは;不要。スーパーユーザーのプロンプト例は=#、一般ユーザー例は=>

12.2 データベース・表

CREATE DATABASE ossdb;
DROP DATABASE ossdb;
CREATE TABLE prod (
  prod_id integer,
  prod_name varchar(50),
  price integer
);
ALTER TABLE prod ADD PRIMARY KEY (prod_id);
DROP TABLE prod;

12.3 CRUD

SELECT * FROM prod;
SELECT prod_name, price FROM prod WHERE price >= 100;
INSERT INTO prod(prod_id, prod_name, price) VALUES (1, 'みかん', 50);
UPDATE prod SET price = 120 WHERE prod_id = 3;
DELETE FROM prod WHERE prod_id = 3;
  • SELECT:検索、INSERT:追加、UPDATE:更新、DELETE:削除
  • UPDATEDELETEWHEREを忘れると対象が全行になる形を重点警戒。

12.4 検索条件・集計

SELECT * FROM prod WHERE price IS NULL;
SELECT * FROM prod WHERE price IS NOT NULL;
SELECT count(*) FROM prod;
SELECT sum(price), count(price), avg(price) FROM prod;
SELECT largearea, count(*) FROM zip GROUP BY largearea;

NULL判定は= NULLではなくIS NULLIS NOT NULLcount(*)は行数、count(price)はNULLでないpriceの数。

12.5 結合・制約・シーケンス

SELECT o.order_id, c.customer_name, p.prod_name, o.qty
FROM orders o
JOIN customer c ON o.customer_id = c.customer_id
JOIN prod p ON o.prod_id = p.prod_id;

ALTER TABLE orders
ADD FOREIGN KEY (prod_id) REFERENCES prod(prod_id);

SELECT nextval('order_id_seq');
SELECT currval('order_id_seq');
SELECT setval('order_id_seq', 100);

主キーは重複とNULLを許さず行を識別する。外部キーは参照先に存在しない値の登録を防ぐ。シーケンスは連番生成機能で、失敗したINSERTでも番号が進み飛び番になる場合が資料で説明される。

12.6 ユーザー・権限・接続

createuser -P suzuki
CREATE USER sato PASSWORD 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON prod TO sato;
REVOKE UPDATE ON prod FROM sato;

資料ではユーザーを内部的にロールとして扱い、結果にROLEと表示されることを説明している。接続認証はpg_hba.conf、ネットワーク待受などはpostgresql.confを確認する。

12.7 トランザクション

BEGIN;
UPDATE prod SET price = 120 WHERE prod_id = 3;
COMMIT;

取り消す場合はROLLBACK;。同じ行を更新すると更新競合が起き、相互に相手の行を待つとデッドロックになり、PostgreSQLが一方を強制的にロールバックする例がある。

12.8 性能確認

EXPLAIN SELECT * FROM zip WHERE newzip = '1500002';

EXPLAINでSQLの実行計画を確認する。インデックスの有無や検索条件による計画の違いを読む。

13. バックアップとリストア

論理バックアップ

pg_dump ossdb > backup.sql

pg_dumpは指定DB(または表)をSQL文としてバックアップし、DBを停止せず実行できる。全DBを対象にするコマンドとして資料はpg_dumpallも区別している。

リストア

createdb -T template0 ossdb2
psql ossdb2 < backup.sql
psql ossdb2

資料の手順ではtemplate0から空の復元先DBを作り、psqlへバックアップSQLを標準入力で渡す。

ファイルコピーとの違い

データディレクトリをファイルとしてコピーする方式では、整合性のため資料の手順でPostgreSQLを停止する。pg_dumpは停止せず論理バックアップを取得できる。

14. 確認問題

A. 用語・対応(1~15)

  1. systemdを制御するコマンドは何か。
  2. Apache HTTP Serverのパッケージ/サービス名は何か。
  3. BINDのサービス名は何か。
  4. DNSの「名前→IPアドレス」を何というか。
  5. SMTPを担当する資料のメールサーバーは何か。
  6. POP3/IMAPを担当する資料のソフトウェアは何か。
  7. Sambaの主要機能を担当するサービスは何か。
  8. NetBIOS名を担当するSambaサービスは何か。
  9. RDPの正式名称は何か。
  10. xrdp導入前に資料で追加するリポジトリ用パッケージは何か。
  11. SQLで「値なし」を表すものは何か。
  12. 行を一意に識別する制約は何か。
  13. 別表のキーを参照する制約は何か。
  14. トランザクション確定/取り消しの命令を答えよ。
  15. pg_dumppg_dumpallの対象範囲の違いを答えよ。

B. コマンド穴埋め(16~35)

  1. sudo dnf (____) httpd
  2. sudo systemctl (____) httpd(起動)
  3. systemctl (____) smb(状態確認)
  4. systemctl (____) smb(自動起動有効化)
  5. rpm (____) samba(導入済み照会)
  6. firewall-cmd --add-service=samba (____)
  7. firewall-cmd (____)(設定再読み込み)
  8. setsebool (____) samba_enable_home_dirs on
  9. (____) -s --section-name homes
  10. smbpasswd (____) cuser(Sambaユーザー追加)
  11. pdbedit (____)(一覧)
  12. smbclient -U cuser (____) //sv(共有一覧)
  13. dnf install (____)(xrdpより先に導入)
  14. systemctl (____) xrdp(設定変更後)
  15. grep INFO /var/log/xrdp.log (____) tee ex1003.txt
  16. history 2 (____) ex1003.txt
  17. psql -h localhost -p 5432 (____) postgres ossdb
  18. (____) -P suzuki(PostgreSQLユーザー作成)
  19. pg_dump ossdb (____) backup.sql
  20. psql ossdb2 (____) backup.sql

C. SQL穴埋め・記述(36~50)

  1. 全列検索:(____) * FROM prod;
  2. 1行追加:(____) INTO prod VALUES (1, 'みかん', 50);
  3. 価格更新:(____) prod SET price=120 WHERE prod_id=3;
  4. 行削除:(____) FROM prod WHERE prod_id=3;
  5. NULL検索:SELECT * FROM prod WHERE price (____);
  6. 非NULL検索:SELECT * FROM prod WHERE price (____);
  7. 表作成を開始する2語は何か。
  8. 表削除を開始する2語は何か。
  9. 主キー追加:ALTER TABLE prod ADD (____) KEY (prod_id);
  10. 外部キーで参照先を示す語は何か。
  11. トランザクション開始命令は何か。
  12. psql終了メタコマンドは何か。
  13. psqlで表定義を表示するメタコマンドは何か。
  14. SQLの実行計画を表示する命令は何か。
  15. UPDATEDELETEWHEREを忘れた場合の危険を説明せよ。

15. 解答

A

  1. systemctl 2. httpd 3. named 4. 正引き 5. Postfix
  2. Dovecot 7. smb 8. nmb 9. Remote Desktop Protocol
  3. epel-release 11. NULL 12. 主キー 13. 外部キー
  4. COMMITROLLBACK 15. pg_dumpは指定DB・表、pg_dumpallは全DB。

B

  1. install 17. start 18. status 19. enable 20. -q
  2. --permanent 22. --reload 23. -P 24. testparm 25. -a
  3. -L 27. -L 28. epel-release 29. restart 30. |&
  4. >> 32. -U 33. createuser 34. > 35. <

C

  1. SELECT 37. INSERT 38. UPDATE 39. DELETE
  2. IS NULL 41. IS NOT NULL 42. CREATE TABLE 43. DROP TABLE
  3. PRIMARY 45. REFERENCES 46. BEGIN 47. \q
  4. \d 表名 49. EXPLAIN
  5. 条件で絞られず全行が更新または削除される危険がある。

最後の5分暗記

導入 dnf install / 起動 systemctl start / 状態 systemctl status
自動 systemctl enable / FW恒久 --permanent → --reload
Apache httpd / BIND named / メール Postfix送る・Dovecot読む
Samba smb+nmb / smb.conf / testparm / smbpasswd -a / smbclient -L
xrdp epel-release→xrdp / xrdp.ini max_bpp=24 / restart
psql DB / SQLは; / \q終了 / NULLはIS NULL
pg_dump DB > backup.sql / psql DB < backup.sql