Questão de Sistemas Operacionais — Scripts em Unix e Linux — VUNESP 2023
Sistemas Operacionais›Scripts 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
Aos arquivos que possuem a string “a=x” do diretório.
Btodos os arquivos executáveis do diretório.
Ctodos os arquivos que podem ser lidos do diretório.
Dtodos os arquivos que podem ser escritos do diretório.
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
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.