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?
Quando você usa umask
077, 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 umask
sã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 077
no terminal, ele permanecerá válido apenas para aquela sessão do terminal; para torná-lo permanente para o usuário, basta adicionar umask 077
ao seu ~/.profile
. A configuração padrão do sistema para umask
está 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 doc
marcada com stat doc
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 arquivo : touch new
marcado com stat new
deu 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 umask
077 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.
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).