Questão de Sistemas Operacionais — Linux — FUNDATEC 2024
Sistemas Operacionais›Linux
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:Qual alternativa contém uma possível saída para a sequência de comandos?
A-rw-rw---- 1 usuario usuario 0 May 30 18:57 relatorio.sql
B-rw-r----- 1 usuario usuario 0 May 30 18:57 relatorio.sql
C-r--r----- 1 usuario usuario 0 May 30 18:57 relatorio.sql
D-rx-rx-r-- 1 usuario usuario 0 May 30 18:57 relatorio.sql
E-rw-r----x 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.
1Base: 666 (arquivo)
2umask 027 em binário
3Apagar bits da base
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.