![如何从 lightdm 欢迎列表中删除最后连接的用户](https://linux22.com/image/1096894/%E5%A6%82%E4%BD%95%E4%BB%8E%20lightdm%20%E6%AC%A2%E8%BF%8E%E5%88%97%E8%A1%A8%E4%B8%AD%E5%88%A0%E9%99%A4%E6%9C%80%E5%90%8E%E8%BF%9E%E6%8E%A5%E7%9A%84%E7%94%A8%E6%88%B7.png)
使用 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 的企业网络环境中。
编辑 2:好吧,看来 lightdm 使用 wtmp 显示最近的网络用户列表,但不会更新它。因此,lightdm 只会在以另一种方式(ssh、login)登录时显示网络用户,就像我之前在这台电脑上做的那样。cf:
- https://bugs.launchpad.net/lightdm/+bug/871070
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648604
编辑3:我刚刚在文件中添加了以下行,/etc/pam.d/lightdm
以强制 lightdm 将用户存储在 wtmp 中:
session optional pam_lastlog.so silent
答案1
因此,要从列表中删除最后连接的网络用户,只需清除文件/var/log/wtmp
:
# > /var/log/wtmp
此外,为了让 lightdm 记住最后连接的网络用户,可以向文件中添加以下行/etc/pam.d/lightdm
:
session optional pam_lastlog.so silent
答案2
我进行/etc/lightdm/lightdm.conf
如下设置,使欢迎界面不显示用户列表。需要手动输入您的用户名和密码。
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
allow-guest=false
greeter-show-remote-login=false
greeter-hide-users=true
hide-users=true
答案3
最后使用 lightdm 登录的用户存储在这里:
/var/lib/lightdm/.cache/lightdm-gtk-greeter/state
注意.cache
。
直接删除该文件是安全的。
答案4
我也在 16.04 上遇到了这个问题,但是是通过 SSSD 使用 AD 的网络帐户。
经过多次反复尝试后,我使用以下方法来删除该帐户:
列出所有帐户:
# 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:<ENTER UID HERE> boolean:false
这将从 passwd 中删除“deleteme”,并删除 lightdm 和“用户切换器”菜单(登录时位于右上角)中的条目