btmp
who -a
파일과 명령의 출력을 비교하려고 합니다 .
이유는 모르겠지만 btmp file
현재 사용자 이름이 표시되지 않고 UNKNOWN
사용자 이름 필드에 표시됩니다. 나(사용자 이름: debian)가 세션에 로그인했습니다.
아래 출력을 관찰하십시오.
virt00# who -a
system boot 2016-03-06 19:36
run-level 5 2016-03-06 19:36
debian - tty1 2016-03-06 19:36 00:33 1006
debian + pts/0 2016-03-06 19:43 . 1037 (192.168.56.1)
virt00# last -f /var/log/btmp | grep still
UNKNOWN tty1 Sat Feb 20 16:24 still logged in
virt00#
둘 사이에 차이점이 있는 이유와 SSH를 통해 로그인하고 가상 머신에서 다른 세션이 실행되는 이유를 설명해 주시겠습니까?
감사해요.
답변1
현재 로그인한 사용자는 who -a
절대 읽 /var/log/btmp
거나 who
읽 거나 표시할 수 없기 때문입니다 ./var/run/utmp
반면, /var/log/btmp
실패한 로그인 시도는 저장됩니다.
나는 상황을 재현하고 다음과 같이 했습니다.
거기에 가봤어
tty5
(무엇이든 될 수 있어tty
)시스템에 존재하지 않는 사용자가 입력되었습니다.
무작위 비밀번호가 주어졌을 때
로그인 프롬프트에 잘못된 비밀번호가 다시 표시됩니다.
/var/log/btmp
하지만 다음과 같은 항목이 있습니다.UNKNOWN tty5 Mon Mar 21 16:16 still logged in
잠시 후 다음과 같이 됩니다.
UNKNOWN tty5 Mon Mar 21 16:16 gone - no logout
답변2
이 파일은 /var/log/btmp
추적합니다실패로그인 시도. 모두가 문제 없이 로그인하면 아무 것도 표시되지 않습니다.
기능을 테스트할 때 telnet(ssh 아님)을 사용하면 "알 수 없는" 레코드(Debian 7에서)만 볼 수 있는데, 프롬프트에서 알 수 없는 사용자 이름을 제공하면 오류가 발생합니다. 이는 Ubuntu 스레드에 표시된 시나리오와 유사합니다.sshd가 /var/log/btmp에 추가되지 않습니다.. 이 시스템에서는 SSH를 사용한 연결이 절대 실패하지 않습니다.
속독소스 코드last
직접 제공할 수 있는 곳은 표시되어 있지 않습니다 . UNKNOWN
이는 레코드가 생성된 응용 프로그램에서 발생할 수 있습니다 /var/log/btmp
.
귀하의 구성에서 로그인 프로세스가 실제 사용자 이름을 가져와 기록할 수 없는 것 같습니다.저것의 질문으로 /var/log/btmp
. 처럼 utmp
, 있을 수 있습니다쓸모없는삭제되지 않는 항목 btmp
(항목을 생성한 프로그램이 해당 항목을 삭제해야 함 - 이는아니요자동완성). 귀하의 예는 한 달 전(2월 20일)의 항목을 보여 주며 (동일한 tty에 알려진 사용자로 로그인했기 때문에) 현재 로그인과 아무 관련이 없습니다.앞으로기계가 마지막으로 시작된 시간(3월 3일)입니다.
추가 자료: