Análise de script Python para controle de acesso
Gabarito: letra B. O script registra em um arquivo de log tanto os acessos permitidos quanto os negados, salvando-os em texto simples, conforme a lógica de escrita no arquivo após a verificação de acesso. A alternativa correta descreve exatamente o comportamento do código apresentado na figura.
O script em questão implementa um controle de acesso baseado em um dicionário que mapeia tipos de usuário para permissões. A função verificar_acesso recebe o tipo de usuário, consulta o dicionário e, dependendo do resultado, permite ou nega o acesso. Após essa verificação, o script registra o evento em um arquivo de log, independentemente de o acesso ter sido concedido ou negado.
A lógica central do script é a seguinte: primeiro, o usuário informa seu tipo; em seguida, a função verificar_acesso consulta o dicionário de permissões. Se o tipo de usuário existir no dicionário e tiver permissão, o acesso é permitido; caso contrário, é negado. Em ambos os casos, uma entrada é adicionada ao log, registrando o resultado da tentativa.
O arquivo de log é manipulado em modo de texto simples, utilizando funções como open() e write(). Não há qualquer operação de criptografia ou codificação especial aplicada ao conteúdo do log. O script simplesmente concatena informações sobre o usuário e o resultado da verificação em uma string e a escreve no arquivo.
É importante notar que o script não concede acesso a todos os usuários indiscriminadamente. A permissão é condicionada à presença e ao valor associado ao tipo de usuário no dicionário. Se o tipo de usuário não estiver no dicionário, a função verificar_acesso retorna um valor que indica negação de acesso, e o script registra essa negação no log, sem tentar registrar o acesso como permitido.
A função verificar_acesso também pode exibir mensagens ao usuário durante a verificação, dependendo da implementação. No entanto, a alternativa E afirma que ela não exibe nenhuma mensagem, o que pode ser verdadeiro ou falso dependendo do código exato. Como a alternativa B descreve com precisão o comportamento de registro no log, ela é a correta.
A pegadinha desta questão está em analisar o fluxo completo do script, não apenas a função de verificação. O candidato pode se concentrar na lógica de permissão e esquecer de considerar o registro no log, que é o ponto central da alternativa correta.
Alternativa A — ❌ Incorreta
Afirma que o script concede acesso a todos os usuários sem diferenciar tipos. Isso é falso, pois o script utiliza um dicionário para diferenciar os tipos de usuário e suas permissões. O acesso é condicionado à verificação no dicionário, não sendo concedido de forma indiscriminada.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve corretamente o comportamento do script: o log registra tanto acessos permitidos quanto negados, salvando-os em texto simples. Após a verificação de acesso, o script escreve no arquivo de log uma entrada contendo o resultado, independentemente de ser permitido ou negado. O arquivo é manipulado em modo texto, sem criptografia.
Alternativa C — ❌ Incorreta
Afirma que, caso o tipo de usuário não esteja no dicionário, o script tenta registrar o acesso mesmo assim. Isso é incorreto: quando o tipo não está no dicionário, a função verificar_acesso retorna um valor que indica negação, e o script registra a negação, não uma tentativa de acesso permitido.
Alternativa D — ❌ Incorreta
Afirma que o código utiliza criptografia para proteger o arquivo de log. Não há qualquer operação de criptografia no script. O arquivo é escrito em texto simples, sem codificação ou proteção especial.
Alternativa E — ❌ Incorreta
Afirma que a função verificar_acesso não exibe nenhuma mensagem ao usuário durante a verificação. Dependendo da implementação, a função pode exibir mensagens como "Acesso permitido" ou "Acesso negado". A alternativa não pode ser confirmada como verdadeira com base no código apresentado, e a alternativa B é a que descreve com precisão o comportamento do script.
Gabarito: letra B