NỘI DUNG

Banner blog lễ 30.4 và 1.5

Thông tin về /etc/shadow file trong Linux: Bảo mật mật khẩu người dùng

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:13/05/2025
Lượt xem

Đánh giá

5/5 - (1 bình chọn)

/etc/shadow file trong Linux lưu trữ mật khẩu đã hash và các thiết lập bảo mật liên quan đến người dùng hệ thống. Đây là thành phần quan trọng giúp quản lý xác thực và đảm bảo mật khẩu không bị lộ dưới dạng văn bản thuần. Bài viết sẽ giúp bạn hiểu rõ /etc/shadow file là gì, file này chứa nội dung gì và cách các trường trong đó hoạt động. Ngoài ra, bạn cũng sẽ biết được có nên chỉnh sửa file này không và một số gợi ý về giải pháp hạ tầng hiệu quả cho hệ thống bảo mật cao.

Điểm chính cần nắm

  • /etc/shadow file là gì?: Giới thiệu về /etc/shadow file và vai trò của nó trong quản lý mật khẩu và bảo mật người dùng trên hệ thống Linux.
  • Nội dung của /etc/shadow file: Tóm tắt thông tin được lưu trong /etc/shadow file, bao gồm mật khẩu đã hash và các thiết lập bảo mật.
  • Có nên chỉnh sửa /etc/shadow file không?: Cảnh báo không nên chỉnh sửa /etc/shadow filetrực tiếp để tránh gây lỗi hệ thống hoặc vấn đề bảo mật.
  • Vietnix – VPS hiệu suất cao cho website nặng: Giới thiệu dịch vụ VPS của Vietnix, tối ưu hiệu suất cho các website yêu cầu tài nguyên lớn.
  • FAQ: Các câu hỏi thường gặp về /etc/shadow file và quản lý bảo mật trong Linux.

/etc/shadow file là gì?

/etc/shadow là một file hệ thống trong Linux dùng để lưu trữ thông tin liên quan đến mật khẩu của người dùng. File này chứa:

  • Mật khẩu của người dùng (đã được băm – hash)
  • Các thông tin liên quan đến thời gian thay đổi mật khẩu
  • Các chính sách như tuổi thọ của mật khẩu, thời gian cảnh báo, thời gian không hoạt động, v.v.

Mỗi khi người dùng thiết lập hoặc thay đổi mật khẩu, hệ thống sẽ sử dụng một thuật toán hash để mã hóa mật khẩu đó rồi lưu trữ vào file shadow, thay vì lưu dạng văn bản thuần. Từ đó, hệ thống có thể xác thực người dùng mà không cần biết chính xác mật khẩu của họ là gì.

/etc/shadow là một file hệ thống trong Linux dùng để lưu trữ thông tin liên quan đến mật khẩu
/etc/shadow là một file hệ thống trong Linux dùng để lưu trữ thông tin liên quan đến mật khẩu

iconLưu ý

Người dùng thông thường không nên và không cần chỉnh sửa trực tiếp file này, vì bất kỳ thay đổi không đúng cách nào cũng có thể gây lỗi xác thực hoặc vô hiệu hóa tài khoản. Việc thay đổi thông tin trong /etc/shadow nên được thực hiện thông qua các lệnh quản lý như passwd, usermod hoặc chage.

Nội dung của/etc/shadow file

Để xem nội dung của file, bạn cần mở Terminal và sử dụng quyền quản trị:

sudo cat /etc/shadow

Bạn sẽ thấy danh sách các dòng trông như thế này: username:$6$abc123...$XYZ...:19475:0:99999:7:::

Mỗi dòng tương ứng với một tài khoản người dùng, và được chia thành 9 trường, cách nhau bằng dấu hai chấm (:). Cấu trúc đầy đủ như sau:

username:password:last_changed:min_age:max_age:warning:inactive:expire:reserved
Các trường trong file /etc/shadow (Linux)
Các trường trong file /etc/shadow (Linux)

1. username: Tên người dùng

Trường đầu tiên là tên đăng nhập của người dùng tương ứng với thông tin mật khẩu và các quy định phía sau.

2. password: Mật khẩu đã hash

Trường này không lưu mật khẩu ở dạng văn bản gốc. Thay vào đó, nó lưu mật khẩu sau khi được hash bằng một thuật toán mã hóa mạnh.
Cấu trúc bên trong như sau:

$id$salt$hashed_password

Trong đó:

  • id: Chỉ định thuật toán mã hóa:

    • $1$ – MD5

    • $5$ – SHA-256

    • $6$ – SHA-512 (phổ biến nhất hiện nay)

  • salt: Một chuỗi ngẫu nhiên giúp tăng tính bảo mật của mật khẩu.

  • hashed_password: Kết quả sau khi mật khẩu và salt được đưa vào hàm hash.

