4冊の配布資料準拠
Linuxテスト対策 完全版
コマンド重視・初心者向け・試験直前対応
対象資料:Linuxサーバー構築教科書/PostgreSQL教科書/xrdp書き換え用資料/Samba書き換え用資料
0. 直前チェック - 最優先20項目
- Apacheのパッケージ/サービス:
httpd、設定:/etc/httpd/conf/httpd.conf - BINDのパッケージ/サービス:
bind/named、設定:/etc/named.conf - Postfix:SMTPでメールを受け渡す。設定:
/etc/postfix/main.cf - Dovecot:POP3/IMAPでメールを取り出す。設定:
/etc/dovecot/以下 - Samba:SMB/CIFSを使いWindowsのファイル共有機能を提供
- Sambaのサービス:
smb(共有・認証)、nmb(NetBIOS名) - Samba設定:
/etc/samba/smb.conf、検査:testparm - Samba利用者追加:
smbpasswd -a ユーザー名 - xrdp:RDP接続を受け付けるサーバープログラム
- xrdp設定:
/etc/xrdp/xrdp.ini、色深度:max_bpp=24 - 起動:
systemctl start サービス名 - 状態:
systemctl status サービス名 - 自動起動:
systemctl enable サービス名 - パッケージ導入:
dnf install パッケージ名 - firewalldの恒久設定後:
firewall-cmd --reload - SELinux booleanの永続変更:
setsebool -P ... on - PostgreSQL接続:
psql データベース名 - SQL文の終端は
;、psqlメタコマンドは\で始める - バックアップ:
pg_dump ossdb > backup.sql - リストア:
createdb -T template0 ossdb2→psql ossdb2 < backup.sql
1. 重要用語
| 用語 | 意味・対比 |
|---|---|
| サーバー | ネットワークを介してサービスを提供する側 |
| クライアント | サービスを利用する側 |
| プロトコル | 通信の手順・取り決め |
| ポート番号 | 同じホスト内で通信先サービスを識別する番号 |
| デーモン/サービス | バックグラウンドで要求を待ち受けるプログラム |
| systemd | OS起動後に各サービスなどを管理する仕組み |
| RPMパッケージ | AlmaLinuxで利用するソフトウェア配布形式 |
| リポジトリ | dnfがパッケージを取得する場所 |
| FQDN | ホスト名とドメイン名を省略せず表した名前 |
| DNS | 名前とIPアドレスなどを対応づける仕組み |
| ゾーン | DNSサーバーが管理を担当する名前空間の範囲 |
| 正引き/逆引き | 名前→IPアドレス/IPアドレス→名前 |
| SMTP | メールをサーバーへ送り、サーバー間で配送するプロトコル |
| POP3/IMAP | メールボックスからメールを利用するプロトコル |
| MTA | メールを受け取り、宛先へ転送するソフトウェア |
| SMB/CIFS | Windowsのファイル共有の仕組み/SMBを拡張した機能 |
| NetBIOS名 | Windowsネットワーク上のPC名 |
| RDP | Microsoftの画面転送用プロトコル |
| EPEL | Enterprise 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 httpd | systemctl ( start ) httpd |
systemctl stop NAME | 停止 | sudo systemctl stop postgresql | systemctl ( stop ) postgresql |
systemctl restart NAME | 再起動 | systemctl restart xrdp | systemctl ( restart ) xrdp |
systemctl reload NAME | 設定再読み込み | sudo systemctl reload postgresql | systemctl ( reload ) postgresql |
systemctl status NAME | 稼働状態確認 | systemctl status smb | systemctl ( status ) smb |
systemctl enable NAME | OS起動時の自動起動を有効化 | systemctl enable smb | systemctl ( enable ) smb |
systemctl is-enabled NAME | 自動起動設定の確認 | systemctl is-enabled smb | systemctl ( is-enabled ) smb |
systemctl edit NAME | ユニットの上書き設定を編集 | 資料のPostfix実習で利用 | systemctl ( edit ) postfix |
3.2 dnf・rpm
| 書式 | 意味 | 代表例 | 穴埋め |
|---|---|---|---|
dnf install PKG | 依存関係も含めて導入 | sudo dnf install httpd | dnf ( install ) httpd |
dnf install epel-release | EPELリポジトリ導入 | xrdp導入前 | dnf install ( epel-release ) |
dnf install xrdp | xrdp導入 | EPEL導入後 | dnf install ( xrdp ) |
rpm -q PKG | 導入済みか照会 | rpm -q samba | rpm ( -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.conf | namedの主要設定 |
| BIND | /var/named/ | ゾーンファイル配置先 |
| Postfix | /etc/postfix/main.cf | Postfix主要設定 |
| 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.conf | SSL設定 |
| Samba | /etc/samba/smb.conf | Samba主要設定 |
| xrdp | /etc/xrdp/xrdp.ini | xrdp設定(max_bpp=24) |
| PostgreSQL | postgresql.conf | サーバー動作設定 |
| PostgreSQL | pg_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
役割の分担
| ソフト | 中心プロトコル | 役割 |
|---|---|---|
| Postfix | SMTP | メールの受け取り・転送・配送 |
| Dovecot | POP3/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.conf、10-auth.conf、10-ssl.confを対応づける。
10. Samba
用語・設定
smb:ファイル/プリンタ共有/認証などの主要機能nmb:NetBIOS名の解決/一覧表示/etc/samba/smb.conf:セクション[global]、[homes]、[printers]- コメント:
#または;で始まる行 [global]:サーバー全体、[homes]:ホーム共有、[printers]:プリンター共有security = user:ユーザーごとの認証(資料の初期設定)- homesの重要項目:
comment、valid users、browseable、read only/writable、inherit 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 homestestparmはSamba設定をチェックする。-sはEnter入力を不要にし、--section-name homesはhomesセクションに絞る。
ユーザー管理
smbpasswd -a cuser
smbpasswd cuser
pdbedit -L
pdbedit -Lv cuser
pdbedit -a -u cuser
pdbedit -x -u cusersmbpasswd -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案
- Windowsリモートデスクトップ側を「True Color (24ビット)」へ変更。
/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を実行 |
\q | psql終了 |
\? | メタコマンドのヘルプ |
\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:削除UPDATE/DELETEでWHEREを忘れると対象が全行になる形を重点警戒。
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 NULL/IS NOT NULL。count(*)は行数、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 suzukiCREATE 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.sqlpg_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)
- systemdを制御するコマンドは何か。
- Apache HTTP Serverのパッケージ/サービス名は何か。
- BINDのサービス名は何か。
- DNSの「名前→IPアドレス」を何というか。
- SMTPを担当する資料のメールサーバーは何か。
- POP3/IMAPを担当する資料のソフトウェアは何か。
- Sambaの主要機能を担当するサービスは何か。
- NetBIOS名を担当するSambaサービスは何か。
- RDPの正式名称は何か。
- xrdp導入前に資料で追加するリポジトリ用パッケージは何か。
- SQLで「値なし」を表すものは何か。
- 行を一意に識別する制約は何か。
- 別表のキーを参照する制約は何か。
- トランザクション確定/取り消しの命令を答えよ。
pg_dumpとpg_dumpallの対象範囲の違いを答えよ。
B. コマンド穴埋め(16~35)
sudo dnf (____) httpdsudo systemctl (____) httpd(起動)systemctl (____) smb(状態確認)systemctl (____) smb(自動起動有効化)rpm (____) samba(導入済み照会)firewall-cmd --add-service=samba (____)firewall-cmd (____)(設定再読み込み)setsebool (____) samba_enable_home_dirs on(____) -s --section-name homessmbpasswd (____) cuser(Sambaユーザー追加)pdbedit (____)(一覧)smbclient -U cuser (____) //sv(共有一覧)dnf install (____)(xrdpより先に導入)systemctl (____) xrdp(設定変更後)grep INFO /var/log/xrdp.log (____) tee ex1003.txthistory 2 (____) ex1003.txtpsql -h localhost -p 5432 (____) postgres ossdb(____) -P suzuki(PostgreSQLユーザー作成)pg_dump ossdb (____) backup.sqlpsql ossdb2 (____) backup.sql
C. SQL穴埋め・記述(36~50)
- 全列検索:
(____) * FROM prod; - 1行追加:
(____) INTO prod VALUES (1, 'みかん', 50); - 価格更新:
(____) prod SET price=120 WHERE prod_id=3; - 行削除:
(____) FROM prod WHERE prod_id=3; - NULL検索:
SELECT * FROM prod WHERE price (____); - 非NULL検索:
SELECT * FROM prod WHERE price (____); - 表作成を開始する2語は何か。
- 表削除を開始する2語は何か。
- 主キー追加:
ALTER TABLE prod ADD (____) KEY (prod_id); - 外部キーで参照先を示す語は何か。
- トランザクション開始命令は何か。
- psql終了メタコマンドは何か。
- psqlで表定義を表示するメタコマンドは何か。
- SQLの実行計画を表示する命令は何か。
UPDATEやDELETEでWHEREを忘れた場合の危険を説明せよ。
15. 解答
A
systemctl2.httpd3.named4. 正引き 5. Postfix- Dovecot 7.
smb8.nmb9. Remote Desktop Protocol epel-release11. NULL 12. 主キー 13. 外部キーCOMMIT/ROLLBACK15.pg_dumpは指定DB・表、pg_dumpallは全DB。
B
install17.start18.status19.enable20.-q--permanent22.--reload23.-P24.testparm25.-a-L27.-L28.epel-release29.restart30.|&>>32.-U33.createuser34.>35.<
C
SELECT37.INSERT38.UPDATE39.DELETEIS NULL41.IS NOT NULL42.CREATE TABLE43.DROP TABLEPRIMARY45.REFERENCES46.BEGIN47.\q\d 表名49.EXPLAIN- 条件で絞られず全行が更新または削除される危険がある。
最後の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