私は読んだ「Linux聖書10版」、第4章:Linux上級ユーザーになる、109ページ。 2番目の段落:
$ umask
0002
先行ゼロが一時的に無視されると、umask 値はファイル 666 またはディレクトリ 777 に対する完全なオープン権限をブロックします。 umask値が002の場合、ディレクトリ権限は755(
rwxrwxr-x
)になります。同じumaskのため、ファイル権限は644(rw-rw-r--
)になります。 (デフォルトでは、通常のファイルに対する実行権限はオフになっています。)
644のようなファイルがumask値002を計算する理由を知りたいです。私が知る限り、666 - 002 = 664です。ところで、括弧内の権限は664のように見えます。
答え1
バグがあります。
これはこう言わなければならない、
先行ゼロが一時的に無視されると、umask 値はファイル 666 またはディレクトリ 777 に対する完全なオープン権限をブロックします。 umask値が002の場合、ディレクトリに対する権限は775(rwxrwxr-x)になります。同じumaskを使用すると、ファイル権限は664(rw-rw-r--)になります。 (デフォルトでは、通常のファイルに対する実行権限はオフになっています。)
指定されたumask
.octal 値にはシンボル権限を使用できません。 (これが記号的権限を使用することがほぼ常により良い理由の1つです。chmod
意図を確認しやすく、誤字が発生する可能性が低くなります。)