O umask atua como um conjunto de permissões que os aplicativos não podem definir nos arquivos. É uma máscara de criação de modo de arquivo para processos e não pode ser definida para os próprios diretórios. A maioria dos aplicativos não criaria arquivos com permissões de execução definidas, portanto, eles teriam um padrão de 666
, que é modificado pelo umask.
Como você configurou o umask para remover os bits de leitura / gravação do proprietário e os bits de leitura de outros, um padrão, como 777
nos aplicativos, resultaria em permissões de arquivo 133
. Isso significaria que você (e outros) poderiam executar o arquivo e outros seriam capazes de gravá-lo.
Se você quiser fazer com que os arquivos não sejam lidos / gravados / executados por qualquer pessoa, exceto pelo proprietário, você deve usar umask como 077
para desativar essas permissões para o grupo e outros.
Por outro lado, uma umask 000
tornará os diretórios recém-criados legíveis, graváveis e descendentes para todos (as permissões serão 777
). Essa umask é altamente insegura e você nunca deve configurá-la para 000
.
O umask padrão no Ubuntu era o 022
que significa que os arquivos recém-criados são legíveis por todos, mas somente graváveis pelo proprietário:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
A partir do Ubuntu Oneiric (11.10), o umask padrão foi relaxado 002
, o que expande o acesso de gravação ao grupo do proprietário:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Visualizando e Modificando umask
Para visualizar sua configuração atual do umask, abra um terminal e execute o comando:
umask
Para alterar a configuração umask do shell atual para outra coisa, digamos 077, execute:
umask 077
Para testar se essa configuração funciona ou não, você pode criar um novo arquivo (as permissões de arquivo de um arquivo existente não serão afetadas) e mostrar informações sobre o arquivo, execute:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
A configuração do umask é herdada pelos processos iniciados no mesmo shell. Por exemplo, inicie o editor de texto GEdit executando gedit
no terminal e salve um arquivo usando o gedit. Você notará que o arquivo recém-criado é afetado pela mesma configuração umask do terminal.
Caso de uso: sistema multiusuário
Se você estiver em um sistema compartilhado por vários usuários, é desejável que outras pessoas não possam ler arquivos no diretório inicial. Para isso, uma umask é muito útil. Edite ~/.profile
e adicione uma nova linha com:
umask 007
Você precisa fazer login novamente para que essa alteração umask entre em ~/.profile
vigor. Em seguida, você precisa alterar as permissões de arquivos existentes no diretório inicial, removendo os bits de leitura, gravação e execução para o mundo. Abra um terminal e execute:
chmod -R o-rwx ~
Se você deseja que essa configuração umask seja aplicada a todos os usuários no sistema, você pode editar o arquivo de perfil em todo o sistema em /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-