Liên hệProfile
Danh mục

Mục Lục

    Cách dùng lệnh su Linux để chuyển quyền người dùng nhanh chóng

    Nguyễn Hưng

    Ngày đăng:

    09/02/2026

    Cập nhật lần cuối:

    09/02/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    09/02/2026

    Cập nhật lần cuối:

    09/02/2026

    Mục lục

    Lệnh su Linux là công cụ cho phép chuyển từ user hiện tại sang user khác để thực hiện các tác vụ quản trị với quyền cao hơn mà không cần đăng xuất. Công cụ này thường được dùng khi cấu hình hệ thống, xử lý sự cố hoặc làm việc với các tác vụ yêu cầu quyền root. Trong bài viết này, mình sẽ cùng bạn tìm hiểu tổng quan về cách dùng lệnh su, cùng các lỗi thường gặp để sử dụng lệnh này an toàn và hiệu quả trên Linux.

    Những điểm chính

    • Khái niệm: Hiểu rõ lệnh su là công cụ dùng để chuyển đổi người dùng, giúp bạn nhanh chóng có được quyền hạn của tài khoản root hoặc một user khác mà không cần đăng xuất.
    • Lợi ích khi sử dụng lệnh su: Nắm được các lợi ích chính của su như quản trị hệ thống thuận tiện hơn, thao tác nhanh với quyền cao và kiểm soát môi trường làm việc hiệu quả.
    • Điều kiện cần để dùng lệnh su Linux: Biết các yêu cầu cần thiết để sử dụng su, bao gồm quyền truy cập, mật khẩu user đích và trạng thái tài khoản root.
    • Cú pháp cơ bản của lệnh su: Ghi nhớ cú pháp chuẩn của lệnh su và cách các tham số ảnh hưởng đến phiên làm việc sau khi chuyển user.
    • Cách sử dụng lệnh su cơ bản: Hiểu cách dùng su trong các tình huống phổ biến như chuyển sang root hoặc user khác để thực thi tác vụ quản trị.
    • Phân biệt lệnh su và sudo: Nhận biết rõ sự khác nhau giữa susudo về cơ chế cấp quyền, phạm vi sử dụng và mức độ an toàn.
    • Một số lỗi thường gặp khi dùng lệnh su: Biết các lỗi phổ biến khi sử dụng su, nguyên nhân gây lỗi và hướng xử lý cơ bản.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến su Linux.

    Lệnh su trong Linux là gì?

    Lệnh su trong Linux (substitute user” / “switch user) là lệnh dùng để chuyển từ user hiện tại sang một tài khoản người dùng khác, thường là chuyển tạm thời sang root hoặc một user có quyền cao hơn để thực hiện các tác vụ quản trị. Khi gọi su [tên_user], hệ thống sẽ yêu cầu mật khẩu của user đích, sau khi xác thực thành công sẽ khởi tạo một shell dưới danh tính của user đó. Nó cho phép bạn chạy lệnh, truy cập thư mục home và sử dụng quyền hạn của tài khoản mới mà không cần đăng xuất phiên làm việc hiện tại.

    Lệnh su trong Linux là lệnh dùng để chuyển từ user hiện tại sang một tài khoản người dùng khác
    Lệnh su trong Linux là lệnh dùng để chuyển từ user hiện tại sang một tài khoản người dùng khác

    Lợi ích khi sử dụng lệnh su

    Lệnh su mang lại nhiều lợi ích trong quản trị hệ thống Linux khi cần chuyển đổi giữa các tài khoản và làm việc với quyền cao hơn một cách linh hoạt. Cụ thể như sau:

    • Truy cập quyền cao hơn khi cần thao tác hệ thống: Su cho phép chuyển tạm thời sang tài khoản root hoặc một user khác có nhiều đặc quyền hơn, từ đó thực hiện được các tác vụ như cài đặt phần mềm, chỉnh sửa cấu hình, quản lý dịch vụ hay thay đổi quyền file mà user thường không đủ quyền.
    • Chuyển user mà không cần đăng xuất phiên làm việc: Thay vì thoát khỏi session hiện tại rồi đăng nhập lại bằng user khác, bạn có thể dùng su để mở một shell mới dưới danh tính user đích, giúp tiết kiệm thời gian và giữ nguyên ngữ cảnh làm việc đang dở dang.
    • Quản lý linh hoạt nhiều tài khoản trên cùng hệ thống: Lệnh su hỗ trợ chuyển qua lại giữa nhiều user (ví dụ account vận hành, account ứng dụng, account root) phục vụ việc kiểm tra, xử lý lỗi hoặc chạy lệnh trong đúng môi trường người dùng tương ứng.
    • Lựa chọn giữ hoặc thay đổi môi trường làm việc: Thông qua các biến thể như su user, su - user hoặc su -, quản trị viên có thể quyết định giữ lại môi trường hiện tại hoặc nạp đầy đủ môi trường đăng nhập của user mới, phù hợp cho từng tình huống cấu hình và xử lý hệ thống khác nhau.
    Lệnh su mang lại nhiều lợi ích trong quản trị hệ thống Linux khi cần chuyển đổi giữa các tài khoản
    Lệnh su mang lại nhiều lợi ích trong quản trị hệ thống Linux khi cần chuyển đổi giữa các tài khoản

    Điều kiện cần để dùng lệnh su Linux

    Để sử dụng lệnh su trên Linux một cách ổn định và đúng quyền, hệ thống và tài khoản đang đăng nhập cần đáp ứng một số điều kiện cơ bản sau:

    • Đang làm việc trên hệ điều hành Linux hoặc môi trường tương thích: Lệnh su được hỗ trợ trên các bản phân phối Linux và Unix-like (Ubuntu, Debian, CentOS, AlmaLinux, Rocky Linux,…) có sẵn terminal và shell để nhập lệnh.
    • Có tài khoản đích và biết mật khẩu của user cần chuyển sang: Để chuyển sang root hoặc một user khác, bạn phải có tài khoản đó trên hệ thống và nhập đúng mật khẩu của tài khoản đích, vì su xác thực dựa trên mật khẩu user mục tiêu chứ không dùng mật khẩu user hiện tại.
    • Tài khoản hiện tại được phép sử dụng su: Một số hệ thống có thể giới hạn người dùng được phép dùng su thông qua cấu hình PAM hoặc nhóm đặc biệt, nếu bị hạn chế bạn có thể nhận lỗi “Permission denied” dù nhập đúng mật khẩu.
    • Có quyền truy cập terminal hoặc phiên shell hợp lệ: Người dùng cần đăng nhập được vào môi trường dòng lệnh (local console, SSH, terminal emulator) để gõ lệnh su và theo dõi thông báo yêu cầu mật khẩu, kết quả chuyển đổi user.
    • Hiểu bối cảnh quyền hạn khi chuyển user: Trước khi dùng su, nên nắm rõ việc chuyển sang root hoặc user khác đồng nghĩa với việc kế thừa toàn bộ quyền và phạm vi thao tác của tài khoản đó, vì vậy cần cân nhắc kỹ khi dùng su trong môi trường sản xuất hoặc server nhiều người dùng.
    Điều kiện cần để dùng lệnh su Linux
    Điều kiện cần để dùng lệnh su Linux

    Cú pháp cơ bản của lệnh su

    Ở mức cơ bản, lệnh su có cú pháp rất ngắn gọn, cho phép bạn chuyển sang tài khoản khác chỉ với một dòng lệnh duy nhất. Cú pháp chung:

    su [tên_user]

    Trong đó, tên_user là tên tài khoản mà bạn muốn chuyển sang. Nếu bỏ trống phần này và chỉ gõ su, hệ thống sẽ mặc định chuyển phiên làm việc sang user root (sau khi bạn nhập đúng mật khẩu của root). Một số tùy chọn thường gặp của lệnh su Linux:

    Cú phápÝ nghĩa
    su userChuyển sang user khác nhưng giữ lại phần lớn biến môi trường hiện tại.
    su - userChuyển sang user khác với môi trường đăng nhập đầy đủ (login shell).
    su -Tương đương đăng nhập trực tiếp vào root với môi trường login shell đầy đủ.

    Cách sử dụng lệnh su cơ bản

    Bước 1: Chuyển sang user root

    Ở bước đầu tiên, bạn có thể chuyển từ user thường sang tài khoản root để thực hiện các thao tác quản trị hệ thống cần quyền cao hơn bằng lệnh:

    su
    Chuyển sang user root
    Chuyển sang user root

    Sau khi nhập lệnh, hệ thống sẽ yêu cầu mật khẩu của user root. Nếu mật khẩu được nhập chính xác và tài khoản root đang được phép đăng nhập, shell sẽ chuyển sang chạy dưới quyền root, dấu nhắc lệnh (prompt) cũng thay đổi tương ứng với user mới.

    Bước 2: Chuyển sang một user khác

    Bạn cũng có thể dùng lệnh su để chuyển sang bất kỳ user nào khác trên hệ thống khi có mật khẩu của tài khoản đó, thường dùng khi cần kiểm tra cấu hình hoặc chạy ứng dụng trong đúng môi trường của user mục tiêu.

    su username

    Sau khi chạy lệnh, hệ thống sẽ yêu cầu nhập mật khẩu của user username. Nếu xác thực thành công, phiên shell sẽ hoạt động dưới quyền của user này và bạn thao tác với UID, quyền hạn và thư mục home tương ứng, trừ khi bạn kết hợp thêm dấu - để tải môi trường đăng nhập đầy đủ.

    Bước 3: Chuyển sang root với đầy đủ biến môi trường

    Trong nhiều trường hợp, bạn không chỉ cần quyền root mà còn cần toàn bộ môi trường đăng nhập của root (HOME, PATH, shell, các file cấu hình…).

    su -
    # hoặc
    su - root

    Khi sử dụng dấu gạch ngang -, hệ thống sẽ khởi tạo một login shell cho root, nạp các file cấu hình như khi đăng nhập trực tiếp bằng root (ví dụ các thiết lập trong profile, biến môi trường, thư mục làm việc mặc định). Cách này giúp tránh việc kế thừa biến môi trường từ user cũ và đảm bảo mọi lệnh được chạy trong bối cảnh chuẩn của root.

    Bước 4: Thoát khỏi user đang chuyển sang

    Sau khi hoàn thành thao tác với user root hoặc user khác, bạn cần thoát khỏi phiên su để quay lại tài khoản ban đầu, hạn chế rủi ro thao tác nhầm với quyền cao.

    exit
    # hoặc nhấn tổ hợp phím
    Ctrl + D

    Hai cách trên đều kết thúc shell hiện tại và trả bạn về phiên shell phía trước đó, tức là user đã dùng su để chuyển quyền.

    Bước 5: Kiểm tra user hiện tại sau khi thoát

    Sau khi thoát, bạn có thể dùng lệnh:

    whoami

    Kết quả trả về sẽ cho biết tài khoản hiện tại đang hoạt động, giúp xác nhận rằng bạn đã quay lại đúng user ban đầu sau khi kết thúc phiên su.

    Phân biệt lệnh su và sudo

    Cả su và sudo đều là các lệnh dùng để nâng quyền trong Linux, giúp thực thi những tác vụ quản trị mà user thường không đủ quyền thực hiện. Tuy nhiên, cách chúng cấp và kiểm soát quyền có nhiều điểm khác nhau. Dựa trên các tiêu chí dưới đây, bạn có thể so sánh nhanh để chọn lệnh phù hợp với nhu cầu sử dụng thực tế:

    Tiêu chísusudo
    Chuyển userCó, mở shell của user khácKhông chuyển user, chỉ nâng quyền cho lệnh được chỉ định
    Dùng mật khẩuMật khẩu của user đích (ví dụ root)Mật khẩu của user hiện tại
    Quyền hạnToàn bộ quyền và môi trường của user mớiGiới hạn theo cấu hình trong /etc/sudoers
    Bảo mậtRủi ro cao hơn nếu làm việc lâu trong tài khoản quyền caoKiểm soát tốt hơn cho từng lệnh, dễ giới hạn và audit thao tác

    1. Lỗi “Authentication failure”

    Khi sử dụng lệnh su, thông báo su: Authentication failure là lỗi thường gặp nhất, đặc biệt với người mới làm quen Linux. Lỗi này xuất hiện khi bước xác thực không thành công, dù cú pháp lệnh có thể vẫn đúng.

    Nguyên nhân của lỗi su: Authentication failure chủ yếu xuất phát từ việc nhập sai mật khẩu của user đích (thường là root) hoặc tài khoản root chưa được đặt mật khẩu, đang bị khóa hay bị hạn chế đăng nhập thông qua su theo chính sách của bản phân phối. Trong một số hệ thống, root login mặc định bị vô hiệu hóa nên dù mật khẩu đúng, quá trình xác thực khi dùng su vẫn có thể bị từ chối.

    Cách xử lý là bạn cần kiểm tra lại mật khẩu và chắc chắn đang nhập đúng mật khẩu của user mục tiêu chứ không phải mật khẩu của user hiện tại. Sau đó, bạn có thể đăng nhập bằng một tài khoản có quyền sudo, dùng các lệnh quản trị để kiểm tra trạng thái tài khoản root, đặt mới hoặc đổi mật khẩu root nếu hệ thống cho phép, từ đó đảm bảo root có thể được xác thực hợp lệ khi sử dụng su.

    Lỗi Authentication failure chủ yếu xuất phát từ việc nhập sai mật khẩu của user đích
    Lỗi Authentication failure chủ yếu xuất phát từ việc nhập sai mật khẩu của user đích (Nguồn: Internet)

    2. Lỗi “Permission denied” hoặc không cho phép dùng su

    Ngoài lỗi xác thực, đôi khi lệnh su bị từ chối ngay cả khi mật khẩu nhập đúng, thường gắn với các cơ chế kiểm soát truy cập trên hệ thống. Trong trường hợp này, lỗi liên quan đến quyền sử dụng su của user hiện tại chứ không phải do mật khẩu.

    Với lỗi bị từ chối quyền khi dùng su, nguyên nhân thường đến từ cấu hình bảo mật của hệ thống, nơi user hiện tại không thuộc nhóm được phép sử dụng su hoặc bị giới hạn bởi PAM. Ví dụ chỉ các thành viên của nhóm wheel hoặc một nhóm đặc biệt mới được quyền chuyển sang root qua su. Khi đó, dù mật khẩu nhập đúng, cơ chế kiểm soát truy cập vẫn không cho phép mở phiên shell mới dưới user đích.

    Để xử lý, bạn cần đăng nhập bằng một tài khoản có quyền cao hơn (chẳng hạn user đã có quyền sudo hoặc root). Sau đó, bạn kiểm tra lại cấu hình liên quan đến PAM và nhóm quyền, đồng thời bổ sung user vào nhóm được phép dùng su nếu phù hợp với chính sách quản trị. Trong trường hợp tổ chức không muốn mở rộng quyền dùng su, bạn có thể thay thế bằng sudo cho các lệnh cần quyền root, với điều kiện user được cấu hình đúng trong file sudoers hoặc nhóm sudo/wheel.

    Lỗi Permission denied có thể từ nguyên nhân bị giới hạn bởi PAM
    Lỗi Permission denied có thể từ nguyên nhân bị giới hạn bởi PAM (Nguồn: Internet)

    Câu hỏi thường gặp

    Su Linux có cần bật tài khoản root mới dùng được không?

    Trên nhiều bản phân phối, tài khoản root có thể bị khóa hoặc chưa đặt mật khẩu. Nên nếu muốn dùng su để chuyển sang root, bạn cần đảm bảo root đã được đặt mật khẩu và cho phép đăng nhập; nếu không, bạn nên dùng sudo với user có quyền sudoers.

    Khi nào nên ưu tiên dùng su thay vì sudo?

    Su phù hợp khi bạn cần làm việc liên tục trong môi trường của user khác (như root) để chạy nhiều lệnh liên tiếp, kiểm tra cấu hình hoặc xử lý sự cố kéo dài, trong khi sudo thích hợp hơn cho các lệnh đơn lẻ cần quyền nâng cao.

    Làm sao kiểm tra nhanh mình đang ở user nào sau khi dùng su?

    Sau khi chuyển quyền hoặc thoát khỏi phiên su, bạn có thể dùng lệnh whoami; kết quả trả về chính là tên user hiện tại đang chạy shell, giúp xác nhận đã chuyển đúng user hoặc đã quay lại tài khoản ban đầu.

    Tóm lại, su Linux là công cụ quan trọng giúp quản trị viên và người dùng nâng cao chuyển nhanh sang root hoặc các tài khoản khác để thực hiện những thao tác đòi hỏi đặc quyền. Đồng thời, nó vẫn giữ được sự linh hoạt trong quản lý nhiều user trên cùng một máy chủ. Khi nắm vững cú pháp và hiểu rõ sự khác nhau giữa su và sudo, kết hợp với việc nhận diện các lỗi thường gặp và biết cách xử lý, bạn có thể khai thác lệnh su đúng mục đích, giảm rủi ro bảo mật và vận hành hệ thống Linux hiệu quả hơn trong môi trường thực tế.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn sử dụng lệnh groupdel trên Linux để xoá nhóm người dùng
    Hướng dẫn sử dụng lệnh groupdel trên Linux để xoá nhóm người dùng

    Lệnh groupdel trong Linux là công cụ dòng lệnh dùng để xóa nhóm người dùng khỏi hệ thống. Việc sử dụng groupdel đúng cách giúp hệ thống gọn gàng hơn, hạn chế rủi ro phân quyền sai và tăng tính bảo mật trong quá trình quản trị. Trong bài viết này, mình sẽ cùng bạn…

    09/02/2026

    Hướng dẫn sử dụng lệnh groupadd Linux để thêm nhóm người dùng
    Hướng dẫn sử dụng lệnh groupadd Linux để thêm nhóm người dùng

    Lệnh groupadd Linux là tiện ích dòng lệnh dùng để tạo nhóm người dùng mới trên hệ thống, phục vụ cho việc phân quyền và quản lý user theo nhóm. Việc sử dụng group giúp quản trị viên kiểm soát quyền truy cập hiệu quả hơn, giảm rủi ro sai sót và đơn giản hóa…

    09/02/2026

    Hướng dẫn sử dụng lệnh usermod trên Linux để chỉnh sửa tài khoản người dùng
    Hướng dẫn sử dụng lệnh usermod trên Linux để chỉnh sửa tài khoản người dùng

    Lệnh usermod trong Linux là công cụ dùng để chỉnh sửa thông tin các tài khoản người dùng đã tồn tại, hỗ trợ quản trị viên cập nhật nhóm, UID, thư mục home, shell và trạng thái tài khoản một cách linh hoạt. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết…

    09/02/2026

    Sử dụng lệnh userdel Linux để xóa tài khoản người dùng an toàn
    Sử dụng lệnh userdel Linux để xóa tài khoản người dùng an toàn

    Lệnh userdel Linux là công cụ dòng lệnh dùng để xóa tài khoản người dùng khỏi hệ thống và các nhóm liên quan. Công cụ này giúp loại bỏ user không còn sử dụng, góp phần đảm bảo tính gọn gàng và bảo mật cho hệ thống. Trong bài viết này, mình sẽ cùng bạn…

    09/02/2026

    linux

    lenh

    text