user2
precisa fazer logoff e logon novamente. As permissões de grupo funcionam da seguinte maneira:
- Quando você faz login, seus processos passam a ter participação no grupo principal mencionado
/etc/passwd
, além de todos os grupos nos quais o usuário é mencionado /etc/group
. (Mais precisamente, o pw_gid
campo getpw(your_uid)
, além de todos os grupos dos quais o usuário é um membro explícito . Beyond /etc/passwd
e /etc/group
, as informações podem vir de outros tipos de bancos de dados do usuário, como NIS ou LDAP). O grupo principal se torna o processo de ID de grupo efetiva e os outros grupos se tornam seus IDs de grupo suplementares .
- Quando um processo executa uma operação que requer associação a um determinado grupo, como acessar um arquivo , esse grupo deve ser o ID do grupo efetivo ou um dos IDs de grupo suplementares do processo.
Como você pode ver, sua alteração na associação ao grupo do usuário só entra em vigor quando o usuário efetua login. Para processos em execução, é tarde demais. Portanto, o usuário precisa fazer logoff e logon novamente. Se houver muitos problemas, o usuário poderá efetuar login em uma sessão separada (por exemplo, em um console diferente ou com ssh localhost
).
Sob o capô, um processo só pode perder privilégios (IDs de usuário, IDs de grupo, recursos). O kernel inicia o init
processo (o primeiro processo após a inicialização) sendo executado como root, e todo processo é descendente desse processo¹. O login
processo (ou sshd
parte do seu gerenciador de área de trabalho que você efetua login) ainda está sendo executado como root. Parte de seu trabalho é eliminar os privilégios de root e mudar para o usuário e grupos adequados.
Há uma única exceção: executar um programa setuid ou setgid . Esse programa recebe permissões adicionais: pode optar por atuar em vários subconjuntos de associações do processo pai, além da associação adicional no usuário ou grupo que possui o executável setxid. Em particular, um programa raiz setuid possui permissões de raiz, portanto, pode fazer tudo²; é assim que os programas gostam su
e sudo
podem fazer seu trabalho.
Occasionally
Ocasionalmente, existem processos que não são derivados do init (initrd, udev), mas o princípio é o mesmo: inicie como root e perca privilégios ao longo do tempo.
²
Excluindo estruturas de segurança multinível, como o SELinux.