LinuCレベル1 ファイル・ディレクトリの操作と管理 問22
ファイル・ディレクトリの操作と管理/ファイルの所有者とパーミッションumask の値が 027 に設定されたシェルで、touch コマンドを使って新しい通常ファイルを作成した。作成されたファイルのパーミッションとして正しいものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)
- Arwxr-x---
- Brw-r--r--
- Crw-rw----
- Drw-r-----
正解:D
解説
touch やリダイレクトなど一般的なファイル作成では 666(rw-rw-rw-)を要求し、そこから umask で指定したビットが取り除かれます。umask 027 はグループの書き込み(2)と、その他の読み・書き・実行(7)を取り除く指定なので、666 から 640、つまり rw-r----- になります。ディレクトリは 777 が基準なので、同じ umask では 750(rwxr-x---)になります。touch が要求する 666 には実行権が含まれないため、作成されたファイルに実行権は付きません(umask はビットを取り除くだけで、付け加えることはありません)。
選択肢ごとの解説
- A誤り。rwxr-x---(750)は、umask 027 でディレクトリを作成したときのパーミッションです。touch は 666 を基準に作成するため、実行権は付きません。
- B誤り。rw-r--r--(644)は、umask が 022 のときに作成される通常ファイルのパーミッションです。
- C誤り。rw-rw----(660)は、umask が 007 のときの結果です。027 ではグループの書き込み権も取り除かれます。
- D正しい。666 から umask 027 のビットを取り除いた 640 になります。