Nếu trường này là một ký tự ! hoặc *, nghĩa là tài khoản đã bị vô hiệu hóa hoặc không sử dụng mật khẩu (ví dụ: tài khoản hệ thống hoặc người dùng giả lập).

3. last_changed: Ngày thay đổi mật khẩu gần nhất

Đây là số ngày tính từ ngày 1/1/1970 (Unix epoch) đến thời điểm mật khẩu được thay đổi lần cuối.

4. min_age: Số ngày tối thiểu giữa các lần thay đổi mật khẩu

Ví dụ: nếu giá trị là 1, người dùng phải chờ ít nhất 1 ngày sau lần đổi gần nhất mới được đổi tiếp. Nếu giá trị là 0, người dùng có thể đổi mật khẩu bất cứ lúc nào.

5. max_age: Số ngày tối đa mật khẩu có hiệu lực

Sau thời gian này, mật khẩu sẽ hết hạn và người dùng bắt buộc phải thay đổi.
Giá trị mặc định thường là 99999, tương đương hơn 270 năm – tức là gần như không hết hạn nếu không có chính sách cụ thể.

6. warning: Số ngày cảnh báo trước khi mật khẩu hết hạn

Khi gần đến thời điểm mật khẩu hết hạn, hệ thống sẽ nhắc người dùng đổi mật khẩu. Đây là số ngày trước thời hạn mà cảnh báo đó sẽ được đưa ra.

7. inactive: Thời gian không hoạt động sau khi mật khẩu hết hạn

Nếu người dùng không đổi mật khẩu sau khi hết hạn, họ vẫn có thêm một khoảng thời gian nữa để đăng nhập và cập nhật. Hết khoảng này, tài khoản sẽ bị khóa tạm thời.

8. expire: Ngày hết hạn hoàn toàn của tài khoản

Sau ngày này (cũng được tính từ 1/1/1970), tài khoản sẽ bị vô hiệu hóa hoàn toàn, bất kể mật khẩu có hợp lệ hay không.

9. reserved: Trường chưa được sử dụng

Trường này hiện tại chưa có chức năng cụ thể. Hệ thống để dành cho các tính năng bảo mật trong tương lai.

Có nên chỉnh sửa file /etc/shadow không?

Câu trả lời là: Không. Dù bạn có thể mở và đọc file này bằng quyền sudo, nhưng tuyệt đối không nên chỉnh sửa nó bằng tay, vì những lý do sau:

  • Cú pháp sai: Việc chỉnh sửa trực tiếp có thể dẫn đến cú pháp sai, khiến bạn bị khóa khỏi hệ thống hoặc gặp các lỗi không mong muốn.
  • Hệ thống không nhận diện được thay đổi: Các thay đổi không đúng định dạng có thể khiến hệ thống không hiểu hoặc bỏ qua các thay đổi của bạn.
  • Rủi ro bảo mật: file /etc/shadow chứa các mật khẩu đã được mã hóa của người dùng, nên việc chỉnh sửa sai có thể mở ra lỗ hổng bảo mật nghiêm trọng.

/etc/shadow file rất nhạy cảm vì chứa thông tin mật khẩu của người dùng. Do đó, chỉ có người dùng root (hoặc người có quyền truy cập đặc biệt – User root) mới có thể truy cập và chỉnh sửa file này.

  • Quyền truy cập file /etc/shadow:

Bạn có thể kiểm tra quyền truy cập file /etc/shadow bằng lệnh: ls -l /etc/shadow

Và kết quả thường sẽ là: -r-------- 1 root root 1234 May 12 10:00 /etc/shadow. Điều này có nghĩa là chỉ có người dùng root mới có quyền đọc file.

Cách thay đổi thông tin người dùng mà không chỉnh sửa file trực tiếp

Thay vào đó, nếu bạn cần thay đổi thông tin như mật khẩu, chính sách hết hạn,… hãy dùng các công cụ sau:

  • passwd: Đổi mật khẩu người dùng
sudo passwd username
  • chage: Thay đổi chính sách mật khẩu
sudo chage -l username
  • usermod: Cập nhật cấu hình người dùng

Cách kiểm tra file /etc/shadow trên các hệ thống khác nhau

Các bản phân phối Linux khác nhau đều sử dụng file /etc/shadow để lưu trữ mật khẩu người dùng, tuy nhiên cách quản lý file này có thể hơi khác nhau tùy theo từng hệ thống. Để kiểm tra file này, bạn có thể sử dụng các lệnh sau:

  • Trên Ubuntu và Debian: sudo cat /etc/shadow
  • Trên CentOS và Fedora: sudo cat /etc/shadow
  • Trên các hệ thống WSL (Windows Subsystem for Linux):
    /etc/shadow file sẽ nằm trong môi trường Linux mà bạn đã cài đặt trên Windows. Bạn có thể kiểm tra bằng lệnh: cat /etc/shadow

