Se você der uma olhada na página man, credenciais , verá por que os processos filhos não podem ter alterações feita via adduser
imediatamente refletida em tempo real:
trecho
A child process created by fork(2) inherits copies of its parent's user and groups IDs. During an execve(2), a process's real user and group ID and supplementary group IDs are preserved; the effective and saved set IDs may be changed, as described in execve(2).
Então, o que isso significa?
Efetuar logout termina o processo pai do qual todos os processos subsequentes foram bifurcados. Tudo na sua área de trabalho, etc. Esse processo original continha informações sobre seus grupos, o que é preenchido com a leitura de /etc/passwd
& /etc/group
.
Outro arquivo que desempenha um papel em como seu ambiente obtém as informações de seus grupos é /etc/nsswitch.conf
. Este arquivo contém linhas como esta:
passwd: files
shadow: files
group: files
Isso instrui o seu sistema a ler apenas essas informações em relação a senhas, grupos, etc. dos arquivos que acabei de mencionar.
Essas linhas poderiam facilmente instruir o sistema a usar outras fontes, como NIS, LDAP, etc., para obter essas informações.
nsswitch.conf
Se você der uma olhada na página nsswitch.conf
man, você descobrirá como o sistema é capaz de obter o conteúdo dos vários "bancos de dados" de nomes de usuários, grupos e senhas.
trecho
FILES
A service named SERVICE is implemented by a shared object library named
libnss_SERVICE.so.X that resides in /lib.
/etc/nsswitch.conf configuration file
/lib/libnss_compat.so.X implements 'compat' source for glibc2
/lib/libnss_db.so.X implements 'db' source for glibc2
/lib/libnss_dns.so.X implements 'dns' source for glibc2
/lib/libnss_files.so.X implements 'files' source for glibc2
/lib/libnss_hesiod.so.X implements 'hesiod' source for glibc2
/lib/libnss_nis.so.X implements 'nis' source for glibc2
/lib/libnss_nisplus.so.2 implements 'nisplus' source for glibc 2.1
NOTES
Within each process that uses nsswitch.conf, the entire file is read only
once; if the file is later changed, the process will continue using the
old configuration.
Se você observar esta observação, ela refletirá uma situação semelhante com esse arquivo, em que as alterações feitas no nsswitch.conf
também não poderão ser feitas em tempo real.