Ubuntu 22.04: Thêm user và cấp quyền sudo
Hướng dẫn Linux Server · cập nhật 12/08/2026
Để thêm user trên Ubuntu 22.04, bạn chạy sudo adduser tên_user, trả lời vài câu hỏi, rồi thêm user vào nhóm sudo nếu cần quyền quản trị. Việc này mất chưa tới hai phút.
Ubuntu 22.04 cài xong chỉ có một tài khoản, chính là tài khoản bạn đặt trong quá trình cài đặt, và nó đã nằm sẵn trong nhóm sudo. Dùng chung một tài khoản cho nhiều người là mất dấu vết: log hệ thống ghi cùng một tên, không biết ai đã chạy lệnh nào. Mỗi người một tài khoản riêng thì /var/log/auth.log truy được đúng người.
- Tạo user mới bằng
adduser. - Thêm vào nhóm
sudonếu user cần quyền quản trị. - Kiểm tra bằng cách đăng nhập thử và chạy một lệnh cần quyền root.
- Xóa tài khoản cùng thư mục cá nhân khi không dùng nữa.
Đã kiểm trên Ubuntu Server 22.04 LTS. Các lệnh giống nhau trên Ubuntu 20.04 và 24.04. Trên Ubuntu 24.04, adduser đã là script Perl viết lại nên phần chữ hiển thị có khác đôi chút, còn cú pháp không đổi.
Nên dùng adduser hay useradd trên Ubuntu
Ubuntu có hai lệnh tạo user và chúng khác nhau đáng kể. Lệnh adduser là script bậc cao: nó tự tạo thư mục cá nhân, chép file mẫu từ /etc/skel, hỏi mật khẩu và thông tin liên hệ. Lệnh useradd là lệnh gốc, chỉ ghi một dòng vào /etc/passwd và không làm gì thêm.
| Việc | adduser | useradd |
|---|---|---|
| Tạo thư mục /home | Tự động | Chỉ khi thêm cờ -m |
| Hỏi và đặt mật khẩu | Có | Không, phải chạy passwd riêng |
| Chép file mẫu từ /etc/skel | Có | Chỉ khi có -m |
| Đặt shell mặc định | Bash | /bin/sh nếu không chỉ định |
| Chạy được trong script tự động | Cần thêm --disabled-password | Có, không hỏi gì |
| Nên dùng khi | Thêm người dùng thật, gõ tay | Tạo tài khoản dịch vụ trong script |
Tạo tài khoản bằng useradd mà quên cờ -m là lỗi hay gặp: đăng nhập vào được nhưng shell báo No directory, logging in with HOME=/ và mọi file cấu hình cá nhân đều không lưu được.
Các bước thêm user mới trên Ubuntu 22.04
Ba bước dưới đây chạy bằng tài khoản có quyền sudo, trực tiếp trên máy hoặc qua SSH. Ví dụ tạo tài khoản tên bizmacvps, bạn thay bằng tên mình cần.
1. Tạo tài khoản mới
ubuntu@localhost:~$ sudo adduser bizmacvps
[sudo] password for ubuntu: # mật khẩu của user hiện tại
Adding user `bizmacvps' ...
Adding new group `bizmacvps' (1001) ...
Adding new user `bizmacvps' (1001) with group `bizmacvps' ...
Creating home directory `/home/bizmacvps' ...
Copying files from `/etc/skel' ...
New password: # đặt mật khẩu của user mới
Retype new password: # nhập lại mật khẩu của user mới
passwd: password updated successfully
Changing the user information for bizmacvps
Enter the new value, or press ENTER for the default # thông tin liên hệ, để trống được
Full Name []: bizmacvps
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
ubuntu@localhost:~$
Lệnh tạo luôn một nhóm cùng tên, ở đây là nhóm bizmacvps với ID 1001. Đây là cách Ubuntu đặt mặc định để file của mỗi người không lẫn quyền với người khác. Bốn dòng thông tin liên hệ chỉ để ghi chú, bấm Enter bỏ qua đều được.
2. Cấp quyền quản trị
User vừa tạo chưa chạy được lệnh sudo. Muốn cấp quyền thì thêm vào nhóm sudo:
ubuntu@localhost:~$ sudo usermod -aG sudo bizmacvps
Cờ -a nghĩa là thêm vào, phải luôn đi kèm -G. Quên chữ a thì usermod -G sudo bizmacvps sẽ thay thế toàn bộ nhóm phụ đang có bằng mỗi nhóm sudo, làm mất quyền truy cập các nhóm khác như docker hay www-data.
Chỉ cấp quyền này cho người thật sự cần. Tài khoản chạy ứng dụng thì để nguyên, không thêm vào nhóm sudo.
3. Đăng nhập thử và kiểm tra quyền
ubuntu@localhost:~$ su - bizmacvps
Password:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
bizmacvps@localhost:~$
Chạy một lệnh cần quyền root để xác nhận nhóm sudo đã ăn:
bizmacvps@localhost:~$ sudo ls -l /root
[sudo] password for bizmacvps:
total 4
drwx------ 3 root root 4096 Apr 24 08:23 snap
Xong đúng khi lệnh in ra nội dung thư mục /root. Nếu hiện dòng bizmacvps is not in the sudoers file thì bước 2 chưa có tác dụng, thoát ra bằng exit rồi đăng nhập lại, vì nhóm mới chỉ được nạp khi bắt đầu phiên mới.
Cách xóa user và thư mục cá nhân
Lệnh deluser xóa tài khoản nhưng giữ lại thư mục cá nhân trong /home. Đây là chủ ý để không mất dữ liệu, nhưng cũng là chỗ hay bị quên, khiến ổ đĩa đầy dần bởi thư mục của những người đã nghỉ từ lâu.
Xóa tài khoản, giữ nguyên dữ liệu:
ubuntu@localhost:~$ sudo deluser bizmacvps
Xóa cả tài khoản lẫn thư mục cá nhân:
ubuntu@localhost:~$ sudo deluser bizmacvps --remove-home
Sao lưu trước khi dùng cờ --remove-home. Lệnh không hỏi lại lần nào và dữ liệu không khôi phục được. Nếu đã lỡ xóa tài khoản mà quên cờ đó, dọn thủ công sau cũng được:
ubuntu@localhost:~$ sudo rm -rf /home/bizmacvps
Lỗi hay gặp khi thêm và xóa user
Ba tình huống dưới đây chiếm phần lớn các ca thao tác user thất bại. Mỗi tình huống có thông báo riêng nên đọc dòng lỗi là biết rơi vào ca nào.
Không xóa được vì tài khoản đang có tiến trình chạy. Thông báo dạng:
ubuntu@localhost:~$ sudo deluser bizmacvps
Removing user `bizmacvps' ...
Warning: group `bizmacvps' has no more members.
userdel: user bizmacvps is currently used by process 1881
/usr/sbin/deluser: `/sbin/userdel bizmacvps' returned error code 8. Exiting.
Số 1881 là mã tiến trình đang giữ tài khoản, thường là phiên SSH hoặc su của chính tài khoản đó. Kết thúc nó rồi xóa lại:
ubuntu@localhost:~$ sudo kill -9 1881
Killed
Muốn xem hết các tiến trình của một tài khoản trước khi kết thúc, chạy ps -u bizmacvps hoặc pkill -u bizmacvps để dừng toàn bộ một lượt.
Báo tài khoản đã tồn tại. Dòng adduser: The user 'bizmacvps' already exists nghĩa là tên đã có trong hệ thống, có thể là tài khoản dịch vụ do một gói phần mềm tạo ra. Chạy id bizmacvps để xem nó là ai trước khi quyết định đổi tên hay đặt lại mật khẩu.
User mới không đăng nhập được qua SSH. Nhiều máy chủ đặt PasswordAuthentication no trong /etc/ssh/sshd_config, chỉ cho đăng nhập bằng khóa. Chép khóa công khai vào /home/bizmacvps/.ssh/authorized_keys, đặt quyền thư mục 700 và quyền file 600, chủ sở hữu là chính tài khoản đó.
Cách kiểm tra danh sách user trên hệ thống
Hai chỗ cho biết hệ thống đang có những tài khoản nào. File /etc/passwd liệt kê mọi tài khoản gồm cả tài khoản dịch vụ, còn thư mục /home chỉ chứa những tài khoản có thư mục cá nhân, tức là người dùng thật.
ubuntu@localhost:~$ ls -l /home
total 4
drwxr-x--- 4 ubuntu ubuntu 4096 Apr 27 14:32 ubuntu
Xem toàn bộ tài khoản trong file passwd:
ubuntu@localhost:~$ cat /etc/passwd
File này dài vì chứa cả các tài khoản hệ thống như daemon, www-data, systemd-network. Lọc ra người dùng thật bằng cách chỉ lấy các dòng có ID từ 1000 trở lên:
ubuntu@localhost:~$ awk -F: '$3 >= 1000 && $3 < 65534 {print $1, $3, $6}' /etc/passwd
ubuntu 1000 /home/ubuntu
bizmacvps 1001 /home/bizmacvps
Xem ai đang có quyền quản trị:
ubuntu@localhost:~$ getent group sudo
sudo:x:27:ubuntu,bizmacvps
Việc nên làm sau khi tạo tài khoản mới
Rà lại nhóm sudo mỗi khi có người rời dự án. Tài khoản còn quyền quản trị mà không còn người dùng là lỗ hổng lặng lẽ nhất trên máy chủ, vì nó không gây triệu chứng gì cho tới lúc bị lợi dụng.
Nếu bạn cần một tài khoản chạy được lệnh root trực tiếp thay vì qua sudo, xem cách bật tài khoản root trên Ubuntu 22.04. Trên máy chủ dùng chung, cách an toàn hơn là giữ root khóa và cấp quyền qua nhóm sudo, vì mọi lệnh chạy bằng sudo đều được ghi lại trong /var/log/auth.log kèm tên người chạy.