Pular para o conteúdo principal

Questão de Sistemas Operacionais — Scripts em Unix e Linux — VUNESP 2023

Sistemas OperacionaisScripts em Unix e Linux
Código
vu197347
Banca
VUNESP
Órgão
TJ RS
Ano
2023
Cargo
ATI ( )
Foi digitado no terminal de um sistema operacional Linux o seguinte comando:   find –perm /a=x   É correto afirmar que esse comando irá retornar
  1. Aos arquivos que possuem a string “a=x” do diretório.
  2. Btodos os arquivos executáveis do diretório.
  3. Ctodos os arquivos que podem ser lidos do diretório.
  4. Dtodos os arquivos que podem ser escritos do diretório.
  5. Etodos os arquivos do diretório “a=x”.
Revelar gabarito e comentário

GabaritoB — todos os arquivos executáveis do diretório.

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 find e permissões no Linux

Gabarito: letra B. O comando find -perm /a=x retorna todos os arquivos executáveis do diretório, pois a opção -perm filtra por permissões e o argumento /a=x significa "qualquer classe (all) com permissão de execução (x)". A barra / indica que basta que qualquer um dos bits de execução (dono, grupo ou outros) esteja ativo, e o a refere-se a todas as classes de usuários.

O comando find é uma das ferramentas mais poderosas do Linux para localizar arquivos e diretórios. Sua sintaxe básica é find [caminho] [expressão], onde a expressão define critérios de busca. Quando não se especifica um caminho, o find assume o diretório atual (.). A opção -perm é usada para filtrar arquivos com base em suas permissões, e é aqui que mora a complexidade — e a pegadinha — desta questão.

As permissões no Linux são representadas por três grupos de três bits cada: dono (user), grupo (group) e outros (others). Cada grupo pode ter permissões de leitura (r), escrita (w) e execução (x). Na forma simbólica, essas permissões aparecem como rwxr-xr-x, por exemplo. O comando find -perm aceita três formatos principais:

  • -perm mode (sem símbolo): exige que as permissões do arquivo correspondam exatamente ao modo especificado.

  • -perm -mode (com hífen): exige que todos os bits especificados estejam presentes (os demais podem ser quaisquer).

  • -perm /mode (com barra): exige que qualquer um dos bits especificados esteja presente.

No comando da questão, find -perm /a=x, temos a barra / (qualquer bit) e o modo a=x. O a (all) significa "todas as classes" — dono, grupo e outros. O = indica que a permissão deve ser exatamente a especificada, e o x é a permissão de execução. Portanto, a=x significa "permissão de execução para todas as classes". Combinando com a barra, o comando procura arquivos que tenham pelo menos um bit de execução ativo em qualquer classe — ou seja, arquivos executáveis.

Vamos ver um exemplo prático. Suponha um diretório com os seguintes arquivos:

  • script.sh com permissão rwxr-xr-- (dono pode executar)

  • dados.txt com permissão rw-r--r-- (ninguém pode executar)

  • programa com permissão rwxrwxrwx (todos podem executar)

O comando find -perm /a=x retornaria script.sh e programa, pois ambos têm pelo menos um bit de execução ativo. O arquivo dados.txt seria ignorado, pois não possui nenhum bit de execução.

A distinção crucial aqui é entre -perm /a=x e -perm -a=x. Enquanto a barra exige qualquer bit, o hífen exigiria todos os bits de execução (dono, grupo e outros) ativos simultaneamente. Essa diferença sutil é exatamente o que a banca explora: o candidato que confunde os dois formatos pode marcar a alternativa errada.

Outra confusão comum é pensar que a=x se refere a uma string literal "a=x" no nome do arquivo, ou que o comando busca por conteúdo. Nada disso: -perm é exclusivamente sobre permissões, não sobre nomes ou conteúdo. A pegadinha está em interpretar o argumento como uma string de busca, quando na verdade é uma expressão de permissões.

Guarde a fronteira entre os três formatos de -perm — exato, todos os bits (-) e qualquer bit (/) — pois é exatamente nela que as alternativas desta questão se dividem.

Formato -perm

Operador

Exigência

Exemplo

-perm mode

(nenhum)

Permissões exatamente iguais ao modo

-perm 755

-perm -mode

Hífen (-)

Todos os bits especificados presentes

-perm -a=x

-perm /mode

Barra (/)

Qualquer um dos bits especificados presente

-perm /a=x

1Sem símbolo
permissão exata
2-mode (hífen)
todos os bits presentes
3/mode (barra)
qualquer bit presente
find -perm
LEVELsoulevel.com.br
find -perm: Sem símbolo (permissão exata); -mode (hífen) (todos os bits presentes); /mode (barra) (qualquer bit presente)

Alternativa A — ❌ Incorreta

Afirma que o comando retorna arquivos que possuem a string "a=x" no nome. Isso é um erro de interpretação: a=x não é uma string de busca, mas uma expressão de permissões. O find com -perm não procura por nomes de arquivo, e sim por permissões. Para buscar por nome, usaríamos -name "*a=x*".

Alternativa B — ✅ Correta ⟵ GABARITO

O comando find -perm /a=x retorna todos os arquivos executáveis do diretório. A barra / indica que basta qualquer bit de execução estar ativo, e a=x especifica que a permissão de execução deve estar presente para todas as classes (dono, grupo e outros). Como a barra exige apenas um dos bits, qualquer arquivo com permissão de execução em pelo menos uma classe é retornado — exatamente o conceito de "arquivo executável".

Alternativa C — ❌ Incorreta

Afirma que o comando retorna arquivos que podem ser lidos. Isso confunde a permissão de leitura (r) com a de execução (x). O comando -perm /a=x filtra por execução, não por leitura. Para buscar arquivos legíveis, usaríamos -perm /a=r.

Alternativa D — ❌ Incorreta

Afirma que o comando retorna arquivos que podem ser escritos. Novamente, há confusão entre permissões: o comando busca por execução (x), não por escrita (w). Para buscar arquivos graváveis, usaríamos -perm /a=w.

Alternativa E — ❌ Incorreta

Afirma que o comando retorna arquivos do diretório "a=x". Isso interpreta a=x como um nome de diretório, o que é incorreto. O find sem caminho explícito busca no diretório atual, e -perm /a=x é uma expressão de permissões, não um caminho. Para buscar em um diretório chamado "a=x", usaríamos find "a=x".

A regra de ouro para questões de find -perm é: decodifique o argumento em três partes — o operador (nada, - ou /), a classe (a, u, g, o) e a permissão (r, w, x). A barra significa "qualquer bit", o hífen significa "todos os bits", e a ausência de símbolo significa "exatamente". Com isso, você desarma qualquer pegadinha da banca.

Gabarito: letra B

Link permanente: /questoes/vu197347