Questão de Sistemas Operacionais — Geral — VUNESP 2024
Sistemas Operacionais›Geral
Código
vu212418
Banca
VUNESP
Órgão
Pref Aparecida (SP)
Ano
2024
Cargo
Ana ( )
O administrador de um sistema Ubuntu digitou no terminal o seguinte comando: awk -F : {print $1} /etc/passwd É correto afirmar que o conteúdo exibido no terminal após o administrador pressionar a tecla Enter será:
Aa primeira linha do arquivo passwd.
Bas senhas dos usuários cadastrados no sistema.
Co caminho (path) do arquivo passwd.
Do nome do arquivo passwd.
Eos nomes dos usuários cadastrados no sistema.
Revelar gabarito e comentário▾
GabaritoE — os nomes dos usuários cadastrados no sistema.
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”.
Comando awk no Linux
Gabarito: letra E. O comando awk -F : '{print $1}' /etc/passwd exibe o primeiro campo de cada linha do arquivo /etc/passwd, que é o nome do usuário. O -F : define o separador de campos como dois-pontos, e $1 refere-se ao primeiro campo de cada linha.
O comando awk é um processador de texto extremamente versátil no Linux. Ele lê um arquivo linha por linha, divide cada linha em campos com base em um separador (delimitador) e permite executar ações sobre esses campos. No comando em questão, -F : informa ao awk que o delimitador de campos é o caractere dois-pontos (:). O arquivo /etc/passwd é um arquivo de texto que contém informações sobre cada usuário do sistema, uma linha por usuário, com os campos separados por dois-pontos. A estrutura típica de cada linha é:
joao:x:1000:1000:João da Silva:/home/joao:/bin/bash
Nesse exemplo, o primeiro campo ($1) é joao, que é o nome de usuário. O segundo campo ($2) é x, que representa a senha criptografada (ou um marcador se as senhas estiverem em /etc/shadow). O terceiro campo ($3) é o UID (User ID), e assim por diante.
O comando {print $1} é a ação que o awk executa para cada linha: imprimir o primeiro campo. Portanto, ao executar o comando, o terminal exibirá uma lista com os nomes de todos os usuários cadastrados no sistema, um por linha.
A pegadinha desta questão está em confundir o que cada campo do arquivo /etc/passwd representa. Muitos candidatos podem pensar que o comando exibe as senhas, mas o campo da senha é o segundo ($2), e na maioria dos sistemas modernos ele é apenas um x, pois as senhas reais ficam em /etc/shadow. Outros podem confundir com a primeira linha do arquivo, mas o awk processa todas as linhas, não apenas a primeira.
1Lê linha por linha
2Divide por ':' (-F :)
3Imprime $1 (nome)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A alternativa afirma que o comando exibe a primeira linha do arquivo. Isso está errado porque o awk processa todas as linhas do arquivo, não apenas a primeira. Para exibir apenas a primeira linha, seria necessário usar um comando como head -1 /etc/passwd ou awk 'NR==1' /etc/passwd. O comando dado imprime o primeiro campo de cada linha, resultando em uma lista de todos os usuários.
Alternativa B — ❌ Incorreta
A alternativa afirma que o comando exibe as senhas dos usuários. Isso está errado porque o campo da senha é o segundo campo ($2), não o primeiro ($1). Para exibir as senhas, o comando seria awk -F : '{print $2}' /etc/passwd. Além disso, na maioria dos sistemas Linux modernos, o campo da senha contém apenas um x, pois as senhas criptografadas são armazenadas no arquivo /etc/shadow, que é acessível apenas ao superusuário.
Alternativa C — ❌ Incorreta
A alternativa afirma que o comando exibe o caminho (path) do arquivo passwd. Isso está errado porque o comando não exibe o caminho do arquivo, mas sim o conteúdo processado do arquivo. O caminho /etc/passwd é apenas o argumento que informa ao awk qual arquivo deve ser lido. Para exibir o caminho, seria necessário usar um comando como realpath /etc/passwd ou readlink -f /etc/passwd.
Alternativa D — ❌ Incorreta
A alternativa afirma que o comando exibe o nome do arquivo passwd. Isso está errado porque o comando não exibe o nome do arquivo, mas sim o conteúdo processado. O nome do arquivo é passwd, mas o comando awk não o imprime. Para exibir o nome do arquivo, seria necessário usar um comando como basename /etc/passwd.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa afirma que o comando exibe os nomes dos usuários cadastrados no sistema. Isso está correto porque o primeiro campo ($1) de cada linha do arquivo /etc/passwd é exatamente o nome do usuário. O comando awk -F : '{print $1}' /etc/passwd lê o arquivo, divide cada linha pelo delimitador : e imprime o primeiro campo de cada linha, resultando na lista de todos os nomes de usuários do sistema.