Por que umask 077 não permite ao usuário executar arquivos / diretórios?

9

Estou usando o umask 077. "Outro" e "grupo" não têm direitos, mas o usuário não pode executar arquivos / diretórios. Por que umask 077 não permite ao usuário executar arquivos / diretórios?

    
por Just me 12.09.2012 / 00:04

2 respostas

5

Quando você usa um umask de 077 somente , o usuário tem permissões de leitura, gravação e execução. O usuário definitivamente será capaz de abrir ('executar') diretórios (veja mais sobre por que os diretórios devem ser executáveis na minha resposta aqui ). No entanto, os arquivos sempre devem ser executados inserindo chmod u+x myfile ; eles nunca são executáveis automaticamente. Algumas informações mais úteis sobre umask são fornecidas nesta resposta:

A possibilidade provável de seus problemas é que você talvez tenha inserido o valor ligeiramente incorretamente, o que resultou em uma umask diferente, ou que o valor não foi definido permanentemente. Se você digitar umask 077 no terminal, isso só será válido para aquela sessão do terminal; Para torná-lo permanente para seu usuário, basta adicionar umask 077 ao seu ~/.profile . A configuração padrão do sistema para umask está em /etc/login.defs ; usado para estar em /etc/profile . Veja também a página manpage para pam_umask , que é um módulo pam que lida com a atribuição de umask .

Os exemplos a seguir são de uma configuração bem-sucedida de umask 077 :

1) Para criação de pastas : mkdir doc verificado com stat doc deu as permissões corretas e uma pasta 'executável':

File: 'doc'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 6425268     Links: 2
Access: (0700/drwx------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:33:01.236675420 +0100
Modify: 2012-09-12 11:33:01.236675420 +0100
Change: 2012-09-12 11:33:01.236675420 +0100
 Birth: -

2) Para criação de arquivos : touch new marcado com stat new deu as permissões corretas; o arquivo só se torna executável quando você usa chmod +x :

File: 'new'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 6303902     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:34:58.272676270 +0100
Modify: 2012-09-12 11:34:58.272676270 +0100
Change: 2012-09-12 11:34:58.272676270 +0100

Um umask de 077 fornecerá as permissões mostradas, mas se você ainda tiver problemas com as permissões depois de definir umask 077 corretamente (conforme discutido acima), poderemos analisá-las mais detalhadamente.

    
por user76204 12.09.2012 / 13:07
3

O valor umask será usado para modificar adequadamente o padrão fmask para permissões de arquivo (permissão base 0666) e dmask para diretório / pasta permissões (permissão base 0777).

Os valores efetivos fmask e dmask serão calculados deduzindo o valor umask (cálculos Octal).

Assim, um umask 0022 resultaria em fmask para obter um valor 0644 (ou seja, 0666 - 0022), enquanto dmask seria 0755 (ou seja 0777 - 0022).

O umask 0077 impede que arquivos sejam criados com qualquer acesso não apenas para o mundo (indicado pelo último dígito octal), mas também seus membros do grupo (indicados pelo penúltimo dígito octal).

Referência:

por precise 02.03.2014 / 13:28

Tags