![Chromium浏览器的超级用户权限](https://linux22.com/image/228442/Chromium%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90.png)
apt-get install chromium
在 Debian 12 上运行后,
ps alx | grep -e ^F -e ^5.*chromium
返回:
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
此命令在 LUbuntu 18 之后执行(在其 中apt-get install chromium-browser
执行):
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
值的5
含义是使用超级用户权限根据man ps
。
为什么 Chromium 浏览器在通过常规包管理安装并由非特权用户运行时需要并获得超级用户权限?
ChatGPT 说这将用于安装或更新,但我不相信,因为我使用常规安装,更新将在 Debian 或Ubuntu 上apt-get
完成。unattended-upgrades
snapd
答案1
顺便提一句 :
其中标志 F 值 5 表示根据 man ps 使用的超级用户权限。
确实但不仅如此:5 = 1 + 4
PROCESS FLAGS 这些值的总和显示在“F”列中,该列由 flags 输出说明符提供:
1 forked but didn't exec 4 used super-user privileges
这分叉但没有执行确认--type=zygote
您列出的 chrome 进程中设置的参数实际上已被考虑在内,成功使其成为受精卵过程。
另外,请注意过去时态的使用“用过的“这意味着该报告不反映有关进程初始化后很可能立即删除的功能的当前状态。(进程在不再需要特权时立即删除特权被认为是最佳实践)
出于明显的安全原因,Chromium 将诉诸沙箱。
除了现在非常旧的内核的情况外,它将使用用户命名空间沙箱技术。受精卵进程负责设置它。
在安全方面,Zygote 负责设置和记录命名空间沙箱。
尽管该技术基于非特权命名空间,但负责设置它的进程实际上需要特权命名空间CAP_SYS_CHROOT
能力但只有直到沙箱完全投入使用。
所以,简而言之:该进程实际上需要超级用户功能,以便...启用所有以非特权方式运行的内容...;-),并且一旦设置了适当的环境,就会删除它们。