但我的问题是:系统如何知道这一点?我已经做好了
sudo chmod o-r /var/run/utmp
sudo chmod o-r /var/log/wtmp
我验证了我的用户无法运行w
或who
不再运行:命令输出为空,因为 utmp 和 wtmp 中的读取权限被拒绝。
那么系统如何知道这一点呢?信息泄露在哪里?
但我的问题是:系统如何知道这一点?我已经做好了
sudo chmod o-r /var/run/utmp
sudo chmod o-r /var/log/wtmp
我验证了我的用户无法运行w
或who
不再运行:命令输出为空,因为 utmp 和 wtmp 中的读取权限被拒绝。
那么系统如何知道这一点呢?信息泄露在哪里?
有关活动会话和登录用户的信息由systemd-logind(或非systemd 系统上的elogind )提供,任何用户都可以通过DBus 接口获取信息:
(示例来自具有两个活动会话的用户的系统)。
该信息由 systemd 持有,因此更改
w
/的权限who
不会“禁用”它。DBus API 的某些部分通过 polkit 进行保护,但这些只是像关闭这样的“活动”操作,有关活动会话的信息对所有人都是公开的。