시스템은 "다른 사용자가 로그인했습니다"를 어떻게 알 수 있습니까? 정보가 유출된 곳은 어디인가요?

시스템은 "다른 사용자가 로그인했습니다"를 어떻게 알 수 있습니까? 정보가 유출된 곳은 어디인가요?

여기에 이미지 설명을 입력하세요.

(다음에서 가져온 예시 스크린샷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"

(두 명의 사용자와 활성 세션이 있는 시스템의 예)

이 정보는 systemd에 저장되므로 w/에 대한 권한을 변경해 who도 이 정보가 "비활성화"되지 않습니다. DBus API의 일부는 다음과 같습니다.폴킷으로 보호됨그러나 이는 닫기와 같은 "활성" 작업일 뿐이며 활성 세션에 대한 정보는 모든 사람에게 공개됩니다.

관련 정보