Hãy nhớ rằng, mặc dù các hệ thống có thể khác nhau, nhưng mục đích của file này luôn là lưu trữ thông tin liên quan đến mật khẩu người dùng.

Vietnix – VPS hiệu suất cao cho website nặng

Dù bạn đang vận hành một website cá nhân, trang tin tức hay hệ thống thương mại điện tử, dịch vụ VPShosting hiệu suất cao của Vietnix sẽ giúp bạn duy trì tốc độ tải trang nhanh, ổn định và an toàn. Với nền tảng hạ tầng hiện đại, máy chủ được đặt tại trung tâm dữ liệu chuẩn Tier III, Vietnix đảm bảo website luôn hoạt động mượt mà và liên tục – ngay cả khi lưu lượng truy cập tăng cao.

Hệ thống được bảo vệ bởi các giải pháp bảo mật tiên tiến, chống tấn công DDoS hiệu quả, cùng đội ngũ kỹ thuật giàu kinh nghiệm luôn sẵn sàng hỗ trợ 24/7, mang đến cho bạn sự an tâm tuyệt đối trong quá trình vận hành.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.

Câu hỏi thường gặp

/etc/shadow file dùng để làm gì?

File /etc/shadow lưu trữ thông tin xác thực người dùng, cụ thể là mật khẩu đã được hash cùng các thông tin liên quan như thời gian thay đổi, hạn sử dụng, và quy tắc bảo mật mật khẩu.

Sự khác biệt giữa file /etc/passwd/etc/shadow là gì?

File /etc/passwd chứa thông tin người dùng (UID, GID, shell,…), trong khi /etc/shadow chứa thông tin bảo mật như mật khẩu đã mã hóa và chính sách mật khẩu. Mật khẩu từng được lưu trong /etc/passwd, nhưng sau này chuyển sang /etc/shadow để tăng tính bảo mật.

Dấu $6$ trong file /etc/shadow có nghĩa là gì?

$6$ biểu thị rằng hệ thống đang dùng thuật toán hash SHA-512 để mã hóa mật khẩu người dùng.

Dấu chấm than ! hoặc dấu sao * trong trường mật khẩu của /etc/shadow nghĩa là gì?

Dấu ! hoặc * nghĩa là tài khoản đó đã bị vô hiệu hóa hoặc không thể đăng nhập bằng mật khẩu. Thường dùng cho tài khoản hệ thống hoặc khi khóa người dùng tạm thời.

Làm sao để chỉnh sửa file /etc/shadow đúng cách?

Không nên chỉnh trực tiếp bằng vim hay nano. Thay vào đó, nên dùng lệnh như passwd, chage, usermod để đảm bảo tính nhất quán và an toàn.

Định dạng từng trường trong dòng của /etc/shadow là gì?

Mỗi dòng có 9 trường, phân tách bằng dấu :. Bao gồm: tên người dùng, mật khẩu (hash), ngày thay đổi mật khẩu gần nhất, tuổi mật khẩu tối thiểu, tối đa, thời gian cảnh báo, thời gian không hoạt động, ngày hết hạn tài khoản, và trường không sử dụng.

File /etc/shadow có tồn tại trên Ubuntu không?

Có. Ubuntu và hầu hết các bản phân phối Linux đều sử dụng /etc/shadow để lưu trữ thông tin xác thực an toàn.

Có thể phục hồi mật khẩu người dùng từ /etc/shadow không?

Không. Mật khẩu được hash một chiều. Tuy nhiên, hacker có thể thử tấn công brute-force hoặc dùng từ điển hash để tìm mật khẩu gốc.

Vì sao phải tách mật khẩu sang file /etc/shadow thay vì để chung trong /etc/passwd?

/etc/passwd phải có quyền đọc công khai để các tiến trình hệ thống hoạt động bình thường, trong khi mật khẩu cần được bảo mật. Tách ra giúp giảm rủi ro rò rỉ mật khẩu.

Lời kết

Hiểu rõ cấu trúc và vai trò của file /etc/shadow giúp bạn quản lý hệ thống người dùng hiệu quả và bảo mật hơn. Nếu bạn có bất kỳ thắc mắc nào về nội dung file, cách hoạt động hoặc các trường cụ thể trong /etc/shadow, đừng ngần ngại để lại câu hỏi. Bạn cũng có thể tìm hiểu thêm các bài viết liên quan về bảo mật Linux trên blog của Vietnix. Chúng mình luôn sẵn sàng hỗ trợ bạn tối ưu hệ thống một cách an toàn và hiệu quả.

Mọi người cũng xem:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi 30 tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG