마지막 명령을 사용하지 않고 사용자가 마지막으로 로그인한 시간을 어떻게 알 수 있나요?

마지막 명령을 사용하지 않고 사용자가 마지막으로 로그인한 시간을 어떻게 알 수 있나요?

"마지막"을 사용하지 않고 사용자가 마지막으로 로그인한 시간을 찾으려고 합니다. 마지막으로 재활용된 로그 파일을 사용하면 몇 주 후에 사용자의 이전 항목이 삭제됩니다.

나는 여전히 정보를 보유하고 있는 어딘가에 각 사용자에 대한 항목이 있을 것이라고 확신합니다. 유지 관리를 위해 일부 컴퓨터에 로그인하면 1년이 넘은 경우에도 항상 마지막으로 로그인한 시간이 표시됩니다.

로그인 루틴은 이 정보를 어디서 찾나요?

그건 그렇고, 내 기본 Linux 운영 체제는 Ubuntu 16.04 LTS입니다. 내가 아는 바로는 우분투는 18.04부터 큰 변화를 겪게 될 것입니다.

내가 물어봤어https://unix.stackexchange.com바꾸다http://askubuntu.com왜냐하면 다음 버전에서 이 기능이 변경되더라도 작동하는 솔루션이 있는지 확인하고 싶기 때문입니다. 그리고 최근에는 라즈베리파이에 대해 공부하고 있습니다.

문제는 Linux 기반 시스템에 관한 것입니다.

예:

오늘(2018년 3월 8일) 내 서버 중 하나에 방금 로그인했습니다. 로그인 루틴이 표시하는 내용은 다음과 같습니다.

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-1037-aws x86_64)

78 packages can be updated.
0 updates are security updates.


*** System restart required ***
Last login: Fri Nov  3 02:46:58 2017 from 72.43.238.238

로그 last파일은 2월에만 기록됩니다.

$ ls -l /var/log/wtmp*
-rw-rw-r-- 1 root utmp 384 Mar  8 04:36 /var/log/wtmp
-rw-rw-r-- 1 root utmp   0 Feb  1 06:25 /var/log/wtmp.1

일부 예상 작업에는 일부 서버에서 비활성 활성 사용자를 제거하는 작업이 포함됩니다.

답변1

이 정보에 액세스하는 명령은 다음과 같습니다.lastlog

lastlog - reports the most recent login of all users or of a given user

이는 이전 사용자 로그인 시간의 데이터베이스를 사용합니다. 데이터베이스는 에 저장됩니다 /var/log/lastlog.

예:

$ lastlog -u apollo
Username         Port     From             Latest
apollo           pts/43   127.0.0.1        Sun Feb 25 04:00:47 -0500 2018

노트:

명령 출력 listlog과 매뉴얼 페이지를 테스트한 결과 /var/log/laslog database영구적인 것으로 보입니다(항상 항목이 있음). 파일에 있는 누구나 항목 lastlog에 액세스 할 수 있습니다 . /etc/passwd애플리케이션은 lastlog계정이 마지막으로 로그인한 시간을 보고 **Never logged in**하거나 계정이 한 번도 로그인한 적이 없는지 보고합니다.

이 예시 항목은 6년 전으로 거슬러 올라갑니다.

lorenzo          pts/6    ubunzeus         Fri Apr 20 21:23:18 -0400 2012

관련 정보