Entre os metadados mantidos pelos sistemas unix tradicionais para um arquivo, há:
- um ID do usuário que identifica o proprietário do arquivo;
- um ID de grupo que identifica o grupo que possui o arquivo;
- bits de permissão para o usuário, para o grupo proprietário e para outros.
O único efeito do ID do grupo de um arquivo (exceto para diretórios conforme descrito abaixo) é determinar as permissões efetivas. Quando um processo tenta acessar um arquivo:
- se esse processo estiver sendo executado como o usuário que possui o arquivo, as permissões de usuário serão aplicadas;
- caso contrário, se o processo tiver o grupo que possui o arquivo como um de seus grupos efetivos ou complementares, as permissões do grupo serão aplicadas;
- caso contrário, aplicam-se as permissões "outros".
Muitos unices modernos suportam listas de controle de acesso que se estendem a essas regras.
Quando um arquivo é criado, seu proprietário é definido como o ID do usuário efetivo do processo que o criou. Uma das duas regras é aplicada para determinar o grupo que possui o arquivo:
- Semântica do BSD: o arquivo pertence ao grupo que possui o diretório;
- Semântica do System V: o arquivo pertence ao ID do grupo efetivo do processo que o criou.
O Linux e muitos outros unices modernos aplicam a semântica do System V, a menos que o grupo tenha o setgid conjunto de bits, no qual caso semânticas BSD são aplicadas. O proprietário e o grupo podem, é claro, ser alterados posteriormente com chown
ou chgrp
.
Normalmente, o ID do grupo efetivo de um processo é o grupo principal do usuário que iniciou o processo. Este é o grupo listado em /etc/passwd
, se estiver usando um banco de dados do usuário local. No Linux, você pode ver com getenv passwd $USER
onde $USER
é seu nome de usuário (ou qualquer outro nome de usuário). O ID do grupo principal é o quarto campo delimitado por dois pontos.
Dependendo da sua distribuição, por padrão, todos os usuários estão no mesmo grupo (comumente chamado de users
) ou cada usuário recebe seu próprio grupo com o mesmo nome do usuário. Geralmente, as redes corporativas classificam os usuários em grupos de acordo com o departamento para o qual trabalham ou com qual função eles têm, por exemplo, accounting
, it
, students
, etc.