Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#umask
#file-permissions
#octal-notation
#default-permissions
Medium

Qual das seguintes configurações para umask garante que os novos arquivos tenham as permissões padrão -rw-r-----?

A

0017

B

0640

C

0038

D

0027

Correct

Official Explanation / Community Explanations

A configuração umask determina as permissões padrão para arquivos e diretórios recém-criados. As permissões base padrão para arquivos são 666 (leitura e gravação para todos) e para diretórios são 777 (leitura, gravação e execução para todos). O valor de umask é subtraído dessas permissões base para gerar as permissões padrão reais.

Como funciona

Para obter permissões de arquivo -rw-r----- (que é 640 em octal), precisamos subtrair o umask das permissões base do arquivo, que são 666. O cálculo é: 666 - umask = 640. Portanto, umask = 666 - 640 = 026. No entanto, os valores de umask são normalmente fornecidos em octal e a subtração é feita dígito por dígito, sem empréstimo. O umask correto é 0027, porque:

  • Para o proprietário: 6 - 0 = 6 (rw-)
  • Para o grupo: 6 - 2 = 4 (r--)
  • Para outros: 6 - 7 = -1, mas como as permissões não podem ser negativas, o resultado é 0 (---).
    Assim, 666 - 027 = 640, que corresponde a -rw-r-----.

Por que o valor correto está certo

O valor de umask 0027 produz corretamente as permissões de arquivo 640. O zero à esquerda indica notação octal. O primeiro dígito (0) refere-se a permissões especiais (setuid, setgid, sticky), que não são afetadas neste caso. O segundo dígito (2) remove a permissão de escrita para o grupo e o terceiro dígito (7) remove todas as permissões para outros usuários.

Por que os valores incorretos estão errados

  • 0017: Essa umask resultaria em permissões de arquivo 666 - 017 = 650 (rw-r-x---), o que concede permissão de execução ao grupo, não correspondendo aos 640 necessários.
  • 0640: Esta não é uma umask válida para arquivos porque o primeiro dígito (6) removeria a leitura e a gravação do proprietário, resultando em permissões 666 - 640 = 026 (--w-rw---), o que está incorreto.
  • 0038: Esta umask atribuiria permissões de arquivo 666 - 038 = 626 (rw--w-rw-), o que permite acesso de escrita a outros e remove a leitura do grupo, não correspondendo a 640.