(次の例のスクリーンショット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の一部は次のとおりです。ポルケットで保護ただし、これは閉じるなどの「アクティブ」操作に過ぎず、アクティブセッションに関する情報はすべての人に公開されます。