在安装某些虚拟化包时作为非系统用户创建的“Libvirt qemu”用户的用途是什么?
哪个包具体做了这个?
答案1
它的创建者是libvirt-bin
:
$ grep libvirt-qemu /var/lib/dpkg/info/*.postinst
/var/lib/dpkg/info/libvirt-bin.postinst:# Allocated UID and GID for libvirt-qemu
/var/lib/dpkg/info/libvirt-bin.postinst: if ! getent passwd libvirt-qemu >/dev/null; then
/var/lib/dpkg/info/libvirt-bin.postinst: libvirt-qemu
/var/lib/dpkg/info/libvirt-bin.postinst: chown libvirt-qemu:kvm "${dir}"
/var/lib/dpkg/info/libvirt-bin.postinst: chown libvirt-qemu:kvm /var/lib/libvirt/qemu/channel/target
这是一项安全措施。对于 Web 服务器、邮件服务器、虚拟机管理程序等服务,服务应放弃特权并以非特权用户身份运行,而不是root
在完成任何必要的初始化后保持原样。这样,如果服务受到威胁,攻击者就不会获得不受限制的 root 访问权限。对于特别是 libvirt:
如果“系统”实例中的 QEMU 虚拟机以非 root 身份运行,则 QEMU 进程能够访问的主机资源将受到更大的限制。