Pular para o conteúdo principal

Questão de Sistemas Operacionais — Linux — FUNDATEC 2024

Sistemas OperacionaisLinux
Código
qg162302
Banca
FUNDATEC
Órgão
CRF-RS
Ano
2024
Nível
Superior
Cargo
Programador
Em um sistema operacional Linux, foram executados diversos comandos, na ordem em que são apresentados a seguir:Imagem associada para resolução da questãoQual alternativa contém uma possível saída para a sequência de comandos?
  1. A-rw-rw---- 1 usuario usuario 0 May 30 18:57 relatorio.sql
  2. B-rw-r----- 1 usuario usuario 0 May 30 18:57 relatorio.sql
  3. C-r--r----- 1 usuario usuario 0 May 30 18:57 relatorio.sql
  4. D-rx-rx-r-- 1 usuario usuario 0 May 30 18:57 relatorio.sql
  5. E-rw-r----x 1 usuario usuario 0 May 30 18:57 relatorio.sql
Revelar gabarito e comentário

GabaritoB — -rw-r----- 1 usuario usuario 0 May 30 18:57 relatorio.sql

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Permissões de arquivos no Linux: umask e chmod

Gabarito: letra B. A sequência de comandos termina com a criação de um arquivo relatorio.sql cuja permissão final é -rw-r-----, ou seja, leitura e escrita para o dono, leitura para o grupo e nenhuma permissão para outros. Isso ocorre porque o comando umask 027 define a máscara que remove os bits de permissão correspondentes na criação do arquivo, e o comando touch cria o arquivo com a permissão resultante dessa máscara.

A permissão de um arquivo recém-criado no Linux não é definida diretamente pelo comando que o cria, mas sim pela combinação entre a permissão base que o sistema atribui a arquivos comuns e a máscara de permissões (umask). Para arquivos comuns, a base é 666 (leitura e escrita para todos), e a umask remove bits dessa base. A umask é uma máscara de bits: cada bit 1 na máscara apaga o bit correspondente na permissão base. Não é uma subtração aritmética, mas uma operação de apagamento de bits (AND com o complemento da máscara).

No caso da questão, a umask é 027. Em octal, 0 significa que nenhum bit será removido para o dono, 2 (que é 010 em binário) remove o bit de escrita para o grupo, e 7 (que é 111 em binário) remove todos os bits de leitura, escrita e execução para outros. Aplicando isso à base 666 (que em binário é 110 110 110), temos:

  • Dono: 110 (rw-) — nada é removido, permanece rw-.

  • Grupo: 110 (rw-) — o bit 010 (escrita) é removido, resultando em 100 (r--).

  • Outros: 110 (rw-) — todos os bits são removidos, resultando em 000 (---).

Portanto, a permissão final do arquivo é rw-r-----, que corresponde à alternativa B.

É importante distinguir a umask do comando chmod. Enquanto a umask define as permissões padrão para arquivos e diretórios recém-criados, o chmod altera as permissões de um arquivo ou diretório já existente. A umask é uma configuração do shell ou do sistema, geralmente definida em arquivos como /etc/profile ou ~/.bashrc, e afeta todos os arquivos criados a partir daquele shell. O chmod pode ser usado com notação simbólica (como chmod g-w arquivo) ou octal (como chmod 640 arquivo), e é uma operação explícita que não depende da máscara.

Outra distinção relevante é entre permissões de arquivo e permissões de diretório. Para arquivos, a permissão de escrita (w) permite modificar o conteúdo do arquivo, mas não permite apagá-lo ou renomeá-lo — isso depende da permissão de escrita no diretório que o contém. Para diretórios, a permissão de leitura (r) permite listar o conteúdo, a de escrita (w) permite criar, apagar e renomear arquivos dentro dele, e a de execução (x) permite acessar (entrar) o diretório. Essa distinção é frequentemente cobrada em provas e pode ser uma pegadinha.

A pegadinha desta questão está em confundir a umask com uma subtração aritmética. Muitos candidatos, ao verem umask 027, subtraem 027 de 666 e obtêm 639, o que não corresponde a nenhuma alternativa. A operação correta é o apagamento de bits: 666 (binário 110 110 110) com a máscara 027 (binário 000 010 111) resulta em 110 100 000, que é 640 em octal, ou rw-r-----. A alternativa B é a única que apresenta exatamente essa permissão.

Guarde o par base 666 para arquivos e 777 para diretórios, e a operação de apagamento de bits da umask: é exatamente nessa distinção que as alternativas se dividem.

  1. 1Base: 666 (arquivo)
  2. 2umask 027 em binário
  3. 3Apagar bits da base
  4. 4Resultado: 640 (rw-r-----)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A permissão -rw-rw---- indica que o grupo tem permissão de leitura e escrita (rw-). Isso ocorreria se a umask fosse 006 (removendo apenas os bits de outros), não 027. A alternativa confunde a máscara aplicada ao grupo, mantendo a escrita que deveria ser removida.

Alternativa B — ✅ Correta ⟵ GABARITO

A permissão -rw-r----- é exatamente o resultado de aplicar a umask 027 à base 666 para arquivos comuns. O dono mantém leitura e escrita (rw-), o grupo perde a escrita, mantendo apenas leitura (r--), e outros perdem todas as permissões (---). A operação de apagamento de bits confirma: 666 (binário 110 110 110) com máscara 027 (binário 000 010 111) resulta em 110 100 000 = 640 = rw-r-----.

Alternativa C — ❌ Incorreta

A permissão -r--r----- indica que o dono tem apenas leitura (r--), sem escrita. Isso ocorreria se a umask tivesse o bit de escrita do dono ativado (por exemplo, umask 226), o que não é o caso. A alternativa erra ao remover a permissão de escrita do dono, que deveria ser mantida.

Alternativa D — ❌ Incorreta

A permissão -rx-rx-r-- é inválida na notação simbólica do Linux: a ordem correta é rwx (leitura, escrita, execução), e a alternativa apresenta rx sem o w no lugar correto. Além disso, a umask 027 não produziria permissão de execução para nenhuma classe, pois a base para arquivos comuns é 666, que não inclui o bit de execução. A alternativa mistura notação incorreta com permissões que não derivam da máscara.

Alternativa E — ❌ Incorreta

A permissão -rw-r----x indica que outros têm permissão de execução (--x). Isso não é possível com a umask 027, que remove todos os bits de outros (máscara 7 = 111). A alternativa confunde a máscara aplicada a outros, mantendo um bit que deveria ser removido.

A regra de ouro para questões de umask é: identifique a base (666 para arquivos, 777 para diretórios), converta a máscara para binário e apague os bits correspondentes em cada classe. A operação é de apagamento, não de subtração. Com isso, você resolve qualquer questão do tema sem depender de memorizar casos específicos.

Gabarito: letra B

Link permanente: /questoes/qg162302