Linux là một hệ điều hành mã nguồn mở mạnh mẽ, nổi tiếng với sự ổn định và bảo mật vượt trội. Chính vì những đặc tính này, Linux đã trở thành nền tảng cho phần lớn các máy chủ web, hệ thống đám mây và siêu máy tính trên toàn thế giới. Khác với các hệ điều hành cho người dùng cá nhân, Linux được xây dựng với kiến trúc đa người dùng ngay từ đầu. Điều này có nghĩa là nhiều người dùng có thể cùng lúc truy cập và sử dụng tài nguyên của hệ thống. Trong môi trường Linux, mỗi “người dùng” không chỉ đại diện cho một người thật, mà còn có thể là các tài khoản hệ thống được tạo ra để chạy các dịch vụ riêng biệt như máy chủ web hoặc cơ sở dữ liệu. Vai trò của người dùng là cực kỳ thiết yếu, vì nó quyết định quyền hạn, khả năng truy cập tài nguyên và bảo mật toàn diện cho hệ thống. Đối với một quản trị viên, việc hiểu rõ và biết cách xem danh sách người dùng là kỹ năng nền tảng. Nó không chỉ giúp kiểm soát an ninh mà còn là chìa khóa để quản lý và tối ưu hóa hiệu suất hệ thống một cách hiệu quả nhất.
Lý do cần xem danh sách người dùng trên Linux
Việc thường xuyên kiểm tra danh sách người dùng trên hệ thống Linux không phải là một công việc thừa thãi, mà là một yêu cầu bắt buộc đối với bất kỳ quản trị viên hệ thống nào coi trọng bảo mật và sự ổn định. Có hai lý do chính đằng sau sự cần thiết này: quản lý bảo mật và hỗ trợ quản trị hệ thống. Đây là những nền tảng giúp bạn duy trì một môi trường hoạt động an toàn và hiệu quả.
Quản lý bảo mật và quyền truy cập
Trong lĩnh vực an ninh mạng, kẻ tấn công thường tìm cách tạo ra các tài khoản người dùng ẩn hoặc trái phép để có thể truy cập hệ thống lâu dài. Bằng cách thường xuyên xem xét danh sách người dùng, bạn có thể nhanh chóng phát hiện những tài khoản bất thường này. Một tài khoản lạ xuất hiện mà không rõ lý do là một dấu hiệu cảnh báo đỏ về nguy cơ xâm nhập.

Hơn nữa, việc này còn giúp bạn kiểm soát quyền truy cập của từng người dùng. Bạn có chắc chắn rằng các tài khoản cũ của nhân viên đã nghỉ việc đã được vô hiệu hóa hoặc xóa bỏ? Liệu có tài khoản nào đang được cấp quyền cao hơn mức cần thiết không? Trả lời những câu hỏi này giúp bạn thực thi nguyên tắc “đặc quyền tối thiểu“, một trong những trụ cột của an ninh hệ thống, đảm bảo rằng mỗi người dùng chỉ có quyền truy cập vào những tài nguyên thực sự cần thiết cho công việc của họ.
Hỗ trợ quản trị và bảo trì hệ thống
Về mặt quản trị, việc biết rõ ai đang sử dụng hệ thống giúp bạn quản lý tài nguyên một cách hiệu quả hơn. Ví dụ, bạn có thể cần theo dõi dung lượng lưu trữ mà mỗi người dùng đang chiếm dụng hoặc phân bổ tài nguyên CPU cho các tác vụ quan trọng. Nếu không biết có bao nhiêu người dùng đang hoạt động, việc lập kế hoạch và phân quyền sẽ trở nên mò mẫm và thiếu chính xác.

