ファイルの属性情報として,読取り,書込み,実行の権限を独立に設定できるOSがある。
この3種類の権限は,それぞれに1ビットを使って許可,不許可を設定する。
この3ビットを8進数表現0~7の数字で設定するとき,次の試行結果から考えて,適切なものはどれか。
〔試行結果〕
① 0を設定したら,読取り,書込み,実行ができなくなってしまった。
② 3を設定したら,読取りと書込みはできたが,実行ができなかった。
③ 7を設定したら,読取り,書込み,実行ができるようになった。
2を設定すると,読取りと実行ができる。 4を設定すると,実行だけができる。 5を設定すると,書込みだけができる。 6を設定すると,読取りと書込みができる。 購入状況を確認しています… 正答 2
解説 正解は2です。
3ビットで表した権限の割当てを、試行結果から推理する問題です。
8進数の1桁は3ビットに対応し、各ビットの重みは4、2、1です。
【計算】
試行①より、0(000)ではすべての権限がなくなるので、1のビットが許可を表します。
試行③より、7(111)ではすべてが許可されます。
試行②より、3(011)では読取りと書込みができ、実行ができません。
つまり、重み2と重み1のビットが読取りと書込みに対応し、重み4のビットが実行に対応します。
重み2と重み1のどちらが読取りかは、試行結果からは決まりません。
【選択肢別解説】
1:× 2(010)では、重み2のビットだけが立ちます。
これは読取りか書込みの一方だけで、実行は許可されないので、「読取りと実行」にはなりません。
2:○ 4(100)では、実行に対応する重み4のビットだけが立ちます。
したがって、実行だけができます。
3:× 5(101)では、実行のビットと、読取りか書込みの一方のビットが立ちます。
2つの権限が許可されるので、「書込みだけ」にはなりません。
4:× 6(110)では、実行のビットと、読取りか書込みの一方のビットが立ちます。
「読取りと書込み」の両方を許可するのは3(011)です。
【ポイント】
複数の権限をビットの組合せで表すときは、各ビットの重みを足し算して考えます。
UNIXのパーミッションでは、読取り4、書込み2、実行1で、本問とは割当てが異なる点に注意しましょう。