로컬 계정 생성 날짜


9

규정 준수를 위해 UNIX 시스템에서 로컬 (사용자 및 비 사용자) 계정 작성 날짜와 관련된 정보를 가져와야합니다.

그런 종류의 정보를 수집 할 수있는 방법이 있습니까 (가장 신뢰할 수 있거나 정확한 방법이 아니더라도)?

예를 들어, 대안으로 home디렉토리 작성 날짜 (사용자 계정의 경우)를 검색했지만 POSIX 호환 시스템의 경우 파일 작성을위한 타임 스탬프를 사용할 수 없음을 발견했습니다.


원유 근사치로서, 당신의 가장 좋은 건 일부 법정 파고를 할 생각 /var/log/auth.log(당신은뿐만 아니라 회전 로그에보고해야합니다 : /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). 이렇게하면 사용자 계정이 처음 인증 된 날짜를 알 수 있습니다. 그러나 시스템 사용자에게는 작동하지 않으며 계정이 syslog로그 교체 기간 보다 오래 전에 계정을 만든 경우에도 실패합니다 .
Joseph R.

이 특정 정보는 기본적으로 어디에도 저장되지 않습니다. 하지만 수정 날짜를 확인할 수 있습니다/home/user
Nidal

답변:


3

사용자 작성 이후에 작성 및 조작하지 않은 경우 .bash_logout파일을 사용하여 날짜를 결정할 수 있습니다. 루트 실행으로 :

ls -l /home/<username>/.bash_logout

또는 사용자에게 홈 디렉토리가있는 경우 해당 디렉토리의 마지막 수정 날짜를 확인할 수 있습니다.

ls -ld /home/username/

사용할 수있는 날짜 만 얻으려면 awk:

ls -ld /home/username/ | awk '{ print $6,$7,$8 }'

출처


ls -ld /home/username/홈 디렉토리의 수정 시간을 제공하며, 파일이 홈 디렉토리에서 추가되거나 제거 될 때마다이 시간이 업데이트되는 경우 유용하지 않습니다.
Gilles 'SO- 악마 그만해'

3

계정 생성이 기록 될 수 있습니다. Linux (공통 섀도 유틸리티 제품군을 사용하는 경우) useradd에서 시설 아래에 로그 항목을 작성합니다 auth.info. 이 로그는 일반적으로 /var/log/secure또는 /var/log/auth.log(배포에 따라 다름)에 있습니다.

백업을 확인 /etc/passwd하고이 계정이없는 가장 어린 백업을 확인할 수 있습니다 . 에서의 변경 사항을 추적하기 위해 etckeeper 를 사용하고 추천 /etc하므로 git annotate /etc/passwd답변을 드리겠습니다. (실제로 git annotate사용자의 항목이 마지막으로 변경된 시간을 알려줍니다.이 답변 범위를 벗어난 자동화를 조금 더 파면 항목이 추가 된 시점을 알려줍니다.)

감사 로그, 백업 및 개정 내역이없는 경우 휴리스틱에 의존해야합니다. 좋은 힌트는 inode 변경 시간 (ctime)이 가장 오래된 파일입니다. 이 휴리스틱은 두 가지 방법으로 둘 수 있습니다. 디렉토리가 사용자의 집으로 이동 된 경우 디렉토리에 오래된 ctime이있는 파일이 포함될 수 있습니다 (그러나 사용자보다 더 오래된 파일 인 경우 uid는 사용자의 변경 사항이 아니어야합니다) uid는 ctime을 업데이트하므로 사용자가 소유하지 않은 파일은 건너 뛸 수 있습니다). 반대로 일부 이벤트는 파일의 ctime을 변경할 수 있습니다 (예 : 전체 시스템이 백업에서 복원 된 경우). 사용자의 홈 디렉토리 ( ls -Alctr ~bob| sed -n 2p) 에서 시작할 수 있습니다 . 여기에는 /etc/skel사용자가 수정하지 않은 파일 ( .bash_logout일반적인 파일)이 포함될 수 있으며 이전 파일이있는 파일이 있는지 확인하십시오 find ~bob ! -cnewer ~bob/.bash_logout -user bob. zsh를 사용하여 실행ls -ld ~bob/**/*(Doc[1]u:bob:).


1
$ chage -l fred

비밀번호 변경 날짜를 확인합니다.


+1 : 감사 로그 (사용할 필요가 없음) 및 LDAP (로컬 계정을 참조하지 않음)를 제외하고 다른 답변과 비교할 때 생성을 결정하는 신뢰할 수있는 방법이 없습니다. 날짜, 아이디어를 얻기 위해 살펴볼 속성들. 이것은 그중 하나이며 내 시스템에서는 실제로 정확한 날이지만 사람들이 실제로 가장 정확한 것으로 나타났습니다 (사람들은 단순히 암호를 변경하지 않았습니다).
user1182474

1

로컬 사용자의 경우, 자신의 홈 디렉토리에서 볼 수 있었다 출생 이러한 시스템과 파일 시스템 그 기록이 (리눅스, 대부분의 BSD, 맥 OS 이상) 시간. 이를 수행하는 방법은 시스템에 따라 다릅니다 .

LDAP 디렉토리에있는 사용자 의 경우 해당 LDAP 항목 의 createTimestamp(또는 가능하면 whenCreated) 속성을 볼 수 있습니다 .

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.