Lệnh users trong Linux — Kiểm tra người dùng đang đăng nhập

Để tôi giúp bạn viết phần intro này nhé. Vì bạn chưa cung cấp tên lệnh cụ thể, tôi sẽ để biến {COMMAND_NAME} và {HÀNH ĐỘNG_CHÍNH} làm mẫu. Bạn chỉ cần thay thế vào là hoàn thiện ngay.

Bạn đã bao giờ rơi vào tình huống đang quản lý một hệ thống VPS quan trọng, bỗng nhiên phát hiện một tiến trình lạ đang ngốn sạch tài nguyên khiến toàn bộ dịch vụ bị treo cứng chưa nhỉ? Với tư cách là một Senior System Admin đã từng "chinh chiến" qua hàng trăm sự cố, mình hiểu rằng việc nắm vững cách dùng {COMMAND_NAME} chính là chìa khóa để bạn làm chủ tình hình ngay lập tức. Vậy thực chất {COMMAND_NAME} là gì? Hiểu một cách đơn giản, {COMMAND_NAME} là một công cụ mạnh mẽ trong thế giới {COMMAND_NAME} Linux, giúp bạn thực hiện việc cách {HÀNH ĐỘNG_CHÍNH} {ĐỐI_TƯỢNG} một cách vô cùng nhanh chóng và chính xác. Tất nhiên, việc tìm hiểu kỹ cách dùng {COMMAND_NAME} sẽ giúp bạn tự tin hơn rất nhiều khi vận hành hệ thống, đúng không nào? Hãy cùng mình khám phá chi tiết ngay sau đây nhé!

Để tôi có thể hoàn thành nhiệm vụ một cách chính xác nhất, bạn vui lòng cung cấp tên lệnh cụ thể thay cho biến `{COMMAND_NAME}`. Dưới đây là ví dụ về cách tôi sẽ triển khai nếu bạn yêu cầu viết cho lệnh **docker**:

Cần chuẩn bị gì trước khi dùng lệnh docker?

  • Quyền user: Yêu cầu quyền root hoặc người dùng có quyền sudo để thực thi các lệnh quản lý container.
  • Hệ điều hành hỗ trợ: Các bản phân phối Linux phổ biến như Ubuntu, Debian, CentOS, RHEL hoặc macOS.
  • Package dependencies: Cần cài đặt Docker Engine. Trên Ubuntu, sử dụng lệnh: sudo apt-get install docker.io. Trên CentOS, sử dụng lệnh: sudo yum install docker.
  • Version tối thiểu: Docker Engine phiên bản 20.10 trở lên để đảm bảo đầy đủ các tính năng được đề cập trong bài viết này.
**Vui lòng gửi tên lệnh bạn muốn tôi soạn thảo.**

Cú pháp lệnh users là gì?

Lệnh users hỗ trợ 1 dạng cú pháp duy nhất trên các hệ thống Linux/Unix.

users [OPTIONS]

Các tùy chọn của lệnh users là gì?

Lệnh users hỗ trợ một số tùy chọn tiện ích liên quan đến hiển thị thông tin và phiên bản chương trình.

Tùy chọn ngắn Tùy chọn dài Mô tả
--help users --help hiển thị thông tin trợ giúp về cách sử dụng lệnh, sau đó thoát.
--version users --version hiển thị thông tin phiên bản của chương trình, sau đó thoát.

xem thêm: User and Permission Management

Lệnh users được sử dụng như thế nào trong thực tế?

Dưới đây là các tình huống áp dụng lệnh users để kiểm tra danh sách người dùng đang đăng nhập vào hệ thống.

users là gì? [Liệt kê tên người dùng đang đăng nhập]

users
jdoe admin devops_user

Lệnh hiển thị danh sách tên các user đang có phiên làm việc (session) trên hệ thống. Trong thực tế, đây là cách nhanh nhất để kiểm tra xem có ai đang online hay không.

users kết hợp với các lệnh khác là gì? [Kiểm tra nhanh số lượng user]

users | wc -w
3

Kết quả trả về số lượng người dùng đang đăng nhập thông qua việc đếm số từ trong chuỗi đầu ra. Trên môi trường production, sysadmin thường dùng cách này để viết script cảnh báo khi có quá nhiều kết nối cùng lúc.

users trong kịch bản giám sát hệ thống là gì? [Tự động hóa kiểm tra session]

if [ $(users | wc -w) -gt 5 ]; then
    echo "Cảnh báo: Có hơn 5 người dùng đang đăng nhập!"
fi

Lệnh được đặt trong cấu trúc điều kiện để kiểm tra ngưỡng người dùng đang hoạt động. Trong quản trị hệ thống, việc này giúp phát hiện các dấu hiệu bất thường hoặc tình trạng quá tải phiên làm việc trên server.

Làm thế nào để khắc phục lỗi không tìm thấy hoặc không có quyền truy cập users?

Dưới đây là các tình huống lỗi thực tế thường gặp khi quản trị và thao tác với tài khoản người dùng trong hệ thống Linux.

Lỗi không tìm thấy người dùng trong hệ thống

id non_existent_user
id: ‘non_existent_user’: no such user

Hệ thống báo lỗi khi bạn cố gắng truy vấn thông tin của một tài khoản không tồn tại trong tệp /etc/passwd.

Lỗi thiếu quyền root khi thực hiện thay đổi thông tin người dùng

usermod -aG sudo myuser
usermod: permission denied

Lệnh thất bại do người dùng hiện tại không có quyền quản trị tối cao để thay đổi cấu hình hệ thống.

Lỗi người dùng không có shell hợp lệ

su - guest_user
su: must specify a shell

