Permissão diferente entre o diretório e o arquivo com 'umask'

3

Por que o umask está configurando uma permissão diferente para um diretório e um arquivo que eu criei? Considere:

[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

Agora, o arquivo TEST2.txt não deve ter a permissão 007 como umask definido como 0770 ?

    
por Kent Pawar 05.03.2013 / 11:32

3 respostas

5

umask não impõe direitos, proíbe-os. Dê uma olhada no strace:

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

toque não solicita direitos de execução para um arquivo (o que não faria sentido).

    
por 05.03.2013 / 11:42
2

O valor umask é permissões para negar , retiradas de todas as permissões fornecidas por padrão. Um diretório requer permissão de pesquisa, portanto, a menos que suas permissões sejam substituídas por 0777 (rwxrwxrwx), com a típica umask de 0002, ele sai de 0775 (rwxrwxr-x). Para um executável o mesmo (x significa executar aqui); para um arquivo normal, as permissões padrão não são executadas, rw-rw-rw- (0666), com a umask 0664 (rwxrwxr -) acima.

    
por 05.03.2013 / 14:46
0

umask é um valor que é basicamente o complemento do valor de permissão padrão. Então, se umask mostra 002, isso significa que a permissão padrão é 775. Outros exemplos para melhor compreensão incluem umask = 000 = > perms = 777 ou umask = 777 = > perms = 000.

    
por 05.03.2013 / 11:39