Depois apt-get install chromium
de executá-lo no Debian 12,
ps alx | grep -e ^F -e ^5.*chromium
retorna:
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
5 1000 3452315 3452313 20 0 33884428 16712 do_sys S ? 0:00 /usr/lib/chromium/chromium --type=zygote --crashpad-handler-pid=3452306 --enable-crash-reporter=,built on Debian 12.4, running on Debian 12.4 --change-stack-guard-on-fork=enable
Isso foi executado no LUbuntu 18 depois apt-get install chromium-browser
(o que acontece
snap install chromium
) /var/lib/dpkg/info/chromium-browser.preinst
:
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
5 1000 197953 197951 20 0 33909972 1228 do_sys S ? 0:00 /snap/chromium/2729/usr/lib/chromium-browser/chrome --type=zygote --crashpad-handler-pid=197944 --enable-crash-reporter=,snap --change-stack-guard-on-fork=enable
F
onde o valor do sinalizador 5
significa privilégios de superusuário usados de acordo com man ps
.
Por que o navegador Chromium precisa e obtém privilégios de superusuário quando instalado pelo gerenciamento regular de pacotes e executado por um usuário não privilegiado?
ChatGPT diz que isso seria para instalação ou atualização, mas não acredito nisso porque fiz a instalação regularmente apt-get
e as atualizações seriam feitas unattended-upgrades
no Debian ou snapd
no Ubuntu.
POR FALAR NISSO :
Na verdade, mas não só: 5 = 1 + 4
O sinalizador bifurcado, mas não executado, confirma que o
--type=zygote
parâmetro definido no processo chrome listado foi realmente levado em consideração, tornando-o um processo zigoto com sucesso .Além disso, observe o uso do pretérito " usado ", o que significa que o relatório não reflete o status atual em relação aos recursos que podem ter sido descartados logo após a inicialização do processo. (É considerada prática recomendada um processo eliminar privilégios assim que eles não forem mais necessários)
Por razões óbvias de segurança, o Chromium recorrerá ao sandbox .
Exceto no caso de kernels agora muito antigos, ele usará a técnica de sandbox de namespaces de usuário . Um processo zigoto é responsável por configurá-lo.
Embora essa técnica seja baseada em namespaces sem privilégios, o processo responsável por configurá-la realmente precisa do
CAP_SYS_CHROOT
recurso privilegiado , mas somente até que o sandbox esteja totalmente ativado.Então, resumindo: esse processo realmente precisa de recursos de superusuário para… permitir que tudo seja executado sem privilégios… ;-) e irá simplesmente descartá-los assim que o ambiente apropriado for definido.