LinuCレベル2 202試験の例題と解説
2.09.1Apache HTTPサーバーの設定と管理
今回は202試験の試験範囲から「2.09.1 Apache HTTPサーバーの設定と管理」についての例題を解いてみます。 重要度の高いテーマですので、出題範囲を抑えておきましょう。
例題
httpd のBASIC認証が以下のように設定されているとします。
(設定1)httpdの設定ファイル(httpd.conf)の内容
-------------------------------------------
<Location /basic>
AuthType Basic
AuthName "Authorized user only"
AuthBasicProvider file
AuthUserFile /etc/httpd/password/users
AuthGroupFile /etc/httpd/password/groups
Require group linuc_grp
</Location>
-------------------------------------------
(設定2)/etc/httpd/password/users ファイルの内容
-------------------------------------------
user01:$apr1$hvum1Gon$a40mjo2VnE4XRX8KvUgtW.
user02:$apr1$K0AG2qz0$80Zm2L04qYMku6OfnGpbK0
-------------------------------------------
(設定3)/etc/httpd/password/groups ファイルの内容
-------------------------------------------
linuc_grp: user02 user03
-------------------------------------------
このとき、ロケーション「/basic」のサイトを閲覧可能なユーザを下記の選択肢から選択してください。
- user01
- user02
- user03
※この例題は実際の試験問題とは異なります。
解答と解説
答えは2 です。
AuthBasicProvider ディレクティブには、認証プロバイダを設定します。 この例題では、パスワードファイルでの認証を指定しています。 認証プロバイダには、file のほかに、dbm, dbd, ldap, socache などを指定できます。
AuthUserFile ディレクティブには、認証に使用するユーザとパスワードの一覧を記述したテキストファイルへのパスを設定します。 このテキストファイルは、htpasswd コマンドで下記のようにして作成することができます。
# htpasswd -c /etc/httpd/password/users user01
New password: (パスワードを入力)
Re-type new password: (パスワードを再入力)
AuthGroupFile ディレクティブには、認証に使用するグループとユーザの一覧を記述したテキストファイルへのパスを設定します。 グループファイルの各行は、グループ名とコロンに続けて、スペース区切りでそのグループに属するユーザ名を記述します。
Require ディレクティブは、認証されたユーザーが特定の認証プロバイダおよび指定された制限に従って承認されているかどうかをテストします。 「Require group linuc_grp」という記述は、group がlinuc_grpであるユーザに対して、コンテンツの閲覧を許可するという意味になります。
選択肢を一つずつ見ていきましょう。
1. user01 は、ユーザのパスワードファイル「/etc/httpd/password/users」に記述がありますが、グループファイル「/etc/httpd/password/groups」では、グループ「linuc_grp」に所属していません。「Require group linuc_grp」の制約により、グループ「linuc_grp」に所属していないユーザはサイトを閲覧できません。したがって、選択肢1 は誤りです。
2. user02 は、ユーザのパスワードファイル「/etc/httpd/password/users」に記述があり、グループファイル「/etc/httpd/password/groups」でも、グループ「linuc_grp」に所属しています。「Require group linuc_grp」の制約により、グループ「linuc_grp」に所属しているユーザはサイトを閲覧できます。したがって、選択肢2 は正解です。
3. user03 は、ユーザのパスワードファイル「/etc/httpd/password/users」に記述がありません。そのため、user03はサイトの閲覧を許可されたユーザではありません。したがって、選択肢3 は誤りです。
Basic認証の各種ディレクティブとその設定パラメータについて、意味を理解しましょう。