Hướng dẫn shadow file trong linux - tập tin bóng tối trong linux

Có một số chương trình xác thực khác nhau có thể được sử dụng trên các hệ thống Linux. Lược đồ tiêu chuẩn và được sử dụng phổ biến nhất là thực hiện xác thực đối với tệp /etc/passwd và /etc/shadow.

/etc/shadowl à một tệp văn bản chứa thông tin về mật khẩu của người dùng trong hệ thống. Nó thuộc sở hữu của người dùng root và bóng nhóm, và có 640 quyền .

Nội dung chính

  • 1 Sự sắp xếp của tệp /etc/shadow Sự sắp xếp của tệp /etc/shadow
  • 2 Ví dụ Ví dụ
  • 3 Phần kết luận Phần kết luận
    • 3.1 Share this: Share this:
    • 3.2 Like this: Like this:

Sự sắp xếp của tệp /etc/shadow

File /etc/shadow chứa một mục nhập trên mỗi dòng, mỗi đại diện cho một tài khoản người dùng. Bạn có thể xem nội dung của tệp, bằng trình soạn thảo văn bản hoặc lệnh như cat :

sudo cat /etc/shadow

Thông thường, dòng đầu tiên mô tả người dùng root, tiếp theo là hệ thống và tài khoản người dùng bình thường. Các mục mới được thêm vào cuối tệp.

Mỗi dòng của /etc/shadow chứa chín trường được phân tách bằng dấu phẩy:

mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
|      |      |   |   |   |||+-----------> 9. Unused
|      |      |   |   |   ||+------------> 8. Expiration date
|      |      |   |   |   |+-------------> 7. Inactivity period
|      |      |   |   |   +--------------> 6. Warning period
|      |      |   |   +------------------> 5. Maximum password age
|      |      |   +----------------------> 4. Minimum password age
|      |      +--------------------------> 3. Last password change
|      +---------------------------------> 2. Encrypted Password
+----------------------------------------> 1. Username
  1. Tên tài khoản. Chuỗi bạn gõ khi đăng nhập vào hệ thống. Tài khoản người dùng tồn tại trên hệ thống.
  2. Mật khẩu được mã hóa. Mật khẩu đang sử dụng định dạng $type$salt$hashed
    mark:$6$.n.:17736:0:99999:7:::
    [--] [----] [---] - [---] ----
    |      |      |   |   |   |||+-----------> 9. Unused
    |      |      |   |   |   ||+------------> 8. Expiration date
    |      |      |   |   |   |+-------------> 7. Inactivity period
    |      |      |   |   |   +--------------> 6. Warning period
    |      |      |   |   +------------------> 5. Maximum password age
    |      |      |   +----------------------> 4. Minimum password age
    |      |      +--------------------------> 3. Last password change
    |      +---------------------------------> 2. Encrypted Password
    +----------------------------------------> 1. Username
    
    0 là thuật toán băm mật mã phương thức và có thể có các giá trị sau:
    • mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      1 – MD5
    • mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      2 – Blowfish
    • mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      3 – Eksblowfish
    • mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      4 – SHA-256
    • mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      5 – SHA-512 Nếu trường mật khẩu chứa dấu hoa thị [ 
      mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      6] hoặc dấu chấm than [ 
      mark:$6$.n.:17736:0:99999:7:::
      [--] [----] [---] - [---] ----
      |      |      |   |   |   |||+-----------> 9. Unused
      |      |      |   |   |   ||+------------> 8. Expiration date
      |      |      |   |   |   |+-------------> 7. Inactivity period
      |      |      |   |   |   +--------------> 6. Warning period
      |      |      |   |   +------------------> 5. Maximum password age
      |      |      |   +----------------------> 4. Minimum password age
      |      |      +--------------------------> 3. Last password change
      |      +---------------------------------> 2. Encrypted Password
      +----------------------------------------> 1. Username
      
      7], người dùng sẽ không thể đăng nhập vào hệ thống bằng xác thực mật khẩu. Các phương pháp đăng nhập khác như xác thực dựa trên khóa hoặc chuyển sang người dùng vẫn được phép.Trong các hệ thống Linux cũ hơn, mật khẩu được mã hóa của người dùng được lưu trữ trong /etc/passwd.
  3. Lần thay đổi mật khẩu cuối cùng. Đây là ngày thay đổi mật khẩu lần cuối. Số ngày được tính kể từ ngày 1 tháng 1 năm 1970 [kỷ nguyên].
  4. Độ tuổi mật khẩu tối thiểu. Số ngày phải trôi qua trước khi có thể thay đổi mật khẩu người dùng. Thông thường, nó được đặt thành 0, có nghĩa là không có độ tuổi mật khẩu tối thiểu.
  5. Độ tuổi mật khẩu tối đa. Số ngày sau khi mật khẩu người dùng phải được thay đổi. Theo mặc định, số này được đặt thành 
    mark:$6$.n.:17736:0:99999:7:::
    [--] [----] [---] - [---] ----
    |      |      |   |   |   |||+-----------> 9. Unused
    |      |      |   |   |   ||+------------> 8. Expiration date
    |      |      |   |   |   |+-------------> 7. Inactivity period
    |      |      |   |   |   +--------------> 6. Warning period
    |      |      |   |   +------------------> 5. Maximum password age
    |      |      |   +----------------------> 4. Minimum password age
    |      |      +--------------------------> 3. Last password change
    |      +---------------------------------> 2. Encrypted Password
    +----------------------------------------> 1. Username
    
    9.
  6. Thời gian cảnh báo. Số ngày trước khi mật khẩu hết hạn trong đó người dùng được cảnh báo rằng mật khẩu phải được thay đổi.
  7. Thời gian không hoạt động. Số ngày sau khi mật khẩu người dùng hết hạn trước khi tài khoản người dùng bị vô hiệu hóa. Thông thường, trường này trống.
  8. Ngày hết hạn. Ngày tài khoản bị vô hiệu hóa. Nó được biểu thị dưới dạng ngày kỷ nguyên.
  9. Không sử dụng. Trường này bị bỏ qua. Nó được dành để sử dụng trong tương lai.

