umask (Português) - ArchWiki

Jump to content

# umask (Português)

From ArchWiki

Status de tradução: Esse artigo é uma tradução de umask. Data da última tradução: 2019-11-06. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Permissões e atributos de arquivo

O utilitário umask é usado para controlar a máscara de modo de criação de arquivo, o qual determinar o valor inicial dos bits de permissão de arquivo para arquivos recém-criados. O seguinte comportamento deste utilitário é padronizado pelo POSIX e descrito no Manual do Programador POSIX. Porque o umask afeta o ambiente de execução do shell atual, é geralmente implementado como um comando incorporado de um shell.

## Significado da máscara de modo

A máscara de modo contém os bits de permissão que não devem ser definidos em um arquivo recém-criado e, portanto, é uma negação (também chamado, em inglês, de logical complement) dos bits de permissão definidos em um arquivo recém-criado. Se algum bit na máscara estiver configurado para `1`, a permissão correspondente para o arquivo recém-criado será desabilitada. Assim, a máscara atua como um filtro para retirar os bits de permissão e ajuda na configuração do acesso padrão aos arquivos.

O valor resultante para os bits de permissão a serem configurados em um arquivo recém-criado é calculado usando a negação de condicional ou implicação material (também chamada, em inglês, de material nonimplication ou abjunction, que pode ser expressa em notação lógica:

    R: (D & (~M))

Isso é, as permissões resultantes `R` são o resultado da conjunção binário (AND) de permissões padrão `D` e a negação binária (NOT) da máscara de modo de criação de arquivo `M`.

Nota:

- O Linux não permite que um arquivo seja criado com permissões de execução – as permissões de criação padrão são `777` para diretórios e apenas `666` para arquivos.
- No Linux, apenas os bits de permissão do arquivo da máscara são usados – veja umask(2). Os bits suid, sgid e sticky da máscara são ignorados.

Por exemplo, suponha que a máscara do modo de criação de arquivos seja `027`. Aqui, a representação bit a bit de cada dígito representa:

- `0` significa não definido para os bits de permissão de usuário em um arquivo recém-criado
- `2` significa não definido para os bits de permissão de grupo em um arquivo recém-criado
- `7` significa não definido para os bits de permissão de outro em um arquivo recém-criado

Com as informações fornecidas pela tabela abaixo, isso significa que para um arquivo recém-criado, por exemplo, pertencente ao usuário `Usuario1` e o grupo `Grupo1`, o `Usuario1` tem todas as permissões possíveis (valor octal `7`) para o arquivo recém-criado, outros usuários do grupo `Grupo1` não possuem permissões de escrita (valor octal `5`) e qualquer outro usuário não possui quaisquer permissões (valor octal `0`) sobre o arquivo recém-criado. Então, com a máscara `027` deste exemplo, os arquivos serão criados com permissões `750`.

Octal | Binário | Singinificado
--- | --- | ---
`0` | `000` | sem permissão
`1` | `001` | somente execução
`2` | `010` | somente escrita
`3` | `011` | somente escrita e execução
`4` | `100` | somente leitura
`5` | `101` | leitura e execução
`6` | `110` | leitura e escrita
`7` | `111` | leitura, escrita e execução

## Exibir o valor atual da máscara

Para exibir a máscara atual, basta executar `umask` sem especificar nenhum argumento. O estilo de saída padrão depende da implementação, mas geralmente é octal:

    $umask

    0027

Quando a opção `-S`, padronizada pelo POSIX, é usada, a máscara será exibida usando a notação simbólica. No entanto, o valor da notação simbólica sempre será a negação binária do valor octal, isto é, os bits de permissão a serem definidos no arquivo recém-criado:

    $ umask -S

    u=rwx,g=rx,o=

## Definir o valor da máscara

Nota: Os valores umask podem ser definidos caso a caso. Por exemplo, os usuários de desktop achar as permissões restritas em sua pasta home suficiente (`useradd -m` cria o diretório com permissão `700` por padrão), pois elas tornam todos os arquivos inacessíveis para outros usuários. Isso não seria prático (por exemplo, ao usar o Apache) e os arquivos públicos são armazenados entre os particulares, então, em vez disso, considere restringir o umask.

Você pode definir o valor de umask através do comando umask. A string que especifica a máscara de modo segue as mesmas regras sintáticas que o argumento de modo de chmod (consulte o Manual do Programador POSIX para mais detalhes).

O valor de umask do sistema pode ser definido em `/etc/profile` ou nos arquivos de configuração padrão do shell, por exemplo, `/etc/bash.bashrc`. A maioria das distribuições Linux, incluindo o Arch, define um valor padrão de umask de `022` (veja /etc/profile). É possível também configurar umask com `pam_umask.so`, mas este pode ser substituído por `/etc/profile` ou similar.

Se você precisa definir um valor diferente, você pode editar diretamente esse arquivo, afetando todos os usuários, ou executar `umask` a partir do arquivo de configuração do usuário do seu shell (ex.: `~/.bashrc`) para alterar apenas seu umask, porém essas mudanças só terão efeito após o próximo login. Para alterar seu umask apenas durante a sessão atual, basta executar `umask` e digitar o valor desejado. Por exemplo, executar `umask 077` lhe dará permissões de leitura e escrita para novos arquivos e permissões de leitura, escrita e execução para novas pastas.

## Veja também

- Manual do Programador POSIX:
  - umask (também disponível como umask(1p))
  - chmod (descrição estendida) (também disponível como chmod(1p))
- 027 umask: um meio-termo entre segurança e simplicidade

Categories:

- Security (Português)
- File systems (Português)
- Commands (Português)