Android

Comando Umask no Linux

Comando umask - Permissões padrão de arquivos e diretórios no Linux

Comando umask - Permissões padrão de arquivos e diretórios no Linux

Índice:

Anonim

Nos sistemas operacionais Linux e Unix, todos os novos arquivos são criados com um conjunto de permissões padrão. O utilitário umask permite exibir ou definir a máscara de criação do modo de arquivo, que determina os bits de permissão para os arquivos ou diretórios criados recentemente.

É usado pelo mkdir, touch, tee e outros comandos que criam novos arquivos e diretórios.

Permissões do Linux

Antes de prosseguir, vamos explicar em breve o modelo de permissões do Linux.

No Linux, cada arquivo é associado a um proprietário e um grupo e atribuído com direitos de acesso de permissão para três classes diferentes de usuários:

  • o proprietário do arquivo. os membros do grupo.

Existem três tipos de permissões que se aplicam a cada classe:

  • a permissão de leitura. a permissão de gravação. a permissão de execução.

Esse conceito permite especificar quais usuários têm permissão para ler, gravar ou executar o arquivo.

Para visualizar as permissões do arquivo, use o comando ls :

ls -l dirname

drwxr-xr-x 12 linuxize users 4.0K Apr 8 20:51 dirname | | | | | | | | | | | | +-----------> Group | | | | +-------------------> Owner | | | +----------------------------> Others Permissions | | +-------------------------------> Group Permissions | +----------------------------------> Owner Permissions +------------------------------------> File Type

O primeiro caractere representa o tipo de arquivo que pode ser arquivo regular ( - ), diretório ( d ), link simbólico ( l ) ou qualquer outro tipo especial de arquivo.

Os próximos nove caracteres representam as permissões, três conjuntos de três caracteres cada. Os primeiros conjuntos mostram as permissões de proprietário, o segundo grupo de permissões e o último conjunto mostra as permissões de todos os outros.

O caractere r com um valor octal de 4 significa leitura, w com um valor octal de 2 para gravação, x com um valor octal de 1 para permissão de execução e ( - ) com valor octal de 0 para nenhuma permissão.

Existem também outros três tipos especiais de permissões de arquivo: setuid , setgid e Sticky Bit .

No exemplo acima ( rwxr-xr-x ) significa que o proprietário possui permissões de leitura, gravação e execução ( rwx ), o grupo e outras pessoas têm permissões de leitura e execução.

Se representarmos as permissões de arquivo usando uma notação numérica, chegaremos ao número 755 :

  • Proprietário: rwx = 4+2+1 = 7 Grupo: rx = 4+0+1 = 5 Outros: rx = 4+0+1 = 5

Quando representadas em notação numérica, as permissões podem ter três ou quatro dígitos octais (0 a 7). O primeiro dígito representa as permissões especiais e, se for omitido, significa que nenhuma permissão especial está definida no arquivo. No nosso caso, 755 é o mesmo que 0755 . O primeiro dígito pode ser uma combinação de 4 para setuid , 2 para setgid e 1 para Sticky Bit .

As permissões de arquivo podem ser alteradas usando o comando chmod e a propriedade usando o comando chown .

Compreendendo umask

Por padrão, nos sistemas Linux, as permissões de criação padrão são 666 para arquivos, o que concede permissão de leitura e gravação ao usuário, grupo e outros e 777 para diretórios, o que significa permissão de leitura, gravação e execução ao usuário, grupo e outras. O Linux não permite que um arquivo seja criado com permissões de execução.

As permissões de criação padrão podem ser modificadas usando o utilitário umask .

umask afeta apenas o ambiente atual do shell. Na maioria das distribuições Linux, o valor padrão umask para todo o sistema é definido no pam_umask.so ou /etc/profile .

Para visualizar o valor atual da máscara, basta digitar umask sem argumentos:

umask

A saída incluirá o

022

O valor umask contém os bits de permissão que NÃO serão definidos nos arquivos e diretórios criados recentemente.

Como já mencionamos, as permissões de criação padrão para arquivos são 666 e para diretórios 777 . Para calcular os bits de permissão dos novos arquivos, subtraia o valor umask do valor padrão.

Por exemplo, para calcular como o uname 022 afetará arquivos e diretórios criados recentemente, use:

  • Arquivos: 666 - 022 = 644 . O proprietário pode ler e modificar os arquivos. O grupo e outros só podem ler os arquivos. Diretórios: 777 - 022 = 755 O proprietário pode entrar no diretório e listar a leitura, modificação, criação ou exclusão dos arquivos no diretório. O grupo e outros podem entrar no diretório, listar e ler os arquivos.

Você também pode exibir o valor da máscara em notação simbólica usando a opção -S :

umask -S

u=rwx, g=rx, o=rx

Diferente da notação numérica, o valor da notação simbólica contém os bits de permissão que serão definidos nos arquivos e diretórios criados recentemente.

Configurando o valor da máscara

A máscara de criação de arquivo pode ser definida usando notação octal ou simbólica. Para tornar as alterações permanentes, defina o novo valor umask em um arquivo de configuração global como /etc/profile que afetará todos os usuários ou nos arquivos de configuração de shell do usuário, como ~/.profile , ~/.bashrc ou ~/.zshrc que afetará apenas o usuário. Os arquivos do usuário têm precedência sobre os arquivos globais.

Antes de fazer alterações no valor umask verifique se o novo valor não representa um risco potencial à segurança. Valores menos restritivos que 022 devem ser usados ​​com muito cuidado. Por exemplo, umask 000 significa que qualquer pessoa terá permissão de leitura, gravação e execução para todos os arquivos recém-criados.

Digamos que desejamos definir permissões mais restritivas para os arquivos e diretórios criados recentemente, para que outras pessoas não consigam fazer o cd para os diretórios e ler os arquivos. As permissões que queremos são 750 para diretórios e 640 para arquivos.

Para calcular o valor umask basta subtrair as permissões desejadas da padrão:

Valor do Umask: 777-750 = 027

O valor umask desejado representado na notação numérica é 027 .

Para definir permanentemente o novo valor em todo o sistema, abra o arquivo /etc/profile com seu editor de texto:

sudo nano /etc/profile

e altere ou adicione a seguinte linha no início do arquivo:

/ etc / profile

umask 027

Para que as alterações entrem em vigor, execute o seguinte comando ou logout de origem e efetue login:

source /etc/profile

Para verificar as novas configurações, criaremos um novo arquivo e diretório usando o mkdir e touch :

mkdir newdir touch newfile

drwxr-x--- 2 linuxize users 4096 Jul 4 18:14 newdir -rw-r----- 1 linuxize users 0 Jul 4 18:14 newfile

Outra maneira de definir a máscara de criação de arquivo é usando a notação simbólica. Por exemplo umask u=rwx, g=rx, o= é o mesmo que umask 027 .

Conclusão

Neste guia, explicamos as permissões do Linux e como usar o comando umask para definir os bits de permissão para arquivos ou diretórios criados recentemente.

Para mais informações, digite man umask no seu terminal.

terminal umask