Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Bạn có tự hỏi làm thế nào Linux quản lý hiệu quả một môi trường nhiều người dùng? Trong bài viết này, chúng tôi giải thích cách Linux lưu trữ và quản lý mật khẩu và thông tin đăng nhập của người dùng.

Tệp khám phá / etc / passwd

Khi người dùng nhập tên người dùng và mật khẩu, Linux sẽ kiểm tra mật khẩu đã nhập so với mục nhập trong một số tệp trong thư mục “/ etc”.

“/ Etc / passwd” là một trong những tệp quan trọng nhất lưu trữ thông tin chi tiết của người dùng.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Mục nhập cuối cùng trong tệp này tương ứng với người dùng "carbon". Có nhiều trường thông tin được phân tách bằng dấu hai chấm (:).

  • carbon :tên của người dùng mà mục nhập này tương ứng với.
  • x :cho biết rằng một mật khẩu tồn tại cho người dùng. Tuy nhiên, mật khẩu được lưu trong tệp “/ etc / shadow”. Nếu thay vì x nó hiển thị một ! , điều này cho biết mật khẩu không tồn tại.
  • 1000 :ID người dùng của người dùng này.
  • 1000 :ID nhóm của nhóm mà người dùng này thuộc về.
  • carbon, , , :cho biết nhiều trường thông tin bao gồm họ tên và số điện thoại. Ở đây, không có số điện thoại nào được cung cấp.
  • /home/carbon :vị trí của thư mục chính được chỉ định cho người dùng này.
  • /bin/bash :giao diện mặc định cho người dùng này.

Hãy để chúng tôi tạo một người dùng khác đã được lưu trữ một số số điện thoại. Người dùng “pluto” được thêm vào hệ thống bằng cách sử dụng adduser lệnh.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Xem lại tệp “etc / passwd”, chúng ta có thể xem thông tin đầy đủ cho người dùng “pluto.” Trường có danh sách tên đầy đủ và số được phân tách bằng dấu phẩy được gọi là “trường GECOS.”

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Bất cứ khi nào người dùng được tạo, các giá trị của thư mục chính và trình bao mặc định cần được chỉ định sẽ được chỉ định trong tệp “/etc/adduser.conf”.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

ID người dùng cho người dùng đã tạo bắt đầu từ 1000 và chạy đến 59999.

Người dùng “carbon” có thể xem các mục nhập của tệp “/ etc / passwd” chỉ bằng cách sử dụng cat yêu cầu. Hãy để chúng tôi xem xét các quyền của nó.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Chỉ người dùng "root" mới có thể ghi vào tệp. Những người dùng khác chỉ có thể đọc tệp. Vì mọi người đều có thể đọc được tệp này nên không lý tưởng để lưu trữ mật khẩu ở đây. Thay vào đó, nó được lưu trữ trong một tệp khác có tên là “/ etc / shadow”.

Khám phá tệp / etc / shadow

Bây giờ chúng ta hãy thử xem mật khẩu được lưu trữ cho người dùng “carbon” và “pluto” trong tệp “/ etc / shadow”.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Xem xét các quyền đối với tệp “/ etc / shadow”, chúng ta có thể thấy rằng chỉ người dùng “root” mới có thể đọc và ghi vào tệp. Ngoài ra, chỉ các thành viên của nhóm "bóng tối" mới có thể đọc tệp. Trên thực tế, nhóm "bóng" trống nhưng được yêu cầu về mặt cú pháp cho tệp này.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Đăng nhập bằng “root”, chúng ta có thể xem mười dòng cuối cùng của “/ etc / shadow”. Đối với mỗi mục nhập trong “/ etc / passwd”, có một mục nhập tương ứng trong tệp này. Định dạng sẽ như thế này:

pluto:$6$JvWfZ9u....:18283:0:99999:7:::
Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Trong tệp này, mọi mục nhập đều có nhiều trường được phân tách bằng dấu hai chấm (:). Hãy để chúng tôi giải mã mục nhập cho người dùng "pluto".

  • pluto :tên của người dùng mà mục nhập này tương ứng với.
  • $6$JvWfZ9u.$yGFIqOJ.... :Mật khẩu người dùng băm được lưu trữ cùng với thông tin về thuật toán băm được sử dụng. Ngoài ra, một giá trị muối được sử dụng cùng với mật khẩu văn bản rõ để tạo mã băm mật khẩu.
{ plaintext password, salt} -> hashed password

Hãy để chúng tôi xử lý nội dung trong lĩnh vực này. $ biểu tượng được sử dụng làm dấu phân cách để phân tách ba trường.

