- 1 1. Giới thiệu
- 2 2. Cách Kiểm tra Danh sách Người dùng trong Ubuntu
- 3 3. Cách Kiểm tra Người dùng Đang Đăng nhập
- 4 4. Cách kiểm tra thông tin chi tiết của người dùng
- 5 5. Quản lý người dùng trong Ubuntu (Thêm, Xóa, Sửa)
- 6 6. Các kịch bản thực tế cho quản lý người dùng
- 7 7. Câu hỏi Thường gặp
- 7.1 7.1 Tôi có thể chỉnh sửa /etc/passwd trực tiếp không?
- 7.2 7.2 Sự khác biệt Giữa Lệnh who và users
- 7.3 7.3 Cách Kiểm tra Lịch sử Đăng nhập cho Người dùng Cụ thể
- 7.4 7.4 Cách Thay đổi Mật khẩu của Người dùng
- 7.5 7.5 Cách Tạm thời Vô hiệu hóa Người dùng
- 7.6 7.6 Thêm Người dùng vào Nhóm sudo
- 7.7 7.7 Thay đổi Thư mục Home của Người dùng
- 7.8 7.8 Xóa Hoàn toàn Người dùng và Dữ liệu của Họ
- 7.9 7.9 Kiểm tra Hoạt động Chi tiết của Người dùng Đã Đăng nhập
1. Giới thiệu
Ubuntu là một bản phân phối Linux phổ biến được sử dụng bởi nhiều người dùng, từ môi trường cá nhân đến hệ thống máy chủ doanh nghiệp. Khi quản lý hệ thống Ubuntu, việc quản trị tài khoản người dùng là rất quan trọng. Đặc biệt, việc xem xét danh sách người dùng đã đăng ký giúp quản lý bảo mật và tổ chức tài khoản.
Bài viết này giải thích cách liệt kê người dùng trên Ubuntu. Nó bao gồm mọi thứ từ các lệnh cơ bản đến các phương pháp lấy thông tin chi tiết, làm cho nó hữu ích cho cả người mới bắt đầu và quản trị viên có kinh nghiệm.
2. Cách Kiểm tra Danh sách Người dùng trong Ubuntu
Trong Ubuntu, thông tin người dùng có thể được lấy dễ dàng bằng cách sử dụng các tệp và lệnh cụ thể. Các phương pháp sau cho phép bạn kiểm tra danh sách người dùng.
2.1 Hiển thị Danh sách Người dùng Sử dụng /etc/passwd
Trong Ubuntu, tất cả thông tin người dùng được lưu trữ trong tệp /etc/passwd. Hiển thị tệp này cho phép bạn xác minh tất cả người dùng đã đăng ký.
Ví dụ lệnh
cat /etc/passwd
Chạy lệnh này sẽ hiển thị thông tin theo định dạng sau:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash
Mỗi dòng bao gồm các trường được phân cách bằng dấu hai chấm (:) chứa thông tin sau:
- Tên người dùng
- Mật khẩu (hiện được biểu diễn là x)
- ID Người dùng (UID)
- ID Nhóm (GID)
- Thông tin người dùng (trường chú thích)
- Thư mục chính
- Shell đăng nhập mặc định
Vì tệp này bao gồm người dùng hệ thống, bạn có thể trích xuất chỉ người dùng đăng nhập thông thường bằng các phương pháp dưới đây.
2.2 Liệt kê Chỉ Tên Người dùng
Để liệt kê chỉ tên người dùng, sử dụng lệnh sau:
cut -d: -f1 /etc/passwd
Ngoài ra, bạn có thể sử dụng lệnh awk:
awk -F':' '{ print $1 }' /etc/passwd
Đầu ra ví dụ:
root
user1
user2
2.3 Tìm kiếm Người dùng Cụ thể
Để kiểm tra xem một người dùng cụ thể có tồn tại không, sử dụng lệnh grep:
grep 'user1' /etc/passwd
Lệnh này chỉ hiển thị mục liên quan đến user1.
2.4 Liệt kê Nhóm qua /etc/group
Để kiểm tra các nhóm mà người dùng thuộc về, tham khảo tệp /etc/group:
cat /etc/group | cut -d: -f1
Để liệt kê các nhóm mà một người dùng cụ thể thuộc về, sử dụng:
groups user1
Đầu ra ví dụ:
user1 : user1 sudo
Điều này cho thấy user1 cũng là thành viên của nhóm sudo.
3. Cách Kiểm tra Người dùng Đang Đăng nhập
Ubuntu cung cấp một số lệnh để xác minh người dùng nào đang đăng nhập. Các lệnh này giúp lấy thông tin phiên và đăng nhập.
3.1 Kiểm tra Người dùng Đang Đăng nhập Sử dụng who
Lệnh who liệt kê tất cả người dùng đang đăng nhập.
Ví dụ lệnh
who
Đầu ra ví dụ
user1 tty1 2025-02-16 10:05
user2 pts/0 2025-02-16 11:30
Giải thích trường
- Tên người dùng (người dùng đang đăng nhập)
- Tên terminal (ví dụ,
tty1cho cục bộ,pts/0cho SSH) - Thời gian đăng nhập
Lệnh who đơn giản và hữu ích khi bạn muốn kiểm tra nhanh trạng thái đăng nhập.
3.2 Kiểm tra Thông tin Chi tiết Sử dụng w
Lệnh w cung cấp thông tin chi tiết hơn who.
Ví dụ lệnh
w
Đầu ra ví dụ
11:35:25 up 2:15, 2 users, load average: 0.03, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty1 10:05 1:30m 0.10s 0.10s -bash
user2 pts/0 192.168.1.10 11:30 0.00s 0.05s 0.02s sshd
Giải thích trường
- Thời gian hoạt động của hệ thống
- Số lượng người dùng đang đăng nhập
- Tải trung bình CPU
- Tên người dùng
- Terminal
- Máy chủ từ xa
- Thời gian đăng nhập
- Thời gian nhàn rỗi
- Sử dụng CPU
- Quá trình đang chạy
Địa chỉ IP trong trường FROM giúp xác minh đăng nhập SSH từ xa, làm cho nó hữu ích cho giám sát và quản lý bảo mật.
3.3 Hiển thị Người dùng Đang Đăng nhập Sử dụng users
Nếu bạn muốn một danh sách đơn giản chỉ hiển thị tên người dùng đã đăng nhập, lệnh users rất hữu ích.
Ví dụ lệnh
users
Kết quả ví dụ
user1 user2
Lệnh này là phiên bản đơn giản của who và chỉ hiển thị tên người dùng đã đăng nhập.
3.4 Xác định người dùng hiện tại bằng whoami
Để kiểm tra người dùng nào đang thực thi phiên hiện tại, hãy sử dụng lệnh whoami.
Ví dụ lệnh
whoami
Kết quả ví dụ
user1
Lệnh này chỉ đơn giản hiển thị tên người dùng của phiên hiện tại, giúp xác nhận ngữ cảnh thực thi.
3.5 Kiểm tra lịch sử đăng nhập bằng last
Lệnh last cho phép bạn xem lại lịch sử đăng nhập của người dùng.
Ví dụ lệnh
last
Kết quả ví dụ
user1 pts/0 192.168.1.10 Mon Feb 15 10:20 still logged in
user2 tty1 Mon Feb 15 09:30 - 10:00 (00:30)
root tty1 Sun Feb 14 22:15 - 23:45 (01:30)
- Tên người dùng
- Terminal đã sử dụng
- Địa chỉ IP từ xa
- Thời gian bắt đầu đăng nhập
- Thời gian đăng xuất (hoặc vẫn đang đăng nhập)
- Tổng thời lượng phiên
Lệnh này giúp quản trị viên giám sát các lần truy cập trước và phát hiện các đăng nhập đáng ngờ.
4. Cách kiểm tra thông tin chi tiết của người dùng
Ubuntu cung cấp một số lệnh để lấy thông tin chi tiết về người dùng đã đăng ký. Kiểm tra các chi tiết như UID, thành viên nhóm và shell đăng nhập giúp quản trị viên quản lý quyền một cách chính xác. Phần này giải thích các phương pháp sử dụng id, groups, finger và chage.
4.1 Kiểm tra UID, GID và các nhóm bằng id
Lệnh id hiển thị UID (User ID), GID (Group ID) và thành viên nhóm của người dùng.
Ví dụ lệnh
id user1
Kết quả ví dụ
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
uid→ Định danh người dùnggid→ Định danh nhóm chínhgroups→ Tất cả các nhóm mà người dùng thuộc
Kiểm tra thông tin người dùng hiện tại
id
4.2 Kiểm tra thành viên nhóm qua groups
Lệnh groups nhanh chóng liệt kê các nhóm mà người dùng thuộc.
Ví dụ lệnh
groups user1
Kết quả ví dụ
user1 : user1 sudo docker
groups hữu ích khi bạn chỉ muốn xem tên nhóm mà không cần các ID chi tiết.
4.3 Lấy chi tiết người dùng bằng finger
Lệnh finger cung cấp thông tin chi tiết về người dùng như họ tên đầy đủ, thư mục đăng nhập và loại shell.
Lệnh cài đặt
sudo apt install finger
Ví dụ lệnh
finger user1
Kết quả ví dụ
Login: user1 Name: User One
Directory: /home/user1 Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
- Login → Tên người dùng
- Name → Họ tên đầy đủ (tùy chọn)
- Directory → Thư mục home
- Shell → Shell mặc định
- Last login → Thời gian đăng nhập cuối cùng

