マナビング情報セキュリティマネジメント

ファイルのアクセス権を8進数で設定する問題をビットで読み解く

情報セキュリティマネジメント試験 平成31年度春期 午前 問12 / セキュリティ › 情報セキュリティ対策

過去問にチャレンジ

平成31年度春期 午前 問12

ファイルの属性情報として、ファイルに対する読取り、書込み、実行の権限を独立に設定できるOSがある。この3種類の権限は、それぞれに1ビットを使って許可、不許可を設定する。この3ビットを8進数表現0~7の数字で設定するとき、次の試行結果から考えて、適切なものはどれか。 〔試行結果〕 ① 0を設定したら、読取り、書込み、実行ができなくなってしまった。 ② 3を設定したら、読取りと書込みはできたが、実行ができなかった。 ③ 7を設定したら、読取り、書込み、実行ができるようになった。

  1. ア

    2を設定すると,読取りと実行ができる。

  2. イ

    4を設定すると,実行だけができる。

  3. ウ

    5を設定すると,書込みだけができる。

  4. エ

    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ビットが読取りと書込みですが、どちらがどちらかは試行結果だけでは決まりません。そのため、各選択肢は「最上位ビットが立っているか」で判断します。

選択肢ごとの解説

  1. ×ア  2を設定すると,読取りと実行ができる。
    2を設定すると読取りと実行ができる、という説明は誤りです。2は2進数で010となり、最上位の実行ビットが0なので実行はできません。2が許可するのは、下位2ビットに割り当てられた読取りか書込みのどちらか1つだけです。
  2. ○イ  4を設定すると,実行だけができる。
    4を設定すると実行だけができる、という説明は正しいです。4は2進数で100となり、1になっているのは実行に割り当てられた最上位ビットだけです。読取りと書込みのビットはどちらも0なので、許可されるのは実行だけになります。
  3. ×ウ  5を設定すると,書込みだけができる。
    5を設定すると書込みだけができる、という説明は誤りです。5は2進数で101となり、最上位の実行ビットが1なので実行も許可されます。書込みだけを許可する値にはなりません。
  4. ×エ  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)は、必ず実行が許可されます。

※出典:平成31年度春期 情報セキュリティマネジメント試験 午前 問12