Questão de Sistemas Operacionais — Linux — VUNESP 2023
- Código
- vu197383
- Banca
- VUNESP
- Órgão
- Pref SP
- Ano
- 2023
- Cargo
- AFTM SP
- Achmod -R 077 *
- Bchmod -R 007 *
- Cchmod protect all
- Dchmod recursive protect *
- Echmod -R o-rwx *
GabaritoE — chmod -R o-rwx *
Gabarito: letra E. O comando chmod -R o-rwx * retira as permissões de leitura, escrita e execução da classe "outros" (o) de todos os arquivos do diretório corrente, recursivamente (-R), exatamente como pede o enunciado. A sintaxe do chmod combina a classe de usuário (u, g, o, a), a operação (+ para adicionar, - para remover, = para definir) e as permissões (r, w, x).
O chmod é o comando do Linux responsável por alterar as permissões de acesso a arquivos e diretórios. As permissões são organizadas em três classes de usuários: o dono (u, de user), o grupo (g, de group) e os outros (o, de others). Cada classe pode ter três permissões: leitura (r, de read), escrita (w, de write) e execução (x, de execute). A permissão de leitura permite visualizar o conteúdo do arquivo ou listar o diretório; a de escrita permite modificar o arquivo ou criar/remover arquivos no diretório; a de execução permite rodar o arquivo como programa ou acessar o diretório.
A sintaxe simbólica do chmod segue o padrão [classe][operador][permissões]. As classes são u (dono), g (grupo), o (outros) e a (todos). Os operadores são + (adiciona), - (remove) e = (define exatamente). As permissões são r, w e x. Assim, o-rwx significa "remover das permissões da classe outros as permissões de leitura, escrita e execução". A opção -R (ou --recursive) aplica a alteração recursivamente a todos os arquivos e subdiretórios a partir do diretório corrente. O * é um curinga que seleciona todos os arquivos e diretórios do diretório atual.
A alternativa E é a única que combina corretamente os três elementos: a classe o (outros), a operação de remoção - e as permissões rwx, além da recursividade -R. As demais alternativas ou usam a notação numérica incorreta, ou não existem como sintaxe válida do chmod. A pegadinha da banca está em confundir a notação simbólica com a numérica e em trocar a classe "outros" por outras classes ou por valores que não correspondem ao pedido.
Guarde a estrutura chmod [opções] [classe][operador][permissões] [arquivo] e a correspondência entre a notação simbólica e a numérica: é exatamente nessa fronteira que as alternativas se dividem.
chmod -R 077 * usa a notação numérica (octal). O valor 077 significa que o dono (primeiro dígito) fica com permissão 0 (nenhuma), o grupo (segundo dígito) fica com 7 (rwx) e outros (terceiro dígito) fica com 7 (rwx). Ou seja, em vez de remover as permissões de outros, este comando define as permissões do dono como nenhuma e mantém/define as do grupo e de outros como rwx. Além disso, o 0 à esquerda é apenas um indicador de modo octal, não uma permissão. O comando não atende ao pedido porque não remove as permissões de outros — na verdade, ele as define como rwx.
chmod -R 007 * também usa notação numérica. O valor 007 significa dono com 0 (nenhuma), grupo com 0 (nenhuma) e outros com 7 (rwx). Este comando define as permissões de outros como rwx, em vez de removê-las. Além disso, zera as permissões do dono e do grupo, o que não é o que o enunciado pede. A notação numérica não é adequada para "remover" permissões de uma classe específica sem afetar as demais — ela sempre define o valor completo das três classes.
chmod protect all não é uma sintaxe válida do comando chmod. O chmod não aceita palavras como "protect" ou "all" como argumentos. A sintaxe correta usa classes (u, g, o, a), operadores (+, -, =) e permissões (r, w, x), ou a notação numérica octal. Este comando simplesmente não existe e geraria um erro de sintaxe no shell.
chmod recursive protect * também não é uma sintaxe válida. O chmod não aceita a palavra "recursive" como argumento; a opção correta para recursividade é -R (ou --recursive). Além disso, "protect" não é um argumento válido. Este comando não existe e não produziria o efeito desejado.
chmod -R o-rwx * é a sintaxe correta. A opção -R aplica a alteração recursivamente. O argumento o-rwx significa: na classe o (outros), remover (-) as permissões rwx (leitura, escrita e execução). O * seleciona todos os arquivos e diretórios do diretório corrente. Assim, o comando remove as permissões de leitura, escrita e execução de todos os arquivos do diretório atual, recursivamente, para todos os usuários que não são donos e não pertencem ao grupo associado a cada arquivo — exatamente o que o enunciado pede.
A banca mistura a notação simbólica com a numérica. Na notação numérica, chmod 077 define as permissões (dono=0, grupo=7, outros=7), não "remove" permissões de uma classe específica. Para remover apenas de "outros", a notação simbólica o-rwx é a correta. Cuidado para não confundir o 0 à esquerda do octal com uma permissão — ele é apenas um marcador de modo.
Para resolver questões de chmod, identifique primeiro: (1) a classe afetada (u, g, o, a), (2) a operação (+ adiciona, - remove, = define), (3) as permissões (r, w, x) e (4) a recursividade (-R). Na notação simbólica, - remove apenas as permissões listadas; na numérica, o valor define o conjunto completo de cada classe. Memorize a tabela: r=4, w=2, x=1, e some para obter o valor octal de cada classe.
Gabarito: letra E
Link permanente: /questoes/vu197383