RDP Monster

Cách chuyển người dùng trên Ubuntu: su, sudo và nâng quyền

Cách chuyển người dùng trên Ubuntu: su, sudo và nâng quyề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ác
 
su 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 john
 

Lệ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 service
sudo 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 command

Chạ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 sudo
sudo -v

 

-H (Home): đặt HOME thành thư mục home của người dùng đích

sudo -H -u username command
 
 

su – 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 john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
 
# Using su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory
 
 

Chuyể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 restart
su - 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

passwd

Hỏ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 info
sudo chage -M 90 john # Force password change every 90 days
sudo 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 to
groups # Show own groups
id john # Detailed UID, GID, groups

 

Thê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 update
sudo 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/html
 

Ví 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 users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
     echo "Please set password for $user:"
sudo passwd "$user"
done
 
# Add all to sudo group
for user in user1 user2 user3; do
    sudo usermod -aG sudo "$user"
done
 
 

Cá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 aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning
 

Kiể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=sudo
 

Giớ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 nginx
john ALL=(ALL) /usr/bin/apt-get

 

Thời gian chờ của phiên

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials
 
 

Vì 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

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 được ưu tiên trên các hệ thống hiện đại.

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?

Có thể bạn không biết mật khẩu của người dùng đích.

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?

Có, với sudo: cấu hình sudoers với NOPASSWD.

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?

Chúng giống hệt nhau; cả hai đều tạo login shell và nạp đầy đủ môi trường.

Quyền sudo kéo dài bao lâu?

Mặc định là 15 phút. Có thể tùy chỉnh trong cấu hình sudoers.

Có thể chạy nhiều lệnh dưới tên người dùng khác không?

Có: sudo bash -c "command1 && command2 && command3"

Làm sao xem các quyền sudo của tôi?

Chạy sudo -l để hiển thị các lệnh được phép.

Vì sao PATH thay đổi khi chuyển người dùng?

Dùng su - để nạp toàn bộ môi trường của người dùng đích, bao gồm cả PATH đú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ư.

Đăng ký chương trình đại lý của chúng tôi

Thông tin của bạn

Nếu bạn có bất kỳ câu hỏi nào, liên hệ với chúng tôi tại đây !
Họ và tên(Bắt buộc)
Nhập địa chỉ email của bạn, bạn cần có tài khoản trên manager.rdp.monster !

Công ty của bạn

Nhập địa chỉ website của bạn nếu có
Giải thích ngắn gọn cách bạn sẽ bán dịch vụ cho khách hàng. Ví dụ: trò chuyện với mọi người trên các diễn đàn.

Đến quái vật cũng mê cookie!

Chúng tôi sử dụng cookie để cải thiện trải nghiệm duyệt web của bạn, hiển thị quảng cáo hoặc nội dung phù hợp và phân tích lưu lượng truy cập. Khi nhấn "Chấp nhận", bạn đồng ý với việc chúng tôi sử dụng cookie.