Linuxとコマンドラインの基礎

touch は新しいファイルを 666 から、mkdir は新しいディレクトリを 777 から、umask のビットを取り除いた権限で作る。umask が 027 のシェルで新しいファイルと新しいディレクトリを作ったときの、それぞれの権限の組み合わせとして、正しいものはどれか。

  1. Aファイル 637、ディレクトリ 750
  2. Bファイル 640、ディレクトリ 750
  3. Cファイル 750、ディレクトリ 750
答えと解説を見る

正解:B. ファイル 640、ディレクトリ 750

umask は、新しく作るファイルやディレクトリから「取り除く」権限のビットを表します。027 はグループから書き込み(2)を、その他から読み取り・書き込み・実行(7)を取り除くので、ファイルは 666 から rw-r-----(640)、ディレクトリは 777 から rwxr-x---(750)になります。これは8進数の引き算ではなく、ビットごとに取り除く計算です(666 AND NOT 027)。よく使われる umask 022 では、同じ計算でファイルが 644、ディレクトリが 755 になります。

  • A. 666 から 027 を8進数で引き算した値です。umask はビットごとに取り除く働きなので、引き算とは結果が違うことがあります(022 なら、どちらも 644 になります)。
  • B. 正しい。ファイルは 666 から 640 に、ディレクトリは 777 から 750 になります。
  • C. ファイルは 777 ではなく 666 をもとに作られるので、新しいファイルに実行の権限は付きません。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. ディレクトリ d の権限が rwx--x--x(711)で、その中のファイル f.txt の権限が rw-r--r--(644)である。所有者でもスーパーユーザでもない利用者が「ls d」と「cat d/f.txt」を実行したときの結果として、正しいものはどれか。
  2. Linuxの sudo コマンドの説明として、正しいものはどれか。
  3. 多くのLinuxで「ls -l /usr/bin/passwd」を実行すると「-rwsr-xr-x 1 root root ...」と表示される。所有者の実行の位置にある「s」の意味として、正しいものはどれか。
  4. 上のコマンドを順に実行したとき、最後の cat で表示される内容として、正しいものはどれか。
  5. 上のように、a.txt はあり nofile はないディレクトリで、最後のコマンドを実行した。結果として、正しいものはどれか。