Lệnh who trong Linux là công cụ dòng lệnh dùng để hiển thị danh sách người dùng hiện đang đăng nhập vào hệ thống cùng với thông tin phiên làm việc tương ứng. Nhờ đó, bạn có thể nhanh chóng kiểm tra trạng thái đăng nhập, theo dõi hoạt động của người dùng và hỗ trợ quản trị hệ thống hiệu quả hơn. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh who trong Linux để kiểm tra người dùng đang đăng nhập một cách nhanh chóng và chính xác.
Những điểm chính
- Khái niệm: Hiểu rõ lệnh
wholà lệnh giám sát và liệt kê danh sách người dùng đang đăng nhập vào hệ thống thời gian thực. - Các tùy chọn thường dùng: Nắm vững bảng tham số mở rộng để tùy chỉnh hiển thị thông tin như thời điểm boot, tiến trình đã chết hoặc trạng thái runlevel.
- Hướng dẫn sử dụng chi tiết: Thành thạo kỹ năng kiểm tra danh sách người dùng đang online, xác định địa chỉ IP nguồn và tra cứu mã định danh tiến trình (PID).
- Những lưu ý khi vận hành: Ghi nhớ các nguyên tắc quan trọng về thời điểm theo dõi và phân biệt loại kết nối (tty/pts) để quản lý hệ thống chính xác.
- Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp liên quan đến lệnh who Linux.
Lệnh who Linux là gì?
Who Linux là lệnh giám sát phiên làm việc, có chức năng liệt kê danh sách toàn bộ người dùng đang đăng nhập vào hệ thống tại thời điểm kiểm tra. Thông qua giao diện dòng lệnh, lệnh who cho biết những tài khoản nào đang online và cung cấp các thông số chi tiết bao gồm cổng kết nối, thời gian bắt đầu phiên làm việc và địa chỉ IP nguồn.
Nhờ khả năng hiển thị tổng quan về hoạt động truy cập, lệnh who trở thành công cụ hữu ích giúp quản trị viên dễ dàng theo dõi và kiểm soát an ninh trên máy chủ. Cú pháp sử dụng lệnh who như sau:
who [OPTION]... [FILE]Trong đó:
- [OPTION]…: Một hoặc nhiều tùy chọn để mở rộng hoặc thay đổi kiểu thông tin được hiển thị.
- [FILE]: Tùy chọn, dùng khi muốn who đọc thông tin phiên đăng nhập từ một tệp log cụ thể.

Các tùy chọn thường dùng của lệnh who
Bạn có thể điều chỉnh cách lệnh who hoạt động bằng cách thêm các tùy chọn dưới đây vào cú pháp của lệnh:
| Tùy chọn | Chức năng |
|---|---|
-b, --boot | Cho biết thời điểm khởi động cuối cùng của hệ thống. |
-d, --dead | Liệt kê các tiến trình đã dừng hoạt động hoặc đã kết thúc. |
-H, --heading | Hiển thị dòng tiêu đề cho bảng thông tin. |
-l, --login | Hiển thị các tiến trình đăng nhập hệ thống đang diễn ra. |
-q, --count | Hiển thị danh sách tên các tài khoản và tổng số lượng người dùng đang đăng nhập. |
-r, --runlevel | Hiển thị trạng thái runlevel hiện tại của hệ thống. |
-s, --short | Chỉ hiện tên người dùng, thiết bị đầu cuối và thời gian. |
-t, --time | Hiển thị thời điểm gần nhất mà đồng hồ hệ thống được thay đổi hoặc cập nhật. |
-T, -w, --mesg | Hiển thị trạng thái cho phép gửi tin nhắn đến terminal của user: • +: Cho phép (writeable).• -: Từ chối/Bận.• ?: Không xác định. |
-u, --users | Hiển thị thông tin user kèm theo mã tiến trình (PID) của session. |
--help | Mở trang hướng dẫn sử dụng và thoát lệnh. |
--version | Kiểm tra thông tin phiên bản phần mềm và thoát lệnh. |
Một số trường hợp sử dụng lệnh who Linux chi tiết
1. Kiểm tra user đang đăng nhập và phát hiện truy cập trái phép
Để xem danh sách cơ bản các user đang hoạt động, bạn sử dụng lệnh như sau:
whoKết quả hiển thị có dạng:
vietnix pts/0 2025-12-09 10:00 (113.190.x.x)
Trong đó:
vietnix: Tên user đang đăng nhập.pts/0: Tên terminal (giao diện dòng lệnh ảo).2025-12-09: Thời gian đăng nhập.(113.190.x.x): Địa chỉ IP nguồn đăng nhập qua SSH.
Ngoài ra, bạn cũng có thể chạy lệnh who để kiểm tra các truy cập trái phép:
whoNếu danh sách xuất hiện user lạ, có thể máy chủ đã bị xâm nhập hoặc có tài khoản bị lộ mật khẩu.
2. Kiểm tra tất cả thông tin chi tiết
Để xem toàn bộ thông tin hệ thống liên quan đến phiên đăng nhập, bạn dùng tùy chọn -a:
who -aKết quả sẽ hiển thị phiên đăng nhập, thời gian boot, các tiến trình đã kết thúc, cấp độ vận hành và các user đã đăng nhập.