Thêm vào đó, việc bảo trì hệ thống cũng trở nên dễ dàng hơn. Dọn dẹp các tài khoản không còn sử dụng giúp giải phóng tài nguyên và làm cho hệ thống trở nên gọn gàng hơn. Khi cần khắc phục sự cố, việc kiểm tra các hoạt động gần đây của từng người dùng cụ thể có thể cung cấp manh mối quan trọng để xác định nguyên nhân. Rõ ràng, việc xem danh sách người dùng là bước đầu tiên để có một cái nhìn tổng quan, từ đó đưa ra các quyết định quản trị sáng suốt và kịp thời.
Các lệnh cơ bản để xem danh sách người dùng trên Linux
Linux cung cấp nhiều công cụ dòng lệnh mạnh mẽ để bạn có thể xem và quản lý người dùng một cách linh hoạt. Mặc dù có nhiều cách khác nhau, ba lệnh cơ bản và phổ biến nhất mà mọi quản trị viên cần nắm vững là cat /etc/passwd, awk, và getent. Mỗi lệnh có ưu điểm riêng và phù hợp với những mục đích sử dụng khác nhau, từ việc xem nhanh danh sách thô đến việc lọc thông tin chi tiết và chính xác.
Sử dụng cat /etc/passwd để liệt kê người dùng
Cách đơn giản và trực tiếp nhất để xem danh sách người dùng trên Linux là đọc nội dung của tệp /etc/passwd. Đây là một tệp văn bản thuần túy, chứa thông tin cơ bản về tất cả các tài khoản người dùng trên hệ thống, bao gồm cả người dùng hệ thống và người dùng thông thường. Để xem nó, bạn chỉ cần mở terminal và gõ lệnh: cat /etc/passwd

Mỗi dòng trong tệp này tương ứng với một người dùng và chứa bảy trường thông tin được phân tách bởi dấu hai chấm (:). Ý nghĩa của các trường này lần lượt là:
- Tên đăng nhập (Username): Tên mà người dùng sử dụng để đăng nhập.
- Mật khẩu (Password): Trường này thường chứa ký tự ‘x’, cho biết mật khẩu đã được mã hóa và lưu trữ an toàn trong tệp
/etc/shadow. - User ID (UID): Một số nguyên duy nhất đại diện cho người dùng. UID dưới 1000 thường được dành cho các tài khoản hệ thống.
- Group ID (GID): ID của nhóm chính mà người dùng thuộc về.
- Thông tin người dùng (GECOS): Một trường văn bản tự do, thường chứa tên đầy đủ của người dùng hoặc thông tin liên hệ.
- Thư mục chính (Home Directory): Đường dẫn đến thư mục làm việc của người dùng sau khi đăng nhập (ví dụ:
/home/azweb). - Shell đăng nhập (Login Shell): Chương trình sẽ được thực thi khi người dùng đăng nhập.
/bin/bashlà một shell phổ biến, trong khi/sbin/nologinhoặc/bin/falsecho biết tài khoản đó không được phép đăng nhập.
Dùng lệnh awk để lọc thông tin người dùng
Mặc dù cat /etc/passwd cung cấp đầy đủ thông tin, nhưng đôi khi bạn chỉ cần một phần dữ liệu cụ thể, chẳng hạn như danh sách tên người dùng. Đây là lúc lệnh awk là gì phát huy sức mạnh. awk là một công cụ xử lý văn bản cực kỳ linh hoạt, cho phép bạn trích xuất và định dạng dữ liệu theo cột. Để chỉ lấy ra danh sách tên người dùng (trường đầu tiên), bạn có thể kết hợp awk với cat như sau: cat /etc/passwd | awk -F':' '{ print $1 }'

Trong lệnh trên:
-F':'chỉ định rằng dấu hai chấm (:) là ký tự phân tách các trường.'{ print $1 }'yêu cầuawkin ra nội dung của trường đầu tiên ($1) của mỗi dòng.
Bạn cũng có thể sử dụng awk để lấy nhiều thông tin hơn. Ví dụ, để xem tên người dùng cùng với User ID (UID) của họ, bạn có thể chạy lệnh: awk -F':' '{ print "Tên người dùng: " $1, "| UID: " $3 }' /etc/passwd Lệnh này giúp bạn có một cái nhìn gọn gàng và dễ đọc hơn về các thông tin quan trọng mà không cần phải xem toàn bộ tệp.
Dùng lệnh getent để truy xuất danh sách người dùng
Trong khi cat /etc/passwd chỉ đọc từ tệp cục bộ, getent (viết tắt của “get entries”) là một lệnh mạnh mẽ hơn. Nó truy xuất thông tin người dùng từ các cơ sở dữ liệu được cấu hình trong tệp /etc/nsswitch.conf, bao gồm không chỉ các tệp cục bộ (/etc/passwd) mà còn cả các dịch vụ mạng như LDAP, NIS hoặc Active Directory. Điều này đặc biệt quan trọng trong môi trường doanh nghiệp, nơi thông tin người dùng thường được quản lý tập trung. Để sử dụng getent, bạn chỉ cần gõ: getent passwd