Không nên chỉnh sửa tệp /etc/shadow bằng tay trừ khi bạn biết mình đang làm gì. Luôn sử dụng lệnh được thiết kế cho mục đích. Ví dụ: để thay đổi mật khẩu người dùng, hãy sử dụng 

hocdevops:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::
1 lệnh, và để thay đổi thông tin lão hóa mật khẩu, hãy sử dụng lệnh 
hocdevops:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::
2.

Ví dụ

Hãy xem ví dụ sau:

hocdevops:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::

Mục nhập ở trên chứa thông tin về mật khẩu “ hocdevops” của người dùng:

  • Mật khẩu được mã hóa bằng SHA-512 [mật khẩu được cắt bớt để dễ đọc hơn].
  • Mật khẩu được thay đổi lần cuối vào ngày 23 tháng 4 năm 2019 – 
    hocdevops:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::
    
    3.
  • Không có tuổi mật khẩu tối thiểu.
  • Mật khẩu phải được thay đổi ít nhất 120 ngày một lần.
  • Người dùng sẽ nhận được thông báo cảnh báo bảy ngày trước ngày hết hạn mật khẩu.
  • Nếu người dùng không cố gắng đăng nhập vào hệ thống sau 14 ngày kể từ ngày hết hạn mật khẩu, tài khoản sẽ bị vô hiệu hóa.
  • Không có ngày hết hạn tài khoản.

Phần kết luận

File /etc/shadow giữ bản ghi về mật khẩu người dùng mã hóa, cũng như mật khẩu thông tin khác có liên quan.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

Bài Viết Liên Quan

Chủ Đề