Umask não está funcionando [fechado]

4

Estou tentando descobrir como usar umask .

Corri umask 027 esperando que isso resultasse em todas as permissões para mim, leia e execute para o grupo e nenhum para todos os outros.

Com base em um padrão de 777 menos 027 = 750.

Mas quando eu corro:

umask 027
touch test
ls -l test

Eu volto:

-rw-r----- 1 philip philip 0 Jun  3 12:14 test

Isso não é nada do que eu esperava.

Onde eu errei no meu entendimento de umask ?

    
por Philip Kirkbride 03.06.2017 / 18:15

1 resposta

5

O umask não pode adicionar permissões, apenas servidores para mascarar alguns dos bits de permissão definidos pelo processo que criou o arquivo em questão.

The umask is used by open(2), mkdir(2), and other system calls that create files to modify the permissions placed on newly created files or directories. Specifically, permissions in the umask are turned off from the mode argument to open(2) and mkdir(2).

( página de manual umask(2) )

touch cria arquivos com permissões 0666 , como a maioria dos outros aplicativos faz quando não cria algo explicitamente conhecido como privado ou algo que deve ser executável (nesse caso eles usariam 0600 ou 0777 respectivamente). Se o umask pudesse ser usado para forçar a adição de bits de permissão, coisas como clientes de e-mail e ssh-keygen estariam com problemas: eles não teriam como criar arquivos que só podem ser acessados pelo proprietário!

$ umask 027; rm xxx; strace -etrace=open touch xxx 2>&1 | grep xxx ;  ls -l xxx
open("xxx", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
-rw-r----- 1 itvirta itvirta 0 Jun  3 20:40 xxx

Se providenciarmos que o arquivo seja criado com permissões mais amplas, também vemos os bits de execução:

$ umask 027; rm yyy; 
$ perl -MFcntl -e 'sysopen F, "yyy", O_WRONLY|O_CREAT, 0777'
$ ls -l yyy
-rwxr-x--- 1 itvirta itvirta 0 Jun  3 20:40 yyy*

Da mesma forma, poderíamos criar um diretório sem o x bits definido ...

$ perl -MFcntl -e 'mkdir "ddd", 0666'
$ ls -ld  ddd
drw-r----- 2 itvirta itvirta 4096 Jun  3 20:45 ddd/
    
por 03.06.2017 / 19:44

Tags