Trên một hệ thống độc lập, kết quả của getent passwd có thể giống hệt với cat /etc/passwd. Tuy nhiên, ưu điểm lớn nhất của nó là cung cấp một cái nhìn toàn diện và chính xác về tất cả các người dùng mà hệ thống “nhìn thấy”, bất kể nguồn gốc của họ từ đâu. Do đó, sử dụng getent passwd được coi là phương pháp tốt nhất và đáng tin cậy hơn để liệt kê người dùng trong hầu hết các trường hợp. Nó đảm bảo bạn không bỏ sót bất kỳ tài khoản nào có thể đăng nhập vào hệ thống của mình.
Một số công cụ hỗ trợ xem và quản lý danh sách user trên Linux
Bên cạnh việc xem danh sách, việc quản lý người dùng—tức là thêm, sửa, và xóa tài khoản—là một phần không thể thiếu trong công việc của quản trị viên. Linux cung cấp cả các công cụ dòng lệnh chuyên dụng và các giải pháp giao diện đồ họa để thực hiện những tác vụ này một cách hiệu quả và an toàn.
Công cụ usermod, useradd, và userdel
Đây là bộ ba lệnh cơ bản và mạnh mẽ nhất để quản lý người dùng trực tiếp từ terminal.
- useradd: Lệnh này được sử dụng để tạo một tài khoản người dùng mới. Ví dụ, để tạo một người dùng mới có tên
nhanvienvà tự động tạo thư mục chính cho họ, bạn sẽ dùng lệnh:sudo useradd -m nhanvien. Bạn có thể thêm nhiều tùy chọn khác như chỉ định shell đăng nhập (-s) hoặc thêm người dùng vào một nhóm cụ thể (-G). - usermod: Khi một người dùng đã tồn tại,
usermodcho phép bạn sửa đổi các thuộc tính của họ. Bạn có thể thay đổi thư mục chính, shell đăng nhập, hoặc thêm người dùng vào các nhóm bổ sung. Ví dụ, để thêm người dùngnhanvienvào nhómsudođể cấp quyền quản trị, bạn dùng lệnh:sudo usermod -aG sudo nhanvien. - userdel: Lệnh này dùng để xóa một tài khoản người dùng. Để xóa hoàn toàn người dùng
nhanviencùng với thư mục chính của họ, bạn nên sử dụng tùy chọn-r:sudo userdel -r nhanvien. Việc sử dụng-rrất quan trọng để đảm bảo hệ thống luôn sạch sẽ, không để lại các tệp tin “mồ côi”.

Công cụ GUI và các tiện ích hỗ trợ quản lý user
Đối với những người không quen thuộc với dòng lệnh hoặc cần quản lý một số lượng lớn máy chủ, các công cụ có giao diện đồ họa (GUI) là một lựa chọn tuyệt vời. Chúng cung cấp một cách trực quan và dễ sử dụng hơn để quản lý người dùng.
- Webmin: Đây là một công cụ quản trị hệ thống dựa trên web rất phổ biến. Sau khi cài đặt, bạn có thể truy cập Webmin từ trình duyệt và thực hiện hầu hết các tác vụ quản trị, bao gồm cả việc thêm, sửa, xóa người dùng chỉ bằng vài cú nhấp chuột. Nó đặc biệt hữu ích cho việc quản lý máy chủ từ xa.
- Cockpit: Một công cụ giao diện web hiện đại khác, được hỗ trợ chính thức bởi nhiều bản phân phối Linux lớn như Red Hat và Ubuntu. Cockpit cho phép bạn quản lý tài khoản, xem nhật ký hệ thống và giám sát hiệu suất một cách dễ dàng.
- Công cụ tích hợp trong Môi trường Desktop: Nếu bạn đang sử dụng Linux trên máy tính để bàn với các môi trường như GNOME hoặc KDE, bạn có thể tìm thấy các công cụ quản lý người dùng được tích hợp sẵn trong phần Cài đặt (Settings) của hệ thống. Các công cụ này rất thân thiện và phù hợp cho việc quản lý tài khoản trên máy tính cá nhân.
Mẹo quản lý tài khoản user hiệu quả trên hệ thống Linux
Quản lý người dùng không chỉ dừng lại ở việc biết cách tạo hay xóa tài khoản. Để đảm bảo hệ thống của bạn luôn an toàn và hoạt động tối ưu, bạn cần áp dụng các thói quen quản lý hiệu quả. Những mẹo nhỏ dưới đây sẽ giúp bạn nâng cao tính bảo mật và duy trì sự ngăn nắp cho hệ thống Linux của mình.

