Trong Linux, việc kiểm tra user là thao tác giúp bạn nắm rõ thông tin tài khoản người dùng đang tồn tại, đăng nhập hoặc hoạt động trên hệ thống. Thông qua các lệnh kiểm tra user, bạn có thể quản lý phân quyền chính xác hơn, phát hiện sớm rủi ro bảo mật và tối ưu quá trình vận hành máy chủ. Trong bài viết này, mình sẽ cùng bạn khám phá 8 lệnh kiểm tra user trong Linux hiệu quả, chính xác nhất mà quản trị viên nên nắm vững.
Những điểm chính
- Lý do cần kiểm tra user trong Linux: Hiểu được các lý do quan trọng cần kiểm tra user, từ việc đảm bảo bảo mật, phân quyền chính xác đến truy vết và kiểm tra nhật ký.
- Các lệnh kiểm tra user nhanh chóng: Nắm vững 8 lệnh khác nhau để kiểm tra thông tin người dùng, từ các lệnh đơn giản (
whoami,id) đến các công cụ cung cấp thông tin chi tiết (getent,lslogins). - Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh user trong Linux.
Vì sao cần kiểm tra user trong Linux?
Việc kiểm tra user trong Linux có vai trò quan trọng trong việc quản trị hệ thống. Một số lý do bạn nên sử dụng lệnh này bao gồm:
- Lý do bảo mật: Việc biết chính xác user nào đang tồn tại và đang đăng nhập giúp tránh lạm dụng tài khoản hoặc truy cập trái phép. Ngoài ra, việc kiểm tra user thường xuyên giúp phát hiện tài khoản lạ, tài khoản không còn dùng nhưng chưa bị xóa hoặc user có quyền cao bất thường.
- Lý do phân quyền và vận hành: Khi quản trị server, bạn cần nắm rõ user hiện tại để tránh chạy lệnh nguy hiểm với quyền root hoặc sai user. Đồng thời, việc xem danh sách user và thông tin chi tiết giúp thiết kế, điều chỉnh phân quyền, nhóm và thư mục home phù hợp cho từng người dùng.
- Lý do kiểm tra nhật ký và truy vết: Các công cụ như lslogins cho phép xem lịch sử đăng nhập, hỗ trợ kiểm tra hành vi bất thường và truy vết khi có sự cố bảo mật. Thông tin user chính xác cũng là nền tảng cho việc thiết lập quyền truy cập, audit log và tuân thủ các yêu cầu an toàn thông tin.

Các lệnh kiểm tra user trong Linux nhanh chóng
1. Lệnh whoami
Lệnh whoami trả về duy nhất tên người dùng hiện tại đang đăng nhập vào Terminal. Bạn thực thi lệnh whoami với cú pháp như sau:
$ whoami
2. Lệnh id
Lệnh id được sử dụng để hiển thị thông tin nhận dạng của người dùng. Lệnh này sẽ cung cấp thông tin chi tiết về tên người dùng hiện tại bao gồm các thông tin như UID (User ID), GID (Group ID) và các nhóm của người dùng. Cú pháp lệnh này như sau:
$ id
Ngoài ra, bạn cũng có thể gọi lệnh id với tên của một người dùng cụ thể bằng lệnh sau:
$ id user_nameDưới đây là kết quả trả về:

3. Lệnh getent
getent là một công cụ mạnh mẽ được sử dụng để lấy thông tin từ các cơ sở dữ liệu được cấu hình trong /etc/nsswitch.conf. Đây là cách rất tốt để xem toàn bộ thông tin tài khoản trên một dòng. Bạn thực thi lệnh bằng cú pháp sau:
getent passwd
Mỗi dòng kết quả sẽ gồm 7 trường cách nhau bởi dấu hai chấm (:):
- Username: Tên đăng nhập.
- Mật khẩu: Thường là
x(mật khẩu thực tế nằm ở/etc/shadow). - UID: ID người dùng.
- GID: ID nhóm chính.
- GECOS: Thông tin bổ sung (Họ tên, số điện thoại,…).
- Home Directory: Thư mục gốc (ví dụ:
/home/test). - Login Shell: Vỏ lệnh mặc định (ví dụ:
/bin/bash).
4. Lệnh lslogins
Lệnh lslogins cung cấp báo cáo chi tiết về các tài khoản trên hệ thống, bao gồm cả lần đăng nhập cuối cùng và nguồn dữ liệu. Bạn thực thi lệnh lslogins với cú pháp như sau:
$ lsloginsKết quả sẽ hiển thị dưới dạng bảng rất dễ đọc, phù hợp để rà soát danh sách user số lượng lớn:

