为什么在Ubuntu 16.04中的“锁定/切换”帐户选项中有一个“ libvirt qemu”帐户?


32

是Ubuntu 16.04正式提供的“ libvirt qemu”,还是我做错了什么?

$ grep -E 'libvirt|qemu' /etc/passwd"
libvirt-qemu:x:64055:134:Libvirt Qemu,,,:/var/lib/libvirt:/bin/false
libvirt-dnsmasq:x:124:137:Libvirt Dnsmasq,,,:/var/lib/libvirt/dnsmasq:/bin/false

1
您能编辑您的问题并显示输出grep -E 'libvirt|qemu' /etc/passwd吗?
Byte Commander

1
您正在使用什么显示管理器(GDM,SDDM等)?这可能是轻微的错误配置。如果libvirt-qemu显示但未libvirt-dnsmasq显示,则显示管理器不会过滤掉/bin/false外壳,而是在过滤系统帐户。 libvirt-qemu具有较高的但普通用户UID。
quixotic

要回答@quixotic问题,请编辑/etc/X11/default-display-manager帖子的内容。感谢您对我们的帮助!
年长者怪胎

即使回答“正确”,我也无法测试和诚实接受答案,因为我重新安装了Ubuntu。@ElderGeek
naughtyPenguin

Ubuntu的错误跟踪器中的相应报告:bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1674765
sampablokuper

Answers:


4

您可能在文件中遇到配置问题,/etc/lightdm/users.conf因为使用shell的用户(/bin/false例如libvirt-qemu的情况)永远不会出现在帐户列表中以进行登录或切换。这由hidden-shells=/bin/false /usr/sbin/nologin上述/etc/lightdm/users.conf文件中的行控制。

但是,如果您安装了该软件包accountsservice,那么它将覆盖中的任何设置/etc/lightdm/users.conf。如果accountsservice没有使用nologin / false shell隐藏帐户,则可能是此答案中提到的错误。

资料来源:

如何在登录屏幕上隐藏特定用户?

/etc/lightdm/users.conf 在Ubuntu 14.04.5 LTS和16.04.2 LTS上


29

accountsservice软件包似乎有一个错误,因为它显示了nologin-shell帐户。

解决方法是,只需使用以下两个命令:

printf "[User]\nSystemAccount=true\n" | sudo tee /var/lib/AccountsService/users/libvirt-qemu
sudo systemctl restart accounts-daemon.service 

3
对于Ubuntu 17.04,此方法有效且简单得多。Elder Geek所描述的设置已经存在,但是仍然存在问题。
扎卡里·斯科特

对于Debian 9(Stretch),这对我不起作用。该目录和守护程序存在,但是在按照说明创建文件并重新引导后,libvirt-qemu条目仍然存在。
DanielBöhmer18年

这给了我bash:/ var / lib / AccountsService / users / libvirt-qemu:权限被拒绝,即使在sudo上也是如此。
darksoulsong

@darksoulsong:您似乎试图执行不允许的文件。仔细检查您是否正确复制了命令行,或使用诸如的交互式编辑器来编辑文件nano /var/lib/AccountsService/users/libvirt-qemu
DanielBöhmer

8

我不小心按下了CtrlAltF10尝试在网站上看到的一些快捷方式,这使我进入了黑色全屏tty会话,在那里我输入 chvt Nstartx退出了Ubuntu的GUI,但这失败了,并导致了上面的另一个名为“ Libvirt qemu ”的帐户重新引导期间,我在登录页面上的当前用户名。

任何试图弄清楚如何删除Libvirt qemu用户的人,这就是我删除它的方法:

  1. 转到系统设置->用户帐户
  2. 解锁UA控件
  3. 点击Libvirt qemu帐户
  4. 通过单击左下角的小“ - ”符号删除Libvirt qemu 。

谢谢,这是非常有用和简单的。当我尝试为Android模拟器的硬件加速安装KVM时,我获得了qemu帐户。
Harsha

1
如果您使用libvirt,这当然不是很有帮助。这将从系统中完全删除该帐户,并使libvirt停止工作。
Sprinterfreak


3

无论出于何种原因,系统用户“ libvirt-gemu”都是使用uid 64055创建的(至少在Ubuntu 16.04.2中)。

这是16.04.2创建它的方式:

libvirt-qemu:x:64055:130:Libvirt Qemu,,,:/var/lib/libvirt:/bin/false
libvirt-dnsmasq:x:121:129:Libvirt Dnsmasq,,,:/var/lib/libvirt/dnsmasq:/bin/false

这应该是这样的:

libvirt-qemu:x:125:130:Libvirt Qemu,,,:/var/lib/libvirt:/bin/false
libvirt-dnsmasq:x:121:129:Libvirt Dnsmasq,,,:/var/lib/libvirt/dnsmasq:/bin/false

要解决此问题,只需更改“ libvirt-qemu”的uid及其所属文件。然后,“ Libvirt Qemu”将从登录名中消失!

阅读例如nixCraft-如何在Linux上为所有拥有的文件更改USER和GROUP ID来了解如何执行此操作。


“无论出于何种原因,系统用户“ libvirt-gemu”都是使用uid 64055创建的。AFAICT libvirt-qemu是在libvirt-daemon-system2016年11月14日以Debian Bug Tracker的#844339的补丁程序中引入了Debian中UID和GID在64055中的采用(因此在其派生发行版中)。Debian错误报告#843881Ubuntu错误报告#1637601中存在进一步的解释。
sampablokuper

进一步挖掘有点到这些错误的报道,我看到相关的预先分配的Debian维护者UID / GID 64055至libvirt-qemu非常轻微的早期版本:2016年11月11日
sampablokuper

UID必须小于1000,才能不显示在用户管理器中。在我的情况下(Ubuntu)125仍被gdm占用,因此找到下一个空闲号码。
Sprinterfreak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.