ファイルのアクセス権を8進数で設定する問題をビットで読み解く
情報セキュリティマネジメント試験 平成31年度春期 午前 問12 / セキュリティ › 情報セキュリティ対策
過去問にチャレンジ
ファイルの属性情報として、ファイルに対する読取り、書込み、実行の権限を独立に設定できるOSがある。この3種類の権限は、それぞれに1ビットを使って許可、不許可を設定する。この3ビットを8進数表現0~7の数字で設定するとき、次の試行結果から考えて、適切なものはどれか。 〔試行結果〕 ① 0を設定したら、読取り、書込み、実行ができなくなってしまった。 ② 3を設定したら、読取りと書込みはできたが、実行ができなかった。 ③ 7を設定したら、読取り、書込み、実行ができるようになった。
- ア
2を設定すると,読取りと実行ができる。
- イ
4を設定すると,実行だけができる。
- ウ
5を設定すると,書込みだけができる。
- エ
6を設定すると,読取りと書込みができる。
会話形式の解説
講師この問題では、読取り・書込み・実行の3つの権限が、8進数1桁のどのビットに割り当てられているかを、試行結果から推定します。8進数1桁は2進数3桁にそのまま対応する、という点がポイントです。
受験者権限の数字なら、読取りが4、書込みが2、実行が1だと覚えています。そうすると6は読取りと書込みなので、6の選択肢が正しいと思ったのですが、違いますか。
講師その割当ては、UNIX系のOSでよく知られているものですね。ただ、この問題の割当ては試行結果から導くことになっています。まずは試行結果の設定値を2進数に直してみましょう。
受験者0は000、3は011、7は111です。3では読取りと書込みはできて、実行だけができなかったのですよね。
講師そうです。011で0になっているのは、いちばん上のビット、つまり最上位ビットだけです。そこから何が言えるでしょうか。
受験者最上位ビットが実行の権限ということですか。7から3を引くと4、2進数で100なので、4が実行の値だとも確かめられます。
講師そのとおりです。下位2ビットが読取りと書込みですが、どちらがどちらかは試行結果だけでは決まりません。そこで、選択肢は最上位ビットが立っているかどうかで判断します。
受験者4は100なので、立っているのは実行のビットだけです。4で実行だけができる、という選択肢が正しいのですね。
講師正解です。では、2で読取りと実行ができる、という選択肢はどうでしょう。
受験者2は010で、最上位ビットが0なので実行はできません。許可されるのは読取りか書込みのどちらか1つだけです。
講師よいですね。5で書込みだけができる、6で読取りと書込みができる、という選択肢も同じように確かめてください。
受験者5は101、6は110で、どちらも最上位ビットが1なので実行も許可されます。読取りと書込みだけを許可するのは試行結果のとおり3なので、6は違いますね。最初の私の考えは、UNIXの知識をそのまま当てはめたものでした。
講師そこがこの問題の引っかけです。この割当てでは、4から7までの値には必ず4が含まれるので、実行が許可されます。慣れた知識よりも問題文の条件を優先し、8進数は2進数3桁に直して確かめる。この手順を押さえておきましょう。
まとめ
読取り・書込み・実行の権限を8進数1桁(3ビット)で設定する問題では、まず設定値を2進数3桁に直して考えます。試行結果の3(011)で実行だけができなかったことから、最上位ビット(値4)が実行の権限だとわかります。下位2ビットが読取りと書込みですが、どちらがどちらかは試行結果からは決まらないため、選択肢は最上位ビットが立っているかで判断します。4(100)は実行だけを許可するので、これが正解です。UNIX系OSの「読取り4・書込み2・実行1」をそのまま当てはめると6を選んでしまうため、問題文の条件を優先することが大切です。
解答・解説
正解はイです
この問題のテーマ
読取り・書込み・実行の3つの権限を、8進数1桁(3ビット)のどのビットに割り当てているかを試行結果から推定し、各設定値の意味を判断する問題です。
解き方の考え方
まず試行結果の設定値を2進数3桁に直します。0は000、3は011、7は111です。3の011で実行だけができなかったので、0になっている最上位ビットが実行の権限だとわかります。7と3の差を取ると7−3=4(2進数100)となり、これが実行の値であることも確かめられます。下位2ビットが読取りと書込みですが、どちらがどちらかは試行結果だけでは決まりません。そのため、各選択肢は「最上位ビットが立っているか」で判断します。
選択肢ごとの解説
- ×ア 2を設定すると,読取りと実行ができる。2を設定すると読取りと実行ができる、という説明は誤りです。2は2進数で010となり、最上位の実行ビットが0なので実行はできません。2が許可するのは、下位2ビットに割り当てられた読取りか書込みのどちらか1つだけです。
- ○イ 4を設定すると,実行だけができる。4を設定すると実行だけができる、という説明は正しいです。4は2進数で100となり、1になっているのは実行に割り当てられた最上位ビットだけです。読取りと書込みのビットはどちらも0なので、許可されるのは実行だけになります。
- ×ウ 5を設定すると,書込みだけができる。5を設定すると書込みだけができる、という説明は誤りです。5は2進数で101となり、最上位の実行ビットが1なので実行も許可されます。書込みだけを許可する値にはなりません。
- ×エ 6を設定すると,読取りと書込みができる。6を設定すると読取りと書込みができる、という説明は誤りです。6は2進数で110となり、実行ビットが1です。試行結果②のとおり、読取りと書込みだけを許可する値は3(011)なので、6はそれとは異なります。
補足
UNIX系のOSでは、読取りを4、書込みを2、実行を1とする割当てがよく知られています。しかし本問の割当ては試行結果から導くもので、この知識をそのまま当てはめると、エの「6は読取りと書込み」を選んでしまいます。慣れた知識より問題文の条件を優先することが大切です。
POINT
- 8進数1桁は2進数3桁に対応するので、まず各設定値を000〜111に直して考えます。
- 設定3(011)で実行だけができなかったことから、最上位ビット(値4)が実行の権限だとわかります。
- 試行結果からは読取りと書込みが下位2ビットにあることまでしかわからないため、どちらがどちらかを決めつけずに解きます。
- 設定値に4が含まれる場合(4〜7)は、必ず実行が許可されます。
