Cách chuyển người dùng trên Ubuntu: su, sudo và nâng quyền
- 9 tháng 11, 2025
- 22:15
- Bởi Adrien Roche
- Cập nhật 7 tháng 10, 2026
- Hướng dẫn

Giới thiệu
Quản lý nhiều tài khoản người dùng và chuyển đổi giữa chúng là một phần cơ bản của việc quản trị hệ thống Linux. Ubuntu, bản phân phối Linux phổ biến nhất thế giới, cung cấp nhiều cách để thay đổi người dùng đang hoạt động, mỗi cách có trường hợp sử dụng và tác động bảo mật riêng. Hiểu rõ các cơ chế chuyển đổi này giúp bạn làm việc hiệu quả trên hệ thống nhiều người dùng, thực hiện các thao tác quản trị an toàn và quản lý quyền hạn đúng cách.
Hướng dẫn đầy đủ này trình bày mọi phương pháp chuyển người dùng trên Ubuntu, từ các cách cơ bản trên dòng lệnh đến các kỹ thuật nâng quyền nâng cao. Dù bạn quản lý hệ thống dùng chung, tác vụ quản trị hay môi trường nhiều khách thuê, thành thạo việc chuyển người dùng là điều thiết yếu để sử dụng Ubuntu thành thạo.
Tìm hiểu cách Ubuntu quản lý người dùng
Các loại tài khoản người dùng
Người dùng thường: tài khoản tiêu chuẩn với quyền hạn giới hạn, quyền truy cập tệp bị hạn chế và không thể thay đổi cấu hình hệ thống.
Người dùng root: siêu người dùng (superuser) có quyền truy cập không giới hạn vào mọi tài nguyên hệ thống, có thể thực hiện bất kỳ thao tác nào, kể cả những thao tác nguy hiểm.
Người dùng hệ thống: tài khoản đặc biệt dành cho các dịch vụ hệ thống (www-data cho máy chủ web, mysql cho cơ sở dữ liệu).
Người dùng sudo: tài khoản thường được ủy quyền siêu người dùng thông qua cấu hình sudo.
Nâng quyền
Vì sao cần nâng quyền?: Hầu hết tác vụ quản trị cần quyền cao hơn. Thay vì đăng nhập bằng root (nguy hiểm), Ubuntu dùng cơ chế nâng quyền để cấp tạm thời những quyền cao cụ thể.
Nguyên tắc: thực hiện thao tác với quyền tối thiểu cần thiết; giảm thiểu thời gian giữ quyền cao; ghi nhật ký kiểm tra mọi thao tác đặc quyền.
Lệnh su (Switch User)
Cú pháp cơ bản
su [OPTIONS] [USERNAME]
Chuyển sang người dùng khácsu john
Hỏi mật khẩu của người dùng đích, rồi chuyển sang tài khoản đó. Môi trường vẫn là môi trường gốc của người dùng ban đầu (không khuyến nghị).Chuyển người dùng với môi trường mới
su - john
Dấu gạch ngang (-) nạp toàn bộ môi trường của người dùng đích, bao gồm:
-
Biến HOME trỏ tới thư mục home của người dùng
-
Biến PATH với các đường dẫn lệnh của người dùng
-
Các tệp cấu hình shell (.bashrc, .profile)
-
Thư mục làm việc chuyển về thư mục home của người dùng
Thực hành tốt nhất: luôn dùng su - để đảm bảo môi trường được cấu hình đúng.
Chuyển sang người dùng root
su -
Chuyển sang người dùng root với toàn bộ môi trường của root. Hỏi mật khẩu root.
Các tùy chọn của lệnh su
-c (Command): chạy một lệnh duy nhất dưới tên người dùng khác mà không mở phiên đầy đủ
su - john -c "ls -la /home/john"-l (Login): giống hệt việc dùng dấu gạch ngang; tạo login shell
su --login john
-s (Shell): chỉ định shell cho phiên
su - john -s /bin/zsh
-m (Preserve environment): giữ môi trường hiện tại khi chuyển người dùng
su -m johnLệnh sudo (Superuser Do)
Cú pháp cơ bản
sudo [OPTIONS] COMMAND
Chạy lệnh với quyền cao
sudo apt-get update # Update package lists (requires root)sudo systemctl restart ssh # Restart SSH servicesudo reboot # Reboot system
Mở shell root tương tác
sudo -i
Mở một shell root tương tác mà không cần đăng nhập bằng root.
Chạy lệnh dưới tên người dùng khác
sudo -u username commandChạy lệnh với quyền của người dùng được chỉ định (không chỉ root).
Các tùy chọn của lệnh sudo
-l (List): hiển thị các lệnh được phép
sudo -l
-k (Invalidate): xóa thông tin xác thực sudo (lần dùng sau phải nhập mật khẩu)
sudo -k
-p (Prompt): tùy chỉnh lời nhắc nhập mật khẩu
sudo -p "Enter admin password: " apt-get update-v (Validate): gia hạn thời gian chờ của sudosudo -v
-H (Home): đặt HOME thành thư mục home của người dùng đích
sudo -H -u username commandsu – và su: những khác biệt chính
| Đặc điểm | su | su – |
|---|---|---|
| Môi trường | Giữ môi trường của shell cha | Nạp môi trường của người dùng đích |
| Biến HOME | Vẫn là thư mục home của người dùng ban đầu | Đổi thành thư mục home của người dùng đích |
| Biến PATH | Có thể chứa đường dẫn của người dùng ban đầu | Chứa các đường dẫn chuẩn của người dùng đích |
| Cấu hình shell | Không nạp .bashrc hay .profile | Nạp ~/.bashrc, ~/.profile |
| Thư mục làm việc | Giữ nguyên thư mục hiện tại | Chuyển về thư mục home của người dùng |
| Khuyến nghị | Hiếm khi; dễ gây nhầm lẫn | Luôn dùng khi chuyển người dùng |
| Mức độ rủi ro | Cao hơn (môi trường bị trộn lẫn) | Thấp hơn (môi trường sạch) |
Ví dụ về sự khác biệt
# Using su (BAD)
$ su johnPassword:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory# Using su - (GOOD)
$ su - johnPassword:
$ echo $HOME
/home/john # Correct home directory$ pwd
/home/john # Correct directoryChuyển sang người dùng root
Dùng su
su -
Password: (enter root password)
root@hostname:~#Dùng sudo
sudo -i[sudo] password for john: (enter john's password)
root@hostname:~#Khác biệt giữa su – và sudo -i
| Khía cạnh | su – | sudo -i |
|---|---|---|
| Mật khẩu yêu cầu | Mật khẩu root | Mật khẩu của người dùng hiện tại |
| Ghi nhật ký | Không được ghi lại | Được sudo ghi lại |
| Dấu vết kiểm tra | Tối thiểu | Dấu vết kiểm tra đầy đủ |
| Bảo mật | Thấp hơn (phải chia sẻ mật khẩu root) | Cao hơn (trách nhiệm từng cá nhân) |
| Cấu hình doanh nghiệp điển hình | Không khuyến khích | Khuyến nghị |
Lưu ý bảo mật: các hệ thống Ubuntu hiện đại thường không cần mật khẩu root; thay vào đó, những người dùng sudo được cấp quyền thông qua cấu hình sudo.
Chạy lệnh dưới tên người dùng khác
Chạy một lệnh
sudo -u apache /usr/bin/apache2ctl restartsu - testuser -c "python /home/testuser/script.py"
Chạy nhiều lệnh
sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"
Chạy lệnh mà vẫn giữ thư mục hiện tại
sudo -u john pwd # Prints john's home (working directory changed)sudo -u john -C pwd # Prints current directory (with -C flag)Đổi mật khẩu người dùng
Đổi mật khẩu của chính bạn
passwdHỏi mật khẩu hiện tại, rồi đến mật khẩu mới (hai lần để xác nhận).
Đổi mật khẩu của người dùng khác (cần quyền root)
sudo passwd john
Không cần mật khẩu hiện tại; chỉ hỏi mật khẩu mới (quyền root).
Đặt chính sách hết hạn
sudo chage -l john # View password aging infosudo chage -M 90 john # Force password change every 90 dayssudo chage -d 0 john # Force password change on next login
Quyền người dùng và nhóm
Xem các nhóm của người dùng
groups john # Show groups current user belongs togroups # Show own groupsid john # Detailed UID, GID, groupsThêm người dùng vào nhóm
sudo usermod -aG groupname username
Ví dụ: thêm người dùng vào nhóm sudo
sudo usermod -aG sudo john
Xóa người dùng khỏi nhóm
sudo deluser username groupname
Tạo người dùng mới
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Tùy chọn:
-
-m: tạo thư mục home -
-s: chỉ định shell -
-G: thêm vào các nhóm
Ví dụ thực tế
Ví dụ 1: tác vụ quản trị có nâng quyền
#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get updatesudo apt-get upgrade -y
echo "System update complete"
Ví dụ 2: chạy các tác vụ của máy chủ web
# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/htmlVí dụ 3: bảo trì cơ sở dữ liệu
# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"
Ví dụ 4: quản lý người dùng hàng loạt
#!/bin/bash# Create multiple usersfor user in user1 user2 user3; dosudo useradd -m -s /bin/bash "$user"echo "Please set password for $user:"sudo passwd "$user"done# Add all to sudo groupfor user in user1 user2 user3; dosudo usermod -aG sudo "$user"doneCác vấn đề về bảo mật
Bảo mật mật khẩu
Mật khẩu root: giữ an toàn; không bao giờ chia sẻ với người không đáng tin cậy
Cấu hình sudo: ủy quyền những đặc quyền cụ thể thay vì toàn quyền root
Thời hạn mật khẩu: bắt buộc đổi mật khẩu định kỳ
# Configure password agingsudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warningKiểm tra và ghi nhật ký
Mọi lệnh sudo đều được ghi lại:
sudo grep COMMAND /var/log/auth.log
Xem lịch sử sudo chi tiết:
sudo journalctl _COMM=sudoGiới hạn việc nâng quyền
Cấu hình tệp sudoers một cách an toàn:
sudo visudo # Always use visudo for editing sudoers
Ví dụ cấu hình sudoers (giới hạn những gì john được chạy):
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxjohn ALL=(ALL) /usr/bin/apt-getThời gian chờ của phiên
# Set sudo timeoutsudo -v # Extend timeoutsudo -k # Invalidate sudo credentialsVì sao hạ tầng từ xa cần chuyển người dùng
Hạ tầng RDP và SSH thường đòi hỏi:
-
Nhiều người dùng quản trị với các mức quyền khác nhau
-
Tài khoản dịch vụ cho các tiến trình tự động
-
Dấu vết kiểm tra để tuân thủ quy định (nhật ký sudo)
-
Nâng quyền cho các tác vụ quản trị
Quản lý hạ tầng với RDP.Monster
Quản lý hệ thống Ubuntu từ xa đòi hỏi quyền truy cập ổn định và an toàn:
Truy cập SSH để thực thi lệnh
-
Thực thi các lệnh chuyển người dùng từ xa
-
Tự động hóa việc quản trị bằng script
-
Toàn quyền kiểm soát việc quản lý người dùng
Hỗ trợ nhiều tài khoản người dùng
-
Tạo người dùng quản trị
-
Ủy quyền hợp lý
-
Duy trì dấu vết kiểm tra
Quản trị từ xa an toàn
-
Mã hóa SSH cho mọi thao tác chuyển người dùng
-
Xác thực bằng khóa cho truy cập qua chương trình
-
Ghi nhật ký và giám sát toàn diện
Triển khai hạ tầng VPS Ubuntu với khả năng quản lý người dùng an toàn cùng RDP.Monster
Kết luận
Chuyển người dùng và nâng quyền là những kỹ năng quản trị Ubuntu cơ bản. Hiểu rõ khác biệt giữa su, sudo và cách quản lý mật khẩu giúp bạn quản trị hiệu quả hệ thống nhiều người dùng, đồng thời giữ an toàn nhờ ủy quyền hợp lý và dấu vết kiểm tra.
Các thực hành tốt nhất trên Ubuntu hiện đại ưu tiên rõ ràng sudo hơn su để nâng quyền, vì sudo bảo đảm trách nhiệm và ghi nhật ký đầy đủ trong khi hạn chế tối đa việc chia sẻ mật khẩu root. Cấu hình sudoers đúng cách, ủy quyền những đặc quyền cụ thể, mang lại sự cân bằng tốt giữa tính tiện dụng và kiểm soát truy cập.
Bạn quản lý hạ tầng Ubuntu phức tạp, cần quản lý người dùng tinh vi và quyền truy cập quản trị an toàn? RDP.Monster cung cấp các giải pháp VPS Ubuntu qua SSH giúp quản lý người dùng và nâng quyền liền mạch trên toàn bộ hạ tầng của bạn. Triển khai hệ thống Ubuntu ngay hôm nay.
Lưu trữ VPS Ubuntu mạnh mẽ
Trải nghiệm toàn quyền kiểm soát và hiệu năng vượt trội với VPS Linux của chúng tôi. Lý tưởng để lưu trữ ứng dụng, quản lý máy chủ và tối ưu quy trình làm việc của bạn.
Chưa chắc mình đang chạy bản phân phối hay phiên bản nào? Hãy kiểm tra phiên bản hệ điều hành từ dòng lệnh trước.
Máy chủ chuyên dụng hiệu năng cao
Cần quyền kiểm soát và sức mạnh tối đa? Máy chủ chuyên dụng của chúng tôi mang lại hiệu năng vượt trội cho các tác vụ nặng.
Câu hỏi thường gặp
Nên dùng su hay sudo?
sudo bảo đảm trách nhiệm, yêu cầu mật khẩu riêng của từng người và cung cấp dấu vết kiểm tra đầy đủ.
Vì sao lệnh su của tôi không hoạt động?
Hãy thử sudo -u username nếu bạn có quyền sudo.
Có thể chuyển người dùng mà không cần mật khẩu không?
Với su, bạn luôn cần mật khẩu của người dùng đích.
su - và su --login khác nhau thế nào?
Quyền sudo kéo dài bao lâu?
Có thể chạy nhiều lệnh dưới tên người dùng khác không?
Làm sao xem các quyền sudo của tôi?
Vì sao PATH thay đổi khi chuyển người dùng?
Adrien Roche, Biên tập viên hạ tầng & hosting
Kỹ sư hệ thống với hơn 10 năm vận hành các hệ thống Windows Server và Linux. Adrien phụ trách tài liệu hạ tầng của rdp.monster và viết các hướng dẫn về RDP, hosting VPS, quản trị máy chủ, mạng và công cụ bảo vệ quyền riêng tư.
Bài viết liên quan




