過去問ドリル

LinuCレベル1 ファイル・ディレクトリの操作と管理 問22

ファイル・ディレクトリの操作と管理/ファイルの所有者とパーミッション

umask の値が 027 に設定されたシェルで、touch コマンドを使って新しい通常ファイルを作成した。作成されたファイルのパーミッションとして正しいものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)

正解: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 になります。
LinuCレベル1の問題を演習モードで解く