Setgid
100%

Permissões · Lição 6

Setgid

Aprenda como o set-group-ID afeta as credenciais de executáveis e a herança de grupos em diretórios compartilhados.

O bit set-group-ID, normalmente chamado de setgid ou SGID, tem duas utilidades importantes. Em um arquivo comum executável, ele pode alterar o ID de grupo efetivo do novo processo. Em um diretório, ele faz com que as entradas recém-criadas herdem o grupo do diretório, algo especialmente útil em árvores colaborativas.

Setgid em Arquivos Executáveis

Uma listagem longa pode mostrar o setgid na posição de execução do grupo:

$ ls -l /path/to/program
-rwxr-sr-x 1 root operators 24576 Jan 10 09:30 /path/to/program

O s minúsculo significa que tanto o setgid quanto a execução do grupo estão definidos. O S maiúsculo significa que o setgid está definido, mas a execução do grupo está ausente.

Quando o kernel respeita esse bit durante a execução, o processo recebe um ID de grupo efetivo baseado no grupo proprietário do executável. O comportamento pode ser suprimido por controles como uma montagem nosuid e não deve ser tratado como uma garantia universal para todos os tipos de arquivo ou ambientes.

Quando o setgid de um executável é respeitado, qual credencial vem do grupo proprietário do executável?

Setgid em Diretórios

O setgid em um diretório tem uma finalidade diferente. Novos arquivos e subdiretórios normalmente herdam o grupo do diretório, em vez do grupo padrão de quem os criou. No Linux, novos subdiretórios também herdam o bit setgid, ajudando uma árvore de projeto compartilhada a manter um grupo consistente.

O setgid não concede por si só acesso de escrita ao grupo. O modo do diretório, o umask do processo, o modo de criação solicitado, as ACLs padrão e outros controles ainda determinam o acesso.

$ sudo chgrp developers /srv/project
$ sudo chmod g+s /srv/project
$ ls -ld /srv/project
drwxr-sr-x 2 root developers 4096 Jan 10 09:30 /srv/project

O que o setgid em /srv/project normalmente faz um arquivo recém-criado herdar?

Definição e Remoção do Setgid

Defina o bit simbolicamente com:

$ sudo chmod g+s myfile

Defina-o junto com os bits de modo comuns usando um 2 octal inicial:

$ sudo chmod 2755 myfile

Remova somente o bit especial com chmod g-s myfile.

Qual valor o setgid acrescenta ao dígito octal inicial de bits especiais?

Uso Seguro de Diretórios Compartilhados

Em um diretório colaborativo, combine o grupo proprietário pretendido, o setgid e bits de acesso escolhidos com cuidado. Teste a criação como usuários representativos e inspecione os resultados com ls -ld. Evite tornar uma árvore gravável por todos apenas para resolver problemas de compartilhamento por grupo; um grupo dedicado, um umask ou uma ACL padrão apropriados e um diretório setgid normalmente oferecem um controle mais claro.

Definir apenas o setgid concede aos membros do grupo permissão para criar arquivos em um diretório?

Lição concluída

Você concluiu Setgid

Agora você sabe diferenciar os significados do setgid em executáveis e diretórios.

  • Reconheça o setgid na posição de execução do grupo.

  • Relacione o setgid de executáveis ao ID de grupo efetivo.

  • Use o setgid de diretório para preservar a propriedade de grupo em árvores compartilhadas.

  • Defina ou remova o bit sem confundi-lo com o acesso comum de escrita.

Salve seu progresso

Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.

Criar uma conta gratuita
Próxima Lição
Voltar para Permissões