umask (Português) - ArchWiki

# umask (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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)