3. Kiểm tra thời gian hệ thống boot
Khi bạn cần biết hệ thống đã khởi động vào lúc nào hoặc kiểm tra xem máy chủ có bị khởi động lại hay không, bạn dùng lệnh sau:
who -b
4. Hiển thị PID session của user và dừng các phiên SSH bị treo
Bước 1: Đầu tiên, bạn kiểm tra từng phiên làm việc kèm theo mã định danh tiến trình (PID) để kết thúc các phiên SSH bị lỗi bằng cách sử dụng lệnh dưới đây:
who -uBước 2: Sau đó, bạn tiến hành ngắt tiến trình bằng lệnh kill:
kill -9 <PID>5. Đếm số lượng user đang đăng nhập
Để đếm nhanh tổng số người dùng đang kết nối vào hệ thống, bạn dùng lệnh sau:
who -q
Những lưu ý khi sử dụng lệnh who trong Linux
Dưới đây là những lưu ý quan trọng khi sử dụng lệnh who để quản trị hệ thống hiệu quả và chính xác:
- Thời điểm theo dõi: Lệnh who chỉ hiển thị danh sách những người dùng đang đăng nhập tại thời điểm thực thi lệnh nên nếu user đã đăng xuất trước đó, thông tin sẽ không xuất hiện. Trong trường hợp muốn xem lịch sử truy cập cũ, bạn cần dùng lệnh last.
- Phân biệt loại kết nối: Bạn cần chú ý cột thông tin terminal để xác định nguồn gốc truy cập:
ttythường là truy cập trực tiếp trên máy chủ vật lý, cònptsthường là truy cập từ xa qua SSH hoặc giả lập terminal. - Kiểm tra địa chỉ IP: Bạn hãy kiểm tra kỹ cột địa chỉ IP hoặc hostname đối với các kết nối từ xa. Nếu xuất hiện IP lạ không thuộc dải mạng tin cậy, đây có thể là dấu hiệu của việc truy cập trái phép.
- Cẩn trọng khi ngắt kết nối: Khi sử dụng lệnh who -u để lấy PID và kết hợp với lệnh kill để ngắt phiên làm việc, bạn phải xác định chính xác PID của user cần xử lý để tránh tắt nhầm các tiến trình quan trọng khác của hệ thống.
- Quyền hạn thực thi: Mặc dù user thường có thể chạy lệnh who, nhưng một số thông tin chi tiết về hệ thống hoặc các tiến trình của user khác có thể bị ẩn hoặc yêu cầu quyền root để hiển thị đầy đủ.

Câu hỏi thường gặp
Lệnh who và lệnh w khác nhau như thế nào?
Cả hai lệnh đều hiển thị ai đang đăng nhập. Tuy nhiên, lệnh who tập trung vào thông tin phiên đăng nhập như thời gian, IP, PID,… trong khi lệnh w cung cấp thêm thông tin về hành động của user đó như họ đang chạy lệnh gì, mức tiêu thụ tài nguyên CPU ra sao,…
pts/0 và tty1 trong kết quả lệnh who có ý nghĩa gì?
– tty (Teletype): Chỉ các phiên đăng nhập trực tiếp trên máy chủ vật lý.
– pts (Pseudo Terminal Slave): Chỉ các phiên đăng nhập từ xa hoặc cửa sổ terminal trên giao diện đồ họa. Số 0, 1 phía sau là số thứ tự của terminal.
Cần làm gì khi thấy một user lạ trong danh sách who?
Đầu tiên, bạn hãy dùng lệnh who -u để lấy PID và kill -9 để ngắt kết nối user. Sau đó, bạn cần đổi mật khẩu cho tài khoản bị xâm nhập, kiểm tra log hệ thống và rà soát lại bảo mật server.
Tại sao tôi dùng who nhưng không thấy IP của người dùng?
Nếu user đăng nhập trực tiếp tại máy chủ thay vì kết nối từ xa qua mạng, cột địa chỉ IP thường sẽ để trống hoặc hiển thị các giá trị cục bộ. IP chỉ hiển thị khi có kết nối từ xa ví dụ như qua SSH.
Lệnh who Linux cung cấp cho bạn đầy đủ thông tin liên quan đến quá trình vận hành và bảo mật. Cụ thể, lệnh này giúp bạn xem user đang online, thời gian đăng nhập, địa chỉ IP truy cập và theo dõi PID hoặc thời gian boot. Hy vọng qua bài viết này, bạn đã nắm vững cách sử dụng who để quản lý các phiên đăng nhập hiệu quả và cảm ơn bạn đã theo dõi bài viết!




