Cách tìm tất cả các cách mà tài khoản người dùng Unix bị khóa


12

Thỉnh thoảng tôi thấy mình trong một tình huống mà một hệ thống không xác định có một tài khoản đã bị khóa. Vấn đề là có nhiều cách để khóa tài khoản, mỗi cách có một phương thức mở khóa riêng.

Không phải là tài khoản bị khóa không đúng cách, chỉ là bất ngờ, nhưng việc tìm đúng khóa để thiết lập lại là khó khăn.

Cuộc tấn công gần đây nhất của tôi về vấn đề này là trên hệ thống SUSE và hóa ra mật khẩu đã hết hạn (ban đầu không biết vì các lần thử đăng nhập không thông qua hệ thống cung cấp loại phản hồi đó), và sau đó cũng bị khóa do những lần đăng nhập thất bại.

Có một danh sách ở đâu đó của tất cả các khóa tài khoản khác nhau có thể và làm thế nào để vô hiệu hóa chúng? Tôi đang có ý định phá vỡ thực tế, chẳng hạn như các vấn đề truy cập thư mục nhà, thư viện PAM bị hỏng, v.v., nằm ngoài phạm vi của câu hỏi này.

Câu trả lời:


13

Bạn có thể sử dụng passwdđể thu thập một số thông tin, ví dụ nếu tài khoản bị khóa

passwd -S user
user LK 2012-11-06 0 99999 7 -1 (Password locked.) (CentOS)
user L 01/22/2013 0 99999 7 -1 (Ubuntu)

Các chagetiện ích sẽ cung cấp thông tin về giờ khác nhau trên một ví dụ tài khoản cho một mật khẩu chưa hết hạn

chage -l user
Last password change                                    : Nov 12, 2012
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

cho một mật khẩu đã hết hạn

chage -l user
Last password change                                    : password must be changed
Password expires                                        : password must be changed
Password inactive                                       : password must be changed
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 22
Number of days of warning before password expires       : 33

Các tiện ích passwdchagecũng liệt kê nhiều khóa tài khoản.

Bạn có thể sử dụng getentđể lấy thông tin trực tiếp từ cơ sở dữ liệu liên quan để kiểm tra

getent passwd user
user:x:505:505::/home/passtest:/sbin/nologin  <-- denied login
getent shadow user
user:!!:0:0:22:33:44::   <-- this is locked

7

Nói chung: không.

Câu trả lời của Iain là một bản tóm tắt tốt về cách truy vấn các hệ thống lão hóa mật khẩu, nhưng đã bỏ lỡ tất cả mọi thứ. Ví dụ:

  • Ai đó cố gắng đăng nhập qua ssh có thể bị cấm bởi các chỉ thị trong sshdcấu hình.
  • Một hệ thống có thể được cấu hình để chỉ cho phép các thành viên của một nhóm mạng nhất định đăng nhập.
  • PAMCấu hình cục bộ có thể yêu cầu thành viên nhóm rõ ràng để đăng nhập hoặc chỉ có thể cho phép một danh sách người dùng cụ thể.
  • Những gì trông giống như một tài khoản bị khóa có thể là vấn đề truy cập thư mục nhà.
  • Ai đó có thể đã tạo /etc/nologin, đối với một số ứng dụng (ví dụ ssh:) sẽ khóa tất cả người dùng.

Nói cách khác, có nhiều cách để tài khoản bị khóa mà không liên quan gì đến passwdtệp. Đặt cược tốt nhất của bạn là kiểm tra /var/log/securehoặc tương tự địa phương phù hợp phân phối.


Tôi đã dự định câu hỏi của mình để cho rằng mọi thứ không bị "hỏng" và người dùng đã có thể đăng nhập trước đó. Đó là, một số hệ thống hoạt động đúng cách khóa tài khoản. Đây là những điểm tốt, nhưng tôi sẽ cập nhật câu hỏi để rõ ràng hơn một chút.
wfaulk

1

Ngoài những điều đã nói ở trên, passwd chagegetent, còn cópam_tally2

Nếu số lần đăng nhập thất bại vượt quá giới hạn cho phép (được đặt trong /etc/pam.d/password-auth), bạn sẽ phải làm pam_tally2 --user=foo --resettrước khi họ có thể đăng nhập lại.


0

Tập lệnh sau sẽ cung cấp cho bạn một mô tả ngắn về tất cả người dùng và trạng thái của họ (có bị khóa hay không)

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'

Điều đó chỉ kiểm tra một trong những cách mà tài khoản có thể bị khóa.
wfaulk
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.