Sobes.tech
Junior

O que é umask?

sobes.tech IA

Resposta da IA

Umask (abreviação de user file-creation mode mask) é um comando em sistemas operativos do tipo Unix/Linux que define a máscara de permissões padrão para os novos ficheiros e diretórios criados. É um conjunto de bits que são desativados a partir dos direitos completos (777 para diretórios, 666 para ficheiros) ao criar um objeto.

Representação do umask:

  • O umask é geralmente representado por um código octal de três dígitos, por exemplo, 022. Cada dígito corresponde aos direitos do proprietário, do grupo e de todos os outros utilizadores.
  • Os bits da máscara são invertidos relativamente aos direitos desejados. Por exemplo, para desativar o direito de escrita (2) para o grupo, o bit correspondente será ativado na umask.

Cálculo dos direitos resultantes:

Os direitos de acesso resultantes para um novo ficheiro/diretório são calculados como:

Resultado = Direitos_iniciais E (NÃO umask)

Onde:

  • Direitos_iniciais para ficheiro = 666 (rw-rw-rw-)
  • Direitos_iniciais para diretório = 777 (rwxrwxrwx)
  • NÃO umask - o complemento binário do valor do umask. Ao usar um código octal, cada dígito do umask é subtraído de 7.

Exemplo: umask = 022

  • Para ficheiro: 666 E (NÃO 022) = 666 E 755 = 644 (rw-r--r--)
  • Para diretório: 777 E (NÃO 022) = 777 E 755 = 755 (rwxr-xr-x)

Visualização e definição do umask:

  • Visualizar o umask atual:

    # Mostra o umask em octal
    umask
    
    # Mostra o umask em formato simbólico
    umask -S
    
  • Definir um novo umask:

    # Definir o umask em octal
    umask 027
    
    # Definir o umask em formato simbólico
    umask u=rwx,g=rx,o=r
    

O umask é uma ferramenta importante para garantir a segurança básica do sistema de ficheiros, estabelecendo permissões razoáveis por defeito para os novos objetos.