“其他用户已登录”系统怎么知道?信息泄露在哪里?

“其他用户已登录”系统怎么知道?信息泄露在哪里?

在此输入图像描述

(示例截图取自https://askubuntu.com/questions/1343872/ubuntu-shows-other-users-are-logged-in-whenever-i-shut-down-even-though-i-am-the

但我的问题是:系统如何知道这一点?我已经做好了

sudo chmod o-r /var/run/utmp
sudo chmod o-r /var/log/wtmp

我验证了我的用户无法运行wwho不再:命令输出为空,因为 utmp 和 wtmp 中的读取权限被拒绝。

那么系统是如何知道这一点的呢?信息泄露在哪里?

答案1

有关活动会话和登录用户的信息由系统登录(或者埃洛金德在非 systemd 系统上),任何用户都可以通过以下方式获取信息DBus接口:

$ busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ListUsers
a(uso) 2 1000 "jenkins" "/org/freedesktop/login1/user/_1000" 22437 "vtrefny" "/org/freedesktop/login1/user/_22437"

(来自具有两个用户且具有活动会话的系统的示例)。

该信息由 systemd 保存,因此更改w/的权限who不会“禁用”此信息。 DBus API 的某些部分是通过 polkit 保护但这些只是像关闭这样的“活动”操作,有关活动会话的信息对每个人都是公开的。

相关内容