Ngày tạo tài khoản cục bộ


9

Đối với mục đích tuân thủ, cần phải tìm nạp thông tin về ngày tạo tài khoản cục bộ (người dùng và không sử dụng) trên các máy UNIX.

Có cách nào (ngay cả khi đó không phải là phương pháp đáng tin cậy hoặc chính xác nhất) để thu thập loại thông tin đó?

Chẳng hạn, thay vào đó, tôi đã tìm kiếm homengày tạo thư mục (đối với tài khoản người dùng), nhưng tôi phát hiện ra rằng đối với dấu thời gian của hệ thống tuân thủ POSIX để tạo tệp không khả dụng.


Như một xấp xỉ thô, tôi nghĩ rằng đặt cược tốt nhất của bạn là để làm một số đào pháp y trong /var/log/auth.log(bạn có thể cần phải nhìn vào các bản ghi xoay cũng như: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Điều này sẽ cung cấp cho bạn một gợi ý về ngày đầu tiên tài khoản người dùng được xác thực. Tuy nhiên, điều này sẽ không hoạt động đối với người dùng hệ thống và cũng sẽ thất bại nếu các tài khoản được tạo cách đây lâu hơn thời gian syslogluân chuyển nhật ký của bạn .
Joseph R.

thông tin cụ thể này không được lưu trữ ở bất cứ đâu theo mặc định. nhưng bạn có thể thử kiểm tra ngày sửa đổi của/home/user
Nidal

Câu trả lời:


3

Nếu được tạo và không được chạm kể từ khi người dùng tạo, bạn có thể sử dụng .bash_logouttệp để xác định ngày. Khi chạy root:

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

HOẶC, Nếu người dùng có thư mục chính, bạn có thể kiểm tra ngày sửa đổi cuối cùng của thư mục đó:

ls -ld /home/username/

để chỉ nhận ngày bạn có thể sử dụng awk:

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

nguồn


ls -ld /home/username/đưa ra thời gian sửa đổi của thư mục nhà, điều này dường như không hữu ích vì thời gian này được cập nhật bất cứ khi nào một tập tin được thêm hoặc xóa trong directoy nhà.
Gilles 'SO- ngừng trở nên xấu xa'

3

Tạo tài khoản có thể được ghi lại. Trong Linux (nếu sử dụng bộ tiện ích bóng chung), hãy useraddtạo một mục nhật ký trong cơ sở auth.info. Nhật ký này thường được đặt trong /var/log/securehoặc /var/log/auth.log(nó phụ thuộc vào phân phối).

Bạn có thể kiểm tra các bản sao lưu của mình /etc/passwdvà xem đâu là bản sao lưu trẻ nhất không có tài khoản này. Tôi sử dụng và khuyên etckeeper để theo dõi những thay đổi trong /etc, vì vậy git annotate /etc/passwdsẽ cho tôi câu trả lời. (Trên thực tế git annotatesẽ cho tôi biết lần cuối cùng một mục nhập của người dùng đã được thay đổi; việc đào thêm một chút mà tự động hóa nằm ngoài phạm vi của câu trả lời này sẽ cho tôi biết khi nào mục nhập được thêm vào.)

Nếu bạn thiếu nhật ký kiểm toán, sao lưu và lịch sử sửa đổi, bạn sẽ phải dùng đến phương pháp phỏng đoán. Một manh mối tốt là tệp có thời gian thay đổi inode (ctime) là cũ nhất. Heuristic này có thể nói dối cả hai cách: nếu một thư mục được chuyển vào nhà của người dùng, nó có thể chứa các tệp có thời gian cũ (nhưng đối với chúng cũ hơn người dùng, uid của họ sẽ không phải là của người dùng như một sự thay đổi của uid liên quan đến việc cập nhật ctime, vì vậy bạn có thể bỏ qua những tệp không thuộc quyền sở hữu của người dùng); ngược lại, một số sự kiện có thể thay đổi thời gian của tệp (ví dụ: nếu toàn bộ hệ thống được khôi phục từ bản sao lưu). Bạn có thể bắt đầu từ thư mục chính của người dùng ( ls -Alctr ~bob| sed -n 2p), có thể chứa các tệp /etc/skelmà người dùng chưa bao giờ sửa đổi ( .bash_logoutlà một tệp phổ biến) và xem có tệp cũ hơn không find ~bob ! -cnewer ~bob/.bash_logout -user bob. Với zsh, chạyls -ld ~bob/**/*(Doc[1]u:bob:).


1
$ chage -l fred

Kiểm tra ngày thay đổi mật khẩu.


+1: So với các câu trả lời khác, ngoại trừ nhật ký kiểm toán (không cần có) và LDAP (không đề cập đến tài khoản cục bộ), chúng tôi không có bất kỳ phương pháp đáng tin cậy nào để xác định việc tạo ngày, chỉ là một loạt các thuộc tính để xem xét để có được một số ý tưởng. Đây là một trong số đó và trên hệ thống của tôi, nó thực sự là chính xác nhất (mọi người chỉ đơn giản là không thay đổi mật khẩu), mặc dù chỉ với độ chính xác của ngày.
dùng1182474

1

Đối với người dùng cục bộ, bạn có thể xem thời gian sinh thư mục chính của họ cho các hệ thống và hệ thống tệp ghi lại nó (ít nhất là Linux, hầu hết các BSD, macOS). Làm thế nào để làm điều đó thay đổi với hệ thống .

Đối với người dùng trong các thư mục LDAP, bạn có thể xem các thuộc tính createTimestamp(hoặc có thể whenCreated) của mục nhập LDAP tương ứng của họ:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.