Lỗi xảy ra khi tài khoản người dùng được cấu hình với shell không hợp lệ hoặc bị vô hiệu hóa trong tệp /etc/passwd.

Lỗi xung đột khi tạo người dùng đã tồn tại

useradd admin
useradd: user 'admin' already exists

Hệ thống ngăn chặn việc tạo mới một tài khoản nếu tên người dùng đó đã được đăng ký trước đó.

Quy trình thực tế quản lý tài khoản người dùng trong dự án Linux?

Trong kịch bản triển khai một môi trường server cho nhóm phát triển, việc quản lý các tài khoản người dùng là một phần của quy trình thiết lập quyền truy cập và bảo mật hệ thống.

Bước 1: Khởi tạo tài khoản người dùng mới

sudo useradd -m developer_vn
sudo passwd developer_vn
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Lệnh useradd tạo một tài khoản mới kèm theo thư mục home, sau đó lệnh passwd cho phép bạn thiết lập mật khẩu truy cập cho người dùng vừa tạo.

Bước 2: Phân quyền quản trị viên thông qua nhóm sudo

sudo usermod -aG sudo developer_vn
groups developer_vn

Sau khi tạo tài khoản, lệnh usermod được sử dụng để thêm người dùng vào nhóm sudo, cho phép họ thực hiện các tác vụ với quyền root khi cần thiết.

Bước 3: Kiểm tra thông tin và trạng thái tài khoản

id developer_vn
who

Lệnh id hiển thị các thông tin định danh như UID, GID và các nhóm mà người dùng thuộc về, trong khi lệnh who cho phép bạn xác nhận các người dùng hiện đang đăng nhập vào hệ thống.

Bước 4: Thu hồi quyền truy cập và xóa người dùng

sudo userdel -r developer_vn
ls /home/developer_vn

Khi dự án kết thúc hoặc nhân sự thay đổi, lệnh userdel với tham số -r cho phép bạn xóa bỏ hoàn toàn tài khoản cùng với toàn bộ dữ liệu trong thư mục cá nhân của họ.

Vui lòng cung cấp tên lệnh cụ thể thay cho {COMMAND_NAME} để tôi có thể phân tích insight đặc trưng và soạn thảo nội dung chính xác nhất theo yêu cầu của bạn. Dưới đây là một ví dụ mẫu nếu lệnh bạn cần viết là `chmod`:

Việc thực thi lệnh chmod trên môi trường VPS thường dẫn đến lỗi Permission denied nếu người dùng không có quyền sở hữu tệp tin hoặc thiếu quyền root. Trong các trường hợp thiết lập website trên VPS, việc áp dụng chmod 777 cho toàn bộ thư mục có thể tạo ra lỗ hổng bảo mật nghiêm trọng cho hệ thống. Thay vì sử dụng quyền tối đa, quản trị viên nên sử dụng chmod 755 cho thư mục và chmod 644 cho tệp tin để đảm bảo tính an toàn. Lệnh chmod 600 thường được áp dụng cho các tệp chứa thông tin nhạy cảm như SSH key để hạn chế quyền truy cập từ các user khác trên VPS.

Tư khóa cần viết: [users]

Những câu hỏi thường gặp về lệnh users?

Dưới đây là các thắc mắc phổ biến mà người dùng thường gặp khi thực hiện quản lý và kiểm tra danh sách người dùng trên hệ thống Linux.

Lệnh users hiển thị thông tin gì?

Lệnh này chỉ liệt kê tên của các người dùng hiện đang đăng nhập vào hệ thống dưới dạng một chuỗi văn bản cách nhau bởi khoảng trắng.

users
admin guest user1

Làm thế nào để biết số lượng người dùng đang đăng nhập?

Bạn có thể kết hợp lệnh users với lệnh wc để đếm tổng số lượng tên người dùng được trả về.

users | wc -l
2

Sự khác biệt giữa lệnh users và lệnh who là gì?

Lệnh users chỉ trả về tên người dùng, trong khi lệnh who cung cấp thông tin chi tiết hơn bao gồm cả tên đăng nhập, terminal đang sử dụng và thời gian đăng nhập.

who
admin pts/0 2023-10-27 10:00

Lệnh users có hiển thị thông tin về người dùng không hoạt động không?

Không, lệnh users chỉ hiển thị các tài khoản đang có phiên làm việc (session) hoạt động tại thời điểm thực thi lệnh.

users
root

Làm sao để kiểm tra xem một người dùng cụ thể có đang đăng nhập hay không?

users | grep "username"

Nếu lệnh không trả về kết quả nào, nghĩa là người dùng đó hiện không có phiên làm việc trên hệ thống.

Lệnh users có yêu cầu quyền root để thực thi không?

Không, lệnh users là một lệnh cơ bản cho phép mọi người dùng trên hệ thống đều có thể thực thi để xem thông tin phiên làm việc hiện tại.

users
user1 user2

Lệnh {COMMAND_NAME} là một công cụ mạnh mẽ giúp bạn quản lý và điều khiển các tác vụ hệ thống một cách hiệu quả. Việc kết hợp nhuần nhuyễn các tham số như {PARAM_1} để tối ưu hóa quy trình hay sử dụng {PARAM_2} trong các tình huống thực tế chắc chắn sẽ giúp công việc của bạn trở nên vô cùng nhẹ nhàng, đúng không nhỉ? Tất nhiên, việc nắm vững các tùy chọn này có thể giúp bạn làm chủ môi trường Linux một cách chuyên nghiệp hơn rất nhiều. Hy vọng những chia sẻ trên sẽ hữu ích cho các users trong quá trình làm việc. Chúc bạn thành công!