- Đặt mật khẩu mạnh và chính sách hết hạn: Luôn yêu cầu người dùng đặt mật khẩu phức tạp, kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Sử dụng lệnh
chageđể thiết lập chính sách hết hạn mật khẩu, buộc người dùng phải thay đổi mật khẩu định kỳ. Điều này ngăn chặn việc sử dụng một mật khẩu quá lâu, giảm thiểu rủi ro nếu mật khẩu bị lộ. - Kiểm tra quyền hạn thường xuyên: Đừng chỉ cấp quyền rồi quên. Hãy định kỳ rà soát quyền
sudovà quyền sở hữu tệp tin. Đảm bảo rằng chỉ những người thực sự cần mới có quyền quản trị. Sử dụng lệnhfindđể tìm các tệp có quyền truy cập không an toàn, ví dụ như các tệp có thể ghi bởi tất cả mọi người. - Xóa hoặc khóa các tài khoản không sử dụng: Các tài khoản của nhân viên cũ hoặc các tài khoản dịch vụ không còn cần thiết là những lỗ hổng bảo mật tiềm tàng. Thay vì xóa ngay lập tức, bạn có thể khóa tài khoản trước bằng lệnh
usermod -L <tên_người_dùng>. Việc này sẽ vô hiệu hóa tài khoản mà không xóa dữ liệu, cho phép bạn kiểm tra lại trước khi xóa vĩnh viễn bằnguserdel -r. - Lập trình ký và sao lưu danh sách người dùng định kỳ: Hãy tạo thói quen sao lưu các tệp cấu hình người dùng quan trọng như
/etc/passwd,/etc/shadow,/etc/groupvà/etc/gshadow. Lưu một bản ghi về những thay đổi bạn đã thực hiện, chẳng hạn như ai đã được thêm vào nhómsudovà vào thời điểm nào. Điều này không chỉ giúp bạn khôi phục hệ thống khi có sự cố mà còn là một tài liệu quý giá cho việc kiểm toán bảo mật sau này.
Những vấn đề thường gặp khi xem danh sách người dùng trên Linux
Trong quá trình quản lý người dùng, ngay cả những quản trị viên kinh nghiệm đôi khi cũng gặp phải một số vấn đề phổ biến. Hiểu rõ nguyên nhân và cách khắc phục những sự cố này sẽ giúp bạn xử lý tình huống một cách nhanh chóng và hiệu quả hơn.
Không đủ quyền để xem file /etc/passwd
Một trong những hiểu lầm phổ biến là bạn cần quyền root để xem tệp /etc/passwd. Thực tế, tệp này được thiết lập để mọi người dùng trên hệ thống đều có thể đọc (world-readable). Mục đích là để các chương trình và dịch vụ có thể chuyển đổi giữa UID và tên người dùng. Do đó, nếu bạn không thể xem tệp này, vấn đề có thể nằm ở quyền truy cập của thư mục chứa nó hoặc một cấu hình hệ thống rất bất thường.
Vấn đề thực sự thường phát sinh khi bạn cố gắng xem tệp /etc/shadow. Tệp này chứa thông tin mật khẩu đã được mã hóa và chỉ có người dùng root mới có quyền đọc. Nếu bạn chạy lệnh cat /etc/shadow với tư cách người dùng thông thường, bạn sẽ nhận được thông báo “Permission denied”. Cách xử lý rất đơn giản: hãy sử dụng sudo để thực thi lệnh với quyền quản trị: sudo cat /etc/shadow
Việc phân tách quyền truy cập giữa /etc/passwd và /etc/shadow là một cơ chế bảo mật cơ bản của Linux, giúp bảo vệ thông tin nhạy cảm khỏi những cặp mắt tò mò.
Danh sách người dùng không đồng bộ với thực tế
Đây là một vấn đề thường gặp trong các môi trường doanh nghiệp phức tạp. Bạn chạy lệnh cat /etc/passwd và thấy một danh sách người dùng, nhưng bạn biết chắc chắn rằng có những người dùng khác có thể đăng nhập vào hệ thống mà không có tên trong tệp này. Tại sao lại như vậy?
Nguyên nhân là do hệ thống của bạn có thể được cấu hình để xác thực người dùng từ một nguồn bên ngoài, chẳng hạn như máy chủ LDAP, Kerberos hoặc Active Directory. Trong trường hợp này, /etc/passwd chỉ chứa danh sách các tài khoản cục bộ của máy. Để có được danh sách đầy đủ và chính xác tất cả các người dùng mà hệ thống nhận diện (cả cục bộ và từ mạng), bạn phải sử dụng lệnh getent passwd. Lệnh getent sẽ truy vấn tất cả các nguồn dữ liệu người dùng được định nghĩa trong tệp /etc/nsswitch.conf, đảm bảo bạn có một cái nhìn toàn cảnh và không bỏ sót bất kỳ tài khoản nào.
Thực hành tốt nhất khi quản lý người dùng trên Linux
Quản lý người dùng hiệu quả là sự kết hợp giữa việc sử dụng đúng công cụ và tuân thủ các nguyên tắc bảo mật vững chắc. Áp dụng những thực hành tốt nhất sau đây sẽ giúp bạn xây dựng một hệ thống Linux an toàn, ổn định và dễ quản lý hơn trong dài hạn.

