규정 준수를 위해 UNIX 컴퓨터에서 로컬(사용자 및 비사용자) 계정 생성 날짜에 대한 정보를 얻어야 합니다.
이러한 종류의 정보를 수집할 수 있는 방법(가장 신뢰할 수 있거나 정확한 방법은 아니더라도)이 있습니까?
예를 들어, 대안으로 home
(사용자 계정에 대해) 디렉터리 생성 날짜를 검색했지만 POSIX 호환 시스템의 경우 파일 생성 타임스탬프를 사용할 수 없다는 사실을 발견했습니다.
답변1
계정 생성이 기록될 수 있습니다. Linux에서는(Universal Shadow 유틸리티 제품군을 사용하는 경우) useradd
도구 아래에 로그 항목을 만듭니다 auth.info
. 이 로그는 일반적으로 /var/log/secure
또는 /var/log/auth.log
(배포판에 따라) 에 있습니다 .
이 계정 없이도 백업을 확인 /etc/passwd
하고 최신 백업이 무엇인지 확인할 수 있습니다. 사용하고 추천합니다관리자를 기다려주세요변경 사항을 추적 /etc
하면 git annotate /etc/passwd
답을 얻을 수 있습니다. (실제로 git annotate
사용자 항목이 마지막으로 변경된 시기를 알려줍니다. 이 답변의 범위를 넘어서 자동화를 더 자세히 살펴보면 해당 항목이 추가된 시기를 알 수 있습니다.)
감사 로그, 백업, 수정 기록이 부족한 경우 휴리스틱을 사용해야 합니다. 좋은 단서는 가장 오래된 파일의 inode 변경 시간(ctime)입니다. 이 경험적 방법은 두 가지 방식으로 모두 작동할 수 있습니다. 디렉터리가 사용자의 홈 디렉터리로 이동되면 이전 ctime이 포함된 파일이 포함될 수 있습니다(그러나 사용자의 것보다 오래된 파일의 경우 해당 uid는 변경될 때 사용자의 uid일 필요는 없습니다). ctime 업데이트가 포함되므로 사용자에게 속하지 않은 파일을 건너뛸 수 있습니다. 반대로 특정 이벤트는 파일의 ctime을 변경할 수 있습니다(예: 전체 시스템이 백업에서 복원되는 경우). 사용자가 한 번도 수정한 적이 없는 파일이 ls -Alctr ~bob
포함될 수 있는(일반적인 경우) 사용자의 홈 디렉터리(| sed -n 2p) 에서 시작하여 .sed 확장자를 가진 이전 파일이 있는지 확인할 수 있습니다 . zsh를 사용하여 ./etc/skel
.bash_logout
find ~bob ! -cnewer ~bob/.bash_logout -user bob
ls -ld ~bob/**/*(Doc[1]u:bob:)
답변2
만약에생성되었으며 손길이 닿지 않았습니다.이 파일을 사용하여 사용자가 생성된 이후의 .bash_logout
날짜를 확인할 수 있습니다. 루트로 실행:
ls -l /home/<username>/.bash_logout
또는 사용자에게 홈 디렉터리가 있는 경우 해당 디렉터리의 마지막 수정 날짜를 확인할 수 있습니다.
ls -ld /home/username/
사용할 수 있는 날짜만 가져옵니다 awk
.
ls -ld /home/username/ | awk '{ print $6,$7,$8 }'
답변3
로컬 사용자의 경우 홈 디렉터리를 볼 수 있습니다.태어나다시스템 및 파일 시스템(Linux, 대부분의 BSD, 최소한 macOS)의 시간을 기록합니다.구체적인 작동 방법은 시스템마다 다릅니다..
LDAP 디렉토리에 있는 사용자의 경우 createTimestamp
해당 LDAP 항목의 (또는 가능한) 속성을 볼 수 있습니다.whenCreated
ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
-b dc=example,dc=com 'uid=username' createTimestamp whenCreated
답변4
비밀번호 변경 날짜를 확인합니다.
chage -l fred