"who"
이 명령이 어떻게 기록 정보를 ssh
Linux 시스템으로 추출하는지 알고 싶습니다 . 예를 들어, 내 공유 네트워크 워크스테이션에서는 모든 사람이 다음 ssh
에 액세스할 수 있습니다.
[johny@gandor ~]$ who
johny :0 2018-08-30 06:44 (:0)
johny pts/0 2018-08-30 06:45 (:0.0)
johny pts/1 2018-08-30 06:45 (:0.0)
Keiven pts/2 2018-08-30 19:46 (:50.0)
seman pts/6 2018-08-31 15:15 (:50.0)
johny pts/7 2018-08-31 15:51 (:50.0)
casper pts/8 2018-08-31 16:53 (:50.0)
johny pts/10 2018-09-01 06:25 (:50.0)
이 정보는 처음에 Linux 시스템 파일 어딘가에 저장되어 있고 이 명령이 "who"
해당 파일에서 해당 정보를 읽는다고 가정합니다. 그렇다면 이 파일은 어디에 있습니까?
답변1
실행하면 열려 있는 strace -e open who
모든 파일이 표시됩니다 who
. Linux에서는 예가 포함 됩니다 /var/run/utmp
.utmp
아니요이는 사람이 읽을 수 있는 파일이 아니라 utmp
일련의 구조입니다(참고자료 참조 utmpx(5)
). who
FreeBSD 에서는 /var/run/utx.active
.
기본 파일이 언급된 곳에서도 이 정보를 찾을 who --help
수 있습니다 .man 1 who
info who
답변2
who 매뉴얼 페이지를 살펴보십시오. 예를 들어 "FILE을 지정하지 않으면 /var/run/utmp가 사용됩니다."
이 파일은 텍스트 파일이 아니므로 vi
열 때 파일 내용이 표시되지 않습니다. od -c /var/run/utmp | more
더 나은 서비스를 제공할 것입니다.