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

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

使用 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:

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

相关内容