システムは、「他のユーザーがログインしました」をどのように知ることができますか?情報が漏洩した場所はどこですか?

システムは、「他のユーザーがログインしました」をどのように知ることができますか?情報が漏洩した場所はどこですか?

ここに画像の説明を入力してください。

(次の例のスクリーンショット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

w私のユーザーがもう実行できないことを確認しましたwho。 utmp と wtmp で読み取り権限が拒否されたため、コマンド出力は空です。

それでは、システムはこれをどのように知ることができますか?情報が漏洩した場所はどこですか?

答え1

アクティブなセッションとログインしたユーザーに関する情報は、次のとおりです。システムログイン(またはエロキンドシステム化されていないシステムでは、すべてのユーザーは以下を介して情報を取得できます。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"

(2人のユーザーとアクティブセッションを持つシステムの例)

この情報はsystemdに保存されるため、w/の権限を変更してもwhoこの情報は「無効」になりません。 DBus APIの一部は次のとおりです。ポルケットで保護ただし、これは閉じるなどの「アクティブ」操作に過ぎず、アクティブセッションに関する情報はすべての人に公開されます。

関連情報