Vì vậy, câu hỏi của tôi là thẳng về phía trước cho một tên người dùng Linux và một mật khẩu làm thế nào tôi có thể kiểm tra nếu nó là một tài khoản hợp lệ?Với tên người dùng và mật khẩu Linux, tôi có thể kiểm tra xem nó có phải là tài khoản hợp lệ không?
Với tên người dùng và mật khẩu Linux, tôi có thể kiểm tra xem nó có phải là tài khoản hợp lệ không?
Trả lời
Bạn có thể xác thực rằng mật khẩu đã cho là đúng cho tên người dùng đã cho bằng cách sử dụng tệp bóng.
Trên hầu hết các bản phân phối hiện đại, mật khẩu được băm được lưu trữ trong tệp bóng/etc/shadow (chỉ có thể đọc được bằng gốc). Như gốc, kéo dòng từ tập tin shadow cho người sử dụng nhất định như vậy:
cat /etc/shadow | grep username
Bạn sẽ thấy một cái gì đó như thế này:
username:$1$TrOIigLp$PUHL00kS5UY3CMVaiC0/g0:15020:0:99999:7:::
Sau khi tên người dùng đó là $ 1. Điều này chỉ ra rằng nó là một băm MD5. Sau đó có $ khác, sau đó (trong trường hợp này) TrOIigLp theo sau bởi $ khác. TrOIigLp là muối. Sau đó là mật khẩu băm, được băm bằng muối - trong trường hợp này là PUHL00kS5UY3CMVaiC0/g0.
Bây giờ, bạn có thể sử dụng openssl để băm mật khẩu được sử dụng muối cùng, như vậy:
openssl passwd -1 -salt TrOIigLp
Nhập mật khẩu đưa ra khi được nhắc nhở, lệnh openssl cần tính toán băm MD5 sử dụng muối cung cấp, và nó phải chính xác giống như ở trên từ tệp bóng. -1 trong lệnh trên là cho băm MD5.
Cảm ơn thông tin. Tôi đã không biết về các phần của trường thứ hai của tệp bóng. Bây giờ tôi thậm chí có thể sử dụng hàm crypt() ... câu trả lời tuyệt vời. – smit
@ mti2935 bạn có nghĩa là 'cat/etc/shadow | grep username' hoặc thậm chí 'grep username/etc/shadow'? –
Russell, cảm ơn sự điều chỉnh. Phải, nó phải là 'mèo', không phải là 'tiếng vang'. Tôi đã chỉnh sửa câu trả lời. – mti2935
Bạn cố gắng đăng nhập với họ. Nếu bạn đang ở, thì combo hợp lệ. –