如何从lightdm greeter列表中删除最后连接的用户

使用gdm3,我可以删除文件’/ var / log / ConsoleKit / history’,从列表中删除最后连接的用户

使用lightdm,即使在以下情况下,最后用户也会出现:

  • 删除/ var / log / ConsoleKit / history
  • 删除/var/lib/lightdm/.cache/unity-greeter/state

lightdm在哪里存储此列表?

编辑:好像它正在使用last命令的内容。 然后清除文件/var/log/wtmp内容足以从列表中删除任何以前连接的用户:

 # > /var/log/wtmp 

但是,在执行此操作后,我发现用户通过lightdm登录的不必要的副作用在此列表中根本不显示。

我必须说我在使用NIS的企业网络环境中。

Edit2:嗯,似乎lightdm使用wtmp来显示最近的网络用户列表,但不会更新它。 因此,lightdm只有在以其他方式(ssh,login)登录时才会显示网络用户,就像之前在此计算机上所做的那样。 CF:

  • https://bugs.launchpad.net/lightdm/+bug/871070
  • http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648604

Edit3:我刚刚将以下行添加到文件/etc/pam.d/lightdm强制lightdm在wtmp中存储用户:

 session optional pam_lastlog.so silent 

因此,要从列表中删除最后连接的网络用户,只需清除/var/log/wtmp文件:

 # > /var/log/wtmp 

此外,要使lightdm记住最后连接的网络用户,可以将以下行添加到文件/etc/pam.d/lightdm

 session optional pam_lastlog.so silent 

我将/etc/lightdm/lightdm.conf设置如下,以使greeter屏幕不显示用户列表。 需要手动输入您的用户名和密码。

 [SeatDefaults] greeter-session=unity-greeter user-session=ubuntu allow-guest=false greeter-show-remote-login=false greeter-hide-users=true hide-users=true 

使用lightdm登录的最后一个用户存储在此处:

 /var/lib/lightdm/.cache/lightdm-gtk-greeter/state 

注意.cache的点。

简单地删除文件是安全的。

我也在寻找这个,最后在Ubuntu 16.04中找到了如何做到这一点。

似乎lightdm从/ var / cache / lightdm / dmrc /获取用户列表。 此文件夹包含一个文件,其中包含已登录计算机的每个用户的名称。 只需从该目录中删除不需要的用户的文件,并且greeter不再显示它们。

编辑:这当然是在已经建议的东西完成后(清除/ var / log / wtmp和/ var / log / btmp)。 如果用户仍然坚持使用,请在文件系统中找到包含用户名称的任何文件/文件夹并将其删除。

我也在16.04遇到了这个问题,但是从AD到SSSD的网络帐户。

经过大量的反复试验,我使用以下方法来摆脱帐户:

列出所有帐户:

 # qdbus --system org.freedesktop.Accounts .. /org/freedesktop/Accounts/User1000 /org/freedesktop/Accounts/User10000 

现在要删除UID 10000的用户:

(可选)(如果是AD用户):adduser deleteme并在/ etc / passwd中将UID设置为10000; 否则下一步将失败

通过dbus删除用户:

 dbus-send --system --print-reply --type=method_call --dest='org.freedesktop.Accounts' /org/freedesktop/Accounts org.freedesktop.Accounts.DeleteUser int64: boolean:false 

这将删除passwd中的“deleteme”作为摆脱lightdm中的条目和“用户切换器”菜单(登录时右上角)