Questão de Sistemas Operacionais — Linux — VUNESP 2023
- Código
- vu197276
- Banca
- VUNESP
- Órgão
- UNICAMP
- Ano
- 2023
- Cargo
- PTIC ( )
- Achmod u+s work
- Bchmod g+w work
- Cchmod u+w desenv
- Dchmod g+s work
- Echmod u+x desenv
GabaritoD — chmod g+s work
Gabarito: letra D — o comando chmod g+s work ativa o bit setgid no diretório, fazendo com que os arquivos criados dentro dele herdem o grupo do diretório (desenv) em vez do grupo primário do usuário criador. É exatamente o comportamento descrito no enunciado.
O sistema de permissões do Linux é baseado em três classes de usuários — dono (u), grupo (g) e outros (o) — e três permissões básicas: leitura (r), escrita (w) e execução (x). Para diretórios, a permissão de escrita permite criar e remover arquivos, e a de execução permite acessar (buscar) o conteúdo. Além dessas permissões básicas, existem os chamados bits especiais: setuid (u+s), setgid (g+s) e sticky bit (o+t). Cada um tem um efeito particular, e é o setgid que resolve o problema proposto.
Quando o bit setgid é aplicado a um diretório, ele altera a regra padrão de atribuição de grupo para os arquivos criados dentro dele. Normalmente, um arquivo novo pertence ao grupo primário do usuário que o criou. Com o setgid ativo no diretório, o arquivo passa a pertencer ao grupo do diretório — no caso, desenv. Isso é extremamente útil em ambientes colaborativos, como o descrito na questão, onde vários usuários compartilham um diretório de trabalho e precisam que todos os arquivos sejam acessíveis pelo mesmo grupo, independentemente de qual usuário os criou.
Vale destacar que o setgid também pode ser aplicado a arquivos executáveis, mas nesse caso o efeito é diferente: o processo executado assume o grupo do arquivo, e não o do usuário que o executou. Essa distinção é importante e frequentemente cobrada em provas.
A pegadinha da questão está em confundir o setgid (g+s) com o setuid (u+s) ou com a simples permissão de escrita do grupo (g+w). O enunciado já informa que o diretório possui permissão de leitura e escrita para o grupo — ou seja, g+w já está configurado. O que falta é justamente o bit especial que garante a herança do grupo. O setuid (u+s) em um diretório não tem efeito relevante para a herança de grupo; ele é usado em arquivos executáveis para que o processo rode com os privilégios do dono do arquivo. As alternativas que mencionam desenv como alvo do comando estão erradas porque o comando deve ser aplicado ao diretório work, não ao grupo.
Guarde a distinção central: para que arquivos criados em um diretório herdem o grupo do diretório, o comando é chmod g+s <diretório>. É esse critério que separa a alternativa correta das demais.
O comando chmod u+s work ativa o bit setuid no diretório. Esse bit, quando aplicado a um diretório, não tem efeito sobre a herança de grupo dos arquivos criados. O setuid é relevante para arquivos executáveis, fazendo o processo rodar com os privilégios do dono do arquivo. No contexto da questão, não atende ao objetivo.
O comando chmod g+w work adiciona a permissão de escrita para o grupo no diretório. Porém, o enunciado já afirma que o diretório possui essa permissão. Portanto, o comando é redundante e não resolve o problema da herança de grupo. A permissão de escrita permite criar arquivos, mas não altera o grupo ao qual eles pertencerão.
O comando chmod u+w desenv tenta adicionar permissão de escrita para o dono no grupo desenv. Isso é um erro conceitual: desenv é um grupo, não um diretório, e o comando chmod opera sobre arquivos e diretórios, não sobre grupos. Além disso, mesmo que fosse um diretório, a permissão de escrita para o dono não teria relação com a herança de grupo.
O comando chmod g+s work ativa o bit setgid no diretório work. Com isso, qualquer arquivo criado dentro dele pertencerá automaticamente ao grupo do diretório (desenv), independentemente do grupo primário do usuário que o criou. É exatamente o comportamento desejado no enunciado.
O comando chmod u+x desenv adiciona permissão de execução para o dono no grupo desenv. Assim como na alternativa C, há um erro conceitual: desenv é um grupo, não um diretório, e o chmod não opera sobre grupos. Além disso, a permissão de execução não tem relação com a herança de grupo dos arquivos criados.
Gabarito: letra D
Link permanente: /questoes/vu197276