Visão Geral
Examinaremos o princípio básico de funcionamento do umask, que determina as permissões de acesso padrão para novos arquivos e diretórios criados no ambiente Linux. Abordaremos técnicas essenciais de gerenciamento para aplicação imediata na prática, desde o método de cálculo octal até o controle de permissões em diretórios colaborativos e a configuração permanente por meio de perfis de shell.
1. Verificação do umask atual e teste de permissões padrão na criação de arquivos e diretórios
Execute o comando mkdir -p /tmp/umask-lab && cd /tmp/umask-lab para criar e acessar um diretório de prática dedicado ao teste e configuração do umask.

O comando umask verifica e define o valor da máscara que restringe as permissões de acesso padrão de novos arquivos e diretórios criados.
O resultado da execução mostra que o valor da máscara padrão da sessão atual está definido como 0022.
⚙️ [Principais opções]
-S : Exibe as permissões permitidas de forma legível em formato simbólico (u=rwx,g=rx,o=rx) em vez de valores numéricos.-p : Exibe a configuração atual da máscara em octal no formato reutilizável do comando umask.

Ao executar o comando umask -S, é possível verificar em modo simbólico e de forma intuitiva as permissões reais concedidas ao usuário (u), grupo (g) e outros (o), de acordo com a máscara aplicada no momento.
A saída u=rwx,g=rx,o=rx indica que permissões de leitura, escrita e execução são concedidas por padrão ao proprietário, enquanto permissões de leitura e execução são concedidas ao grupo e a outros usuários.

Com o valor atual do umask (0022) aplicado, execute o comando touch default_file.txt && mkdir default_dir para criar um novo arquivo e um diretório a fim de verificar as permissões padrão de criação.

Execute o comando ls -ld default_file.txt default_dir para verificar as permissões reais do arquivo e do diretório criados.
Podemos confirmar que o diretório foi criado como 755 (drwxr-xr-x), subtraindo a máscara 022 da permissão máxima padrão 777, e o arquivo regular foi criado como 644 (-rw-r--r--), subtraindo a máscara 022 da permissão máxima padrão 666 (que não inclui permissão de execução).

2. Prática de controle de permissões em novos arquivos alterando temporariamente o valor do umask
Execute o comando mkdir -p /tmp/umask-lab && cd /tmp/umask-lab para confirmar e acessar o espaço de trabalho dedicado à prática.

Execute o comando umask 027 para alterar temporariamente o valor da máscara da sessão atual para 027.
Esta configuração restringe a permissão de escrita para usuários do grupo e bloqueia completamente as permissões de leitura, escrita e execução para outros usuários.

Para verificar se o valor alterado do umask (027) é aplicado corretamente a itens recém-criados, crie um arquivo e um diretório de teste com o comando touch secure_file.txt && mkdir secure_dir.

Execute o comando ls -ld secure_file.txt secure_dir para verificar as permissões reais do arquivo e do diretório criados.
Através do resultado exibido, é possível inspecionar o status detalhado das permissões e as informações de propriedade do diretório e do arquivo.

Após concluir o teste de controle de permissões, execute o comando umask 022 para restaurar a configuração da máscara da sessão ao estado padrão.

3. Configuração de umask em diretórios compartilhados para colaboração em equipe e ambientes de servidor web
Execute o comando mkdir -p /tmp/umask-lab/shared && cd /tmp/umask-lab para criar o diretório compartilhado para trabalho colaborativo e acessar o caminho de trabalho.

Para facilitar o trabalho conjunto e garantir que a permissão de escrita do grupo seja mantida entre os membros, execute o comando umask 002 para alterar o valor da máscara da sessão atual.
Esta configuração restringe apenas a permissão de escrita para outros usuários em relação às permissões padrão, permitindo leitura e escrita tanto para o proprietário quanto para o grupo.

Com o valor alterado do umask (002) aplicado, execute o comando touch shared/team_doc.txt && mkdir shared/team_project para criar um arquivo e um diretório para colaboração.

Execute o comando ls -ld shared/team_doc.txt shared/team_project para verificar as permissões reais do arquivo e do diretório criados.
Através da saída, você pode inspecionar o status detalhado de permissões e informações de propriedade de cada item criado no diretório compartilhado.

Após concluir o teste de ambiente colaborativo, execute o comando umask 022 para restaurar a configuração da máscara da sessão para o estado de segurança padrão.

4. Como aplicar o umask de forma permanente no sistema e por usuário
Execute o comando grep -n 'UMASK' /etc/login.defs para verificar o valor padrão de configuração do umask em todo o sistema.
Na linha 151 da saída, é possível confirmar que UMASK 022 está definido como o valor padrão do sistema.

Execute o comando echo '# Custom user umask' >> ~/.bashrc para adicionar um comentário indicando que se trata de uma configuração personalizada do usuário.

Execute o comando echo 'umask 027' >> ~/.bashrc para adicionar a configuração e garantir que as permissões personalizadas do usuário sejam aplicadas automaticamente sempre que uma nova sessão de shell for iniciada.

Execute o comando tail -n 2 ~/.bashrc para verificar se as configurações relacionadas ao umask foram adicionadas corretamente ao final do arquivo ~/.bashrc.
A saída confirma que o comentário e a configuração umask 027 foram devidamente refletidos nas duas últimas linhas do arquivo.

Execute o comando bash -c 'source ~/.bashrc && umask' para aplicar as configurações do arquivo ~/.bashrc modificado e verificar o valor final da máscara.
O resultado permite confirmar o estado atual da máscara aplicada naquele ambiente de shell.

Neste artigo, resumimos os conceitos básicos do umask, responsável por controlar automaticamente as permissões de criação de arquivos e diretórios em ambientes Linux, bem como seus métodos práticos de configuração.
Aplique o valor de umask adequado ao seu ambiente operacional e às suas políticas de segurança para garantir um gerenciamento de sistema seguro e estruturado.