$6  $JvWfZ9u.  $yGFIqOJ....
  • $6 :thuật toán băm được sử dụng. Đây là danh sách các thuật toán băm tiềm năng.
    • $ 1:MD5
    • $ 2a:Blowfish
    • 2 năm đô la:Cá ngừ đại dương
    • 5 đô la:SHA-256
    • 6 đô la:SHA-512
  • $JvWfZ9u. :giá trị muối.
  • $yGFIqOJ.... :mật khẩu đã băm.

Giá trị băm kết quả được lưu trữ dưới dạng mật khẩu được mã hóa cho người dùng. Giá trị muối là duy nhất cho mọi người dùng. Ngay cả khi hai người dùng có cùng mật khẩu văn bản rõ, việc sử dụng một muối duy nhất sẽ tạo ra một giá trị băm duy nhất.

Tiếp theo với các trường còn lại trong mục này,

  • 18283 :Cho biết số ngày kể từ ngày 1 tháng 1 năm 1970, mật khẩu được thay đổi lần cuối
  • 0 :trường này được sử dụng để chỉ ra số ngày mà sau đó mật khẩu có thể được thay đổi. Giá trị 0 có nghĩa là mật khẩu có thể được thay đổi bất kỳ lúc nào.
  • 99999 :trường này cho biết số ngày mà sau đó mật khẩu phải được thay đổi. Giá trị 99999 cho biết người dùng có thể giữ lại mật khẩu bao lâu tùy thích.
  • 7 :nếu mật khẩu được đặt thành hết hạn, trường này cho biết số ngày để cảnh báo người dùng về việc hết hạn mật khẩu.
  • : : : Ba trường nữa là một phần của mục nhập này, mặc dù chúng trống ở đây. Số đầu tiên cho biết số ngày phải đợi sau khi hết hạn mật khẩu, sau đó tài khoản sẽ bị vô hiệu hóa. Số thứ hai cho biết số ngày kể từ ngày 1 tháng 1 năm 1970, mà một tài khoản đã bị vô hiệu hóa. Trường thứ ba được dành để sử dụng trong tương lai. Các trường trống cho biết mật khẩu hiện có cho người dùng này chưa hết hạn và chưa được đặt để sắp hết hạn.

Bảy trường cuối cùng liên quan đến tính hợp lệ của mật khẩu được gọi chung là giữ thông tin về “Chính sách bảo vệ mật khẩu”.

Các giá trị mặc định tương ứng với “Chính sách bảo vệ mật khẩu” được chỉ định trong tệp “/etc/login.defs”. Người dùng có thể thay đổi các giá trị này bằng cách sử dụng change lệnh.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Còn thông tin nhóm thì sao?

Thông tin người dùng và mật khẩu được lưu trữ trong các tệp “/ etc / passwd” và “/ etc / shadow”. Tương tự như vậy, thông tin nhóm được lưu trữ trong tệp “/ etc / group”.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Đánh dấu ở trên là các nhóm thuộc về người dùng "carbon" và "pluto." Khi một người dùng được tạo trong Linux, người dùng đó ngay lập tức được chỉ định vào một nhóm có cùng tên với tên người dùng.

Các thành viên của một nhóm cũng có thể chia sẻ mật khẩu nhóm cho các hoạt động liên quan đến nhóm. Giá trị của x cho biết rằng thông tin mật khẩu cho nhóm đó sẽ nằm trong tệp “/ etc / gshadow”.

Tuy nhiên, quyền truy cập vào “/ etc / gshadow” bị hạn chế đối với người dùng “root”.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Người dùng “root” có thể xem các mục nhập của “/ etc / gshadow”, tương tự như “/ etc / shadow”. Nhìn vào mục nhập cho nhóm "carbon", chúng ta có thể thấy rằng trường thứ hai có giá trị là ! , cho biết rằng mật khẩu không tồn tại cho nhóm này.

Cách Linux Lưu trữ và Quản lý Mật khẩu Người dùng

Kết hợp tất cả lại với nhau

Khi người dùng muốn đăng nhập, mã băm của mật khẩu đã nhập sẽ được tìm thấy bằng cách sử dụng giá trị muối của người dùng đó trong “/ etc / shadow”. Sau đó, nó được so sánh với hàm băm được lưu trữ. Nếu các giá trị khớp nhau, người dùng được cấp quyền truy cập.

Có liên quan:

  • Cách đặt lại mật khẩu gốc trong Linux
  • Cách quản lý mật khẩu người dùng của bạn từ thiết bị đầu cuối trong Linux