web-dev-qa-db-ja.com

テストファイルを作成すると700が返されますが、umaskは0002ですか?なぜ664ではないのですか?

ファイルとディレクトリのデフォルト値である666と777はどこに保存されますか?

umask 0002
touch dummy 
ls -l 

ダミーのパーミッションは、予想される644ではなく700であると教えてくれます。何かアイデアはありますか?

1
aafc

[max @ localhost〜] $ umask

これにより、デフォルトのumaskが表示されます

0002

/etc/bashrcファイルのデフォルトのアクセス許可が保存されます

 16 if [$ UID -gt 199] && ["` id -gn` "=" `id -un`"]; then 
 17 umask 002 
 18 else 
 19 umask 022 
 20 fi 

通常のユーザー002のデフォルトのumask

Rootユーザーのデフォルトのumaskは022です。

ディレクトリの場合、基本権限は0777で、ファイルの場合は0666です。

つまり、umask値を002に設定すると、基本権限からumaskが差し引かれます。

ディレクトリの場合

777-002 = 775

ファイルの場合

666-002 = 664

[max @ localhost〜] $ mkdir file1

[max @ localhost〜] $ ls -ld file1

drwxrwxr-x 2 max max 4096 Sep 25 15:37 file1 ------> 775

[max @ localhost〜] $ touch file2

[max @ localhost〜] $ ls -l file2

-rw-rw-r-- 1 max max 0 Sep 25 15:40 file2 -------> 664

5
max