基本情報技術者 2010年 春期 午前(科目A) 問43
問題文
ファイルの属性情報として、読取り、書込み、実行の権限を独立に設定できる OS がある。この3種類の権限は、それぞれに1ビットを使って許可、不許可を設定する。この3ビットを8進数表現0〜7の数字で設定するとき、次の試行結果から考えて、適切なものはどれか。
[試行結果]
① 0を設定したら、読取り、書込み、実行ができなくなってしまった。
② 3を設定したら、読取りと書込みはできたが、実行ができなかった。
③ 7を設定したら、読取り、書込み、実行ができるようになった。
選択肢
ア:2を設定すると、読取りと実行ができる。
イ:4を設定すると、実行だけができる。(正解)
ウ:5を設定すると、書込みだけができる。
エ:6を設定すると、読取りと書込みができる。
🔒 解説は解答すると表示されます
ファイル権限のビット表現【午前解説】
正解の理由
与えられた試行結果より、3ビットのそれぞれの重みを未知数とすると次が成立します。
- ①:0 → 何も許可されない(確認)
- ②:3 → 読取りと書込みが許可される →
- ③:7 → すべて許可される →
これらから となり、値4は「実行(execute)ビット」に対応します。従って「4を設定すると実行だけができる(選択肢 イ)」が正しい選択です。
解法ステップ
- 各権限を値 (それぞれ1,2,4のいずれ)と置く。1桁の8進数は3ビット(合計0〜7)で表現される。
- 試行結果を式にする:②より 、③より 。
- 差を取って を得る。よって値4は実行権限に対応する。
- 選択肢を照合して「4を設定すると実行だけができる(イ)」を選ぶ。
選択肢別の誤答解説
- ア: 「2を設定すると、読取りと実行ができる。」
誤り。2は単一ビットの値であり「読取りと実行の両方」を表すことはできません。試行結果から2は読取りか書込みのいずれか一方に対応しますが、両方ではありません。 - イ: 「4を設定すると、実行だけができる。」
正解。上で示した通り となり、4は実行権限のビットを示します。 - ウ: 「5を設定すると、書込みだけができる。」
誤り。5は の組合せ(実行+もう一つ)になるため「書込みだけ」を表す値ではありません。 - エ: 「6を設定すると、読取りと書込みができる。」
誤り。6は であり実行ビット(4)を含むため、読取りと書込みのみとは一致しません。
よくある誤解
- 誤解1: 「常に read=4, write=2, exec=1 の順」と決めつける。問題の条件から逆算すべきで、問題ごとに割り当てが異なる可能性がある。
- 誤解2: 8進数の数値をそのまま「複数権限が付く」と読み違える(例えば2や4は単一ビットでしかない)。1桁の8進数は3ビットなので、各値はビットの和で表される点を見落とす。
- 誤解3: 試行結果の1つだけで判断する。複数の試行を方程式として使い、整合性を取ることが重要。
補足コラム
- 一般的なUNIXの表記では read=4, write=2, exec=1 とする慣例があります(例: 7=4+2+1=rwx)。しかし本問は試行結果から個々のビット重みを決定する方式のため、慣例に頼らず与件で推定することが肝要です。
- 速算テクニック: 与えられた値で「全許可の7」と「部分許可の値」を比較すると、差がどの権限かが瞬時に分かる場合が多いです(今回も7−3で実行ビットがわかる)。
FAQ
Q1: なぜ最初に慣例を疑うべきですか?
A1: 出題側は慣例とは異なる割り当てで問題を作ることがあり、与えられた試行結果が最も確実な情報源だからです。実験データから導くのが安全です。
A1: 出題側は慣例とは異なる割り当てで問題を作ることがあり、与えられた試行結果が最も確実な情報源だからです。実験データから導くのが安全です。
Q2: もし②が「3で実行だけできた」という表現ならどうする?
A2: その場合は となり、3 は合成値(1+2)の可能性があるため追加の試行や情報が必要になります。与件を基に一意に決まるかを確認してください。
A2: その場合は となり、3 は合成値(1+2)の可能性があるため追加の試行や情報が必要になります。与件を基に一意に決まるかを確認してください。
Q3: 1桁の8進数をビットで見る簡単な方法は?
A3: 8進数0〜7を2進数3桁に変換すれば各ビット(高→低)がそれぞれ権限に対応します。どのビットが何の権限かは与件で決めます。
A3: 8進数0〜7を2進数3桁に変換すれば各ビット(高→低)がそれぞれ権限に対応します。どのビットが何の権限かは与件で決めます。
関連キーワード: ファイルパーミッション、ビット演算、8進数表現、権限ビット、実行権限、読取り書込み、2進変換、パーミッション推定

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