4.4 Kiểm tra thời gian hết hạn mật khẩu bằng chage
Lệnh chage cho phép quản trị viên xem lại thời gian hết hạn mật khẩu và lần thay đổi mật khẩu cuối cùng.
Ví dụ lệnh
sudo chage -l user1
Kết quả ví dụ
Last password change : Jan 15, 2025
Password expires : Mar 15, 2025
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
- Thay đổi mật khẩu lần cuối → Ngày mật khẩu được thay đổi lần cuối
- Mật khẩu hết hạn → Ngày hết hạn mật khẩu
- Mật khẩu không hoạt động → Thời gian không hoạt động trước khi mật khẩu trở nên không hợp lệ
- Tài khoản hết hạn → Ngày hết hạn tài khoản
- Số ngày tối thiểu giữa các lần thay đổi mật khẩu
- Số ngày tối đa giữa các lần thay đổi mật khẩu
- Số ngày cảnh báo trước khi mật khẩu hết hạn
Quản trị viên có thể sử dụng thông tin này để thực thi chính sách mật khẩu và tăng cường bảo mật hệ thống.
5. Quản lý người dùng trong Ubuntu (Thêm, Xóa, Sửa)
Quản lý người dùng đúng cách cải thiện độ ổn định và bảo mật hệ thống. Ubuntu cung cấp một số lệnh quản trị như adduser, deluser, và usermod. Phần này giải thích cách thêm, xóa và sửa đổi người dùng.
5.1 Thêm người dùng
Ubuntu cho phép thêm người dùng mới bằng cách sử dụng lệnh adduser hoặc useradd.
5.1.1 Lệnh adduser (Được khuyến nghị)
Lệnh adduser cung cấp cách tương tác để thêm người dùng.
sudo adduser newuser
Ví dụ giao diện tương tác:
Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
- Tài khoản người dùng
- Nhóm riêng
- Thư mục home (
/home/newuser) - Mật khẩu đăng nhập
- Thông tin tài khoản cơ bản
5.1.2 Lệnh useradd (Nâng cao)
Lệnh useradd thân thiện với script và cung cấp kiểm soát chi tiết hơn nhưng không tự động thiết lập mọi thứ.
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
-m→ Tạo thư mục home-s /bin/bash→ Đặt shell đăng nhập
Mật khẩu phải được đặt riêng khi sử dụng lệnh này.
5.2 Xóa người dùng
Bạn có thể xóa người dùng bằng cách sử dụng deluser hoặc userdel.
5.2.1 Lệnh deluser (Được khuyến nghị)
Lệnh deluser xóa một tài khoản người dùng.
sudo deluser newuser
Xóa cả thư mục home
sudo deluser --remove-home newuser
Điều này sẽ xóa tài khoản và thư mục /home/newuser.
5.2.2 Lệnh userdel (Nâng cao)
Lệnh userdel cung cấp nhiều kiểm soát hơn.
sudo userdel newuser
sudo userdel -r newuser
5.3 Sửa đổi người dùng hiện có
Sử dụng lệnh usermod để sửa đổi thông tin người dùng hiện có.
5.3.1 Thay đổi tên người dùng
sudo usermod -l newname oldname
5.3.2 Thay đổi thư mục home
sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1
5.3.3 Sửa đổi thành viên nhóm
sudo usermod -aG sudo user1
groups user1
5.3.4 Thay đổi mật khẩu
sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
6. Các kịch bản thực tế cho quản lý người dùng
Quản lý người dùng trong Ubuntu không chỉ dừng lại ở việc liệt kê và sửa đổi tài khoản. Hiểu cách áp dụng các lệnh trong các tình huống thực tế là cần thiết để duy trì môi trường an toàn và hiệu quả. Phần này giới thiệu các trường hợp sử dụng phổ biến và cách giải quyết chúng.
6.1 Tìm kiếm người dùng phù hợp với tiêu chí cụ thể
6.1.1 Hiển thị người dùng có quyền quản trị (sudo)
Để liệt kê người dùng có quyền sudo, sử dụng lệnh getent để kiểm tra tệp /etc/group:
getent group sudo
Kết quả ví dụ
sudo:x:27:user1,user2
sudo:x:27:→ Thông tin nhómuser1,user2→ Người dùng thuộc nhóm sudo
6.1.2 Hiển thị người dùng có khả năng đăng nhập
Tệp /etc/passwd bao gồm các tài khoản hệ thống. Để trích xuất chỉ những người dùng có thể đăng nhập:
grep '/bin/bash' /etc/passwd
Ví dụ đầu ra
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
- Chỉ những người dùng có shell như
/bin/bashhoặc/bin/shđược bao gồm - Các tài khoản hệ thống sử dụng
/usr/sbin/nologinhoặc/bin/falsebị loại trừ
6.1.3 Hiển thị Người dùng Hệ thống (Tài khoản Không Đăng nhập)
grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd
Ví dụ đầu ra
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false
Điều này giúp quản trị viên xác định các tài khoản không nên bị xóa nhầm.
6.2 Dọn dẹp Định kỳ Các Người dùng Không Sử dụng
6.2.1 Hiển thị Thời gian Đăng nhập Cuối cùng của Tất cả Người dùng
lastlog
Ví dụ đầu ra
Username Port From Latest
root tty1 Mon Feb 12 14:02:08 +0000 2025
user1 pts/0 192.168.1.10 Mon Jan 15 10:30:12 +0000 2025
user2 pts/1 192.168.1.20 Never logged in
- Chưa từng đăng nhập → Người dùng chưa từng đăng nhập
sudo deluser user2 --remove-home
6.2.2 Xác minh Thay đổi Mật khẩu Cuối cùng
sudo chage -l user1
sudo passwd --expire user1
Lần đăng nhập tiếp theo của người dùng, việc đặt lại mật khẩu sẽ được yêu cầu vì lý do bảo mật.
6.3 Kiểm tra Người dùng Kết nối qua SSH
who | grep pts
Ví dụ đầu ra
user1 pts/0 192.168.1.10 11:30
Điều này giúp xác định người dùng từ xa và địa chỉ IP của họ.
6.4 Xuất Tất cả Thông tin Người dùng ra CSV
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv
Ví dụ users.csv
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
- Xuất tên người dùng, UID, GID và thư mục home
- Dữ liệu có thể được phân tích bằng Excel hoặc bảng tính
7. Câu hỏi Thường gặp
7.1 Tôi có thể chỉnh sửa /etc/passwd trực tiếp không?
Trả lời: Việc chỉnh sửa trực tiếp không được khuyến nghị. Các sửa đổi không đúng có thể ngăn chặn đăng nhập hoặc làm hỏng hệ thống.
Phương pháp an toàn hơn:
sudo vipw
7.2 Sự khác biệt Giữa Lệnh who và users
| Command | Description |
|---|---|
who | Displays detailed login information |
users | Displays only usernames of logged-in users |
7.3 Cách Kiểm tra Lịch sử Đăng nhập cho Người dùng Cụ thể
last user1
7.4 Cách Thay đổi Mật khẩu của Người dùng
sudo passwd user1
7.5 Cách Tạm thời Vô hiệu hóa Người dùng
sudo usermod -L user1
sudo usermod -U user1
7.6 Thêm Người dùng vào Nhóm sudo
sudo usermod -aG sudo user1
7.7 Thay đổi Thư mục Home của Người dùng
sudo usermod -d /new/home/path -m user1
7.8 Xóa Hoàn toàn Người dùng và Dữ liệu của Họ
sudo deluser --remove-home user1
hoặc
sudo userdel -r user1
7.9 Kiểm tra Hoạt động Chi tiết của Người dùng Đã Đăng nhập
w
- Người dùng đã đăng nhập
- Địa chỉ IP từ xa
- Các tiến trình hiện tại
- Tải hệ thống
Điều này cho phép quản trị viên giám sát việc sử dụng và phát hiện truy cập không được phép.


