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

10

Estou usando umask 077. "Other" e "group" não têm nenhum direito, mas o usuário não pode executar arquivos / diretórios. Por que umask 077 não permite que o proprietário execute arquivos / diretórios?

Apenas eu
fonte

Respostas:

6

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

A possibilidade provável para 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ê entrar umask 077no terminal, ele permanecerá válido apenas para aquela sessão do terminal; para torná-lo permanente para o usuário, basta adicionar umask 077ao seu ~/.profile. A configuração padrão do sistema para umaskestá em /etc/login.defs; -lo usado para a /etc/profile. Veja também a página de manual 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 pasta : mkdir docmarcada com stat docas 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 arquivo : touch newmarcado com stat newdeu as permissões corretas; o arquivo só é 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

A umask077 dará as permissões mostradas, mas se você ainda tiver problemas com as permissões depois de configurá umask 077-las corretamente (conforme discutido mais acima), podemos investigar melhor.

Comunidade
fonte
5

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

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

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

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

Referência:

preciso
fonte
quanto mais eu leio isso, mais eu não entendo. Existe alguma explicação para o novato que só quer fazer pequenas mudanças sem conhecer profundamente?
GusDeCooL 29/02