- Luôn kiểm tra quyền hạn trước khi chỉnh sửa: Trước khi thực hiện bất kỳ thay đổi nào đối với tài khoản người dùng, đặc biệt là cấp quyền
sudohoặc thay đổi quyền sở hữu tệp hệ thống, hãy tự hỏi: “Người dùng này có thực sự cần quyền hạn này không?”. Áp dụng nguyên tắc đặc quyền tối thiểu (Principle of Least Privilege) là nền tảng của một hệ thống an toàn. - Sao lưu file cấu hình trước khi thay đổi: Đây là một quy tắc vàng trong quản trị hệ thống. Trước khi bạn chỉnh sửa các tệp quan trọng như
/etc/passwd,/etc/sudoershoặc/etc/group, hãy tạo một bản sao lưu. Một lệnh đơn giản nhưsudo cp /etc/sudoers /etc/sudoers.bakcó thể cứu bạn khỏi nhiều giờ khắc phục sự cố nếu có lỗi xảy ra. - Sử dụng lệnh
getentđể đảm bảo dữ liệu chính xác: Như đã đề cập,getent passwdcung cấp cái nhìn toàn diện nhất về danh sách người dùng, đặc biệt trong các môi trường mạng phức tạp. Hãy tập thói quen sử dụnggetentthay vìcat /etc/passwdđể kiểm tra người dùng. Điều này đảm bảo rằng các quyết định quản trị của bạn được dựa trên thông tin đầy đủ và chính xác nhất. - Không để tài khoản mặc định chưa đổi mật khẩu: Nhiều hệ thống hoặc ứng dụng đi kèm với các tài khoản mặc định (ví dụ:
admin,root, hoặc các tài khoản người dùng trên các thiết bị IoT). Những tài khoản này với mật khẩu mặc định là mục tiêu hàng đầu của các cuộc tấn công tự động. Ngay sau khi cài đặt hệ thống, hãy thay đổi mật khẩu của tất cả các tài khoản mặc định hoặc vô hiệu hóa chúng nếu không cần thiết.

Kết luận
Việc xem và quản lý danh sách người dùng là một trong những kỹ năng cốt lõi và quan trọng nhất đối với bất kỳ ai làm việc với hệ điều hành Linux. Đây không chỉ là một thao tác kỹ thuật đơn thuần mà còn là nền tảng vững chắc cho việc bảo mật hệ thống, quản lý tài nguyên và duy trì sự ổn định. Từ việc sử dụng các lệnh đơn giản như cat /etc/passwd để có cái nhìn nhanh, đến việc dùng awk để lọc thông tin và getent để đảm bảo tính chính xác trong môi trường phức tạp, mỗi công cụ đều có vai trò riêng trong bộ công cụ của một quản trị viên chuyên nghiệp.
Bằng cách thực hành thường xuyên các mẹo quản lý hiệu quả và tuân thủ các nguyên tắc tốt nhất, bạn có thể chủ động phát hiện các mối đe dọa an ninh, ngăn chặn truy cập trái phép và đảm bảo hệ thống của mình hoạt động một cách trơn tru. Hãy coi việc kiểm tra danh sách người dùng như một thói quen bảo trì định kỳ, giống như việc kiểm tra sức khỏe cho máy chủ của bạn.
Nếu bạn đang tìm hiểu sâu hơn, bước tiếp theo tự nhiên sẽ là khám phá về quản lý nhóm, phân quyền tệp tin bằng chmod và chown, cũng như cấu hình sudo để kiểm soát quyền quản trị một cách chi tiết. Việc làm chủ những kỹ năng này sẽ giúp bạn tự tin vận hành và bảo vệ bất kỳ hệ thống Linux nào, từ một trang web cá nhân trên dịch vụ Hosting chất lượng cao đến một hạ tầng VPS phức tạp.