Isso é algo que eu não consegui encontrar muita informação, então qualquer ajuda seria apreciada.
Meu entendimento é assim. Pegue o seguinte arquivo:
-rw-r----- 1 root adm 69524 May 21 17:31 debug.1
O usuário phil
não pode acessar este arquivo:
phil@server:/var/log$ head -n 1 debug.1
cat: debug.1: Permission denied
Se phil
for adicionado ao adm
grupo, ele pode:
root@server:~# adduser phil adm
Adding user `phil' to group `adm' ...
Adding user phil to group adm
Done.
phil@server:/var/log$ head -n 1 debug.1
May 21 11:23:15 server kernel: [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
Se, no entanto, um processo é iniciado enquanto definindo explicitamente o user:group
que phil:phil
ele não pode ler o arquivo. Processo iniciado assim:
nice -n 19 chroot --userspec phil:phil / sh -c "process"
Se o processo for iniciado como phil:adm
, ele poderá ler o arquivo:
nice -n 19 chroot --userspec phil:adm / sh -c "process"
Então a questão é realmente:
O que há de especial na execução de um processo com uma combinação específica de usuário / grupo que impede o processo de acessar arquivos pertencentes a grupos suplementares desse usuário e existe alguma maneira de contornar isso?