如何从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中的条目和“用户切换器”菜单(登录时右上角)