"umask"を使用して、ディレクトリとファイル間で異なる権限を設定します。

"umask"を使用して、ディレクトリとファイル間で異なる権限を設定します。

umaskが私が作成したディレクトリとファイルに異なる権限を設定するのはなぜですか?

[user@server1 ~]$ umask
0770
[user@server1 ~]$ mkdir TEST2; touch TEST2.txt;
[user@server1 ~]$ ls -l
d------rwx 2 user group_name 4096 Mar  5 05:16 TEST2
-------rw- 1 user group_name    0 Mar  5 05:16 TEST2.txt

これでファイルに権限が設定されてはいけませんかTEST2.txt007umask0770

答え1

umaskは権利を強制することなく禁止します。 straceを見てください。

file:
open("newfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
directory:
mkdir("newdir", 0777)                   = 0

touchはファイルに対する実行権限を要求しません(不明)。

答え2

umaskは権限です。否定的な、デフォルトで付与されたすべての権限を取り消します。ディレクトリには検索権限が必要なため、上書きしない限り、その権限は0777(rwxrwxrwx)、通常のumaskは0002、0775(rwxrwxr-x)が残ります。実行可能ファイルの場合も同様です(xはここで実行を意味します)。一般ファイルの場合、デフォルトの権限は上記の実行不可、rw-rw-rw-(0666)、およびumask 0664(rwxrwxr--)です。

答え3

umask はデフォルトでデフォルト権限値の補足値です。したがって、umaskに002が表示されている場合、デフォルトの権限は775です。より良い理解のために、他の例にはumask = 000 => perms = 777またはumask = 777 => perms = 000があります。

関連情報