5. Lệnh cat
Lệnh cat sẽ in ra thông tin user nằm trong file /etc/passwd. Tất cả thông tin người dùng cục bộ đều được lưu trữ trong file này. Bạn có thể sử dụng lệnh cat để xem toàn bộ danh sách với cú pháp như sau:
cat /etc/passwdKết quả sẽ hiển thị như sau:

6. Lệnh compgen
Lệnh compgen sẽ hiển thị tên của tất cả người dùng và không kèm theo thông tin bổ sung khác. Cú pháp lệnh như sau:
compgen -uKết quả hiển thị thông tin người dùng như sau:

7. Sử dụng biến môi trường $USER
Trong các kịch bản lập trình shell, bạn có thể gọi tên người dùng hiện tại thông qua biến hệ thống bằng cú pháp lệnh sau:
echo $USERKết quả sẽ hiển thị như sau:

8. Lệnh finger
finger sẽ hiển thị tên thật của người dùng hiện tại cùng với tên thiết bị đầu cuối, trạng thái ghi, thời gian nhàn rỗi và thời gian đăng nhập. Nếu công cụ finger chưa có trên hệ thống, bạn hãy dùng lệnh sau để cài đặt trên Ubuntu/Debian:
sudo apt install finger
Tiếp theo, bạn thực thi lệnh sau để xem người dùng hiện tại:
finger 
Câu hỏi thường gặp
Tại sao tôi thấy một số user xuất hiện trong lệnh getent nhưng lại không tìm thấy trong file /etc/passwd?
Điều này thường xảy ra trong môi trường doanh nghiệp vì file /etc/passwd chỉ lưu trữ người dùng cục bộ. Nếu hệ thống của bạn kết nối với các dịch vụ quản lý danh tính tập trung như LDAP, NIS hoặc Active Directory, lệnh getent sẽ truy vấn cả các nguồn từ mạng này, trong khi cat /etc/passwd thì không.
Sự khác biệt thực sự giữa lệnh whoami và biến môi trường $USER là gì?
Thông thường whoami và biến môi trường $USER trả về kết quả giống nhau. Tuy nhiên, nếu bạn sử dụng lệnh sudo để chạy một script, whoami sẽ trả về root vì whoami kiểm tra người dùng thực thi hiện tại, trong khi echo $USER có thể vẫn trả về tên người dùng gốc của bạn tùy thuộc vào cách cấu hình sudo.
Làm sao để biết một user được tạo ra vào thời điểm nào?
Linux mặc định không lưu ngày tạo user trong /etc/passwd. Tuy nhiên, bạn có thể ước tính bằng cách kiểm tra ngày thay đổi file trong thư mục home của họ (ls -ld /home/username) hoặc kiểm tra file log hệ thống tại /var/log/auth.log (trên Ubuntu/Debian) hoặc /var/log/secure (trên CentOS/RHEL).
Trên đây là 8 lệnh kiểm tra user trong Linux hiệu quả và chính xác nhất giúp bạn dễ dàng theo dõi người dùng, kiểm soát quyền truy cập và đảm bảo hệ thống vận hành an toàn, ổn định. Tùy vào từng tình huống quản trị, bạn có thể linh hoạt kết hợp các lệnh để khai thác thông tin user một cách nhanh chóng và tối ưu hơn. Hy vọng bài viết đã mang đến cho bạn kiến thức thực tế, dễ áp dụng để quản lý Linux hiệu quả hơn trong công việc hằng ngày.




