umask (Português)

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
. É 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