Different Permissions Between Directory and File with umask

permissionsumask

Why is umask setting a different permission for a directory and file I have created
Consider:

[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

Now shouldn't the file TEST2.txt have the permission 007 as umask is set to 0770?

Best Answer

umask doesn't enforce rights, it forbids them. Have a look at strace:

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

touch doesn't ask for execution rights for a file (which wouldn't make sense).

Related Question