Liên hệProfile
Danh mục

Mục Lục

    Sudo là gì? Hướng dẫn sử dụng lệnh Sudo Linux cơ bản

    Nguyễn Hưng

    Ngày đăng:

    19/11/2025

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

    19/11/2025

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

    Nguyễn Hưng

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

    19/11/2025

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

    19/11/2025

    Mục lục

    Sudo là một lệnh trong các hệ điều hành tương tự Unix, cho phép người dùng thực thi lệnh với quyền của người dùng khác mà không cần phải đăng nhập vào tài khoản quản trị. Trong bài viết này, mình sẽ giải thích một cách đơn giản về lệnh sudo, ưu điểm so với lệnh su và cách bạn sử dụng lệnh trong công việc hàng ngày.

    Những điểm chính

    • Khái niệm Sudo: Hiểu rõ Sudo là gì, mục đích và tại sao nó là một công cụ quản trị hệ thống thiết yếu và an toàn.
    • Cú pháp và tùy chọn: Nắm vững cú pháp cơ bản và các tùy chọn phổ biến để sử dụng lệnh Sudo một cách linh hoạt và hiệu quả.
    • Nguyên lý hoạt động: Biết được quy trình Sudo xác thực và cấp quyền tạm thời cho người dùng một cách an toàn như thế nào.
    • So sánh Sudo và su: Phân biệt rõ ràng ưu và nhược điểm giữa Sudo và su, giúp bạn lựa chọn công cụ phù hợp và bảo mật hơn.
    • Ưu điểm của Sudo: Nhận thức rõ các lợi ích vượt trội về bảo mật, khả năng kiểm soát chi tiết và giám sát mà Sudo mang lại.
    • Cài đặt Sudo: Nắm được cách kiểm tra và cài đặt Sudo trên các bản phân phối Linux phổ biến một cách dễ dàng.
    • Cấu hình Sudo: Học cách cấp phát quyền hạn chi tiết cho từng người dùng hoặc nhóm người dùng một cách an toàn qua lệnh visudo.
    • Ví dụ sử dụng chi tiết: Vận dụng Sudo hiệu quả vào các tác vụ quản trị hàng ngày thông qua các ví dụ thực tế, dễ hiểu.
    • Lưu ý bảo mật: Nắm vững các nguyên tắc cốt lõi để cấu hình Sudo an toàn, tránh các rủi ro tiềm ẩn cho hệ thống.
    • Giải đáp thắc mắc (FAQ): Tìm được câu trả lời nhanh chóng cho các câu hỏi thường gặp về Sudo, giúp giải quyết vấn đề hiệu quả.

    Sudo là gì?

    Sudo là một tiện ích dòng lệnh thiết yếu trong các hệ điều hành tương tự Unix (như Linux), cho phép người dùng thông thường thực thi các lệnh với quyền hạn bảo mật của một người dùng khác, phổ biến nhất là người dùng quản trị tối cao (root). Về cơ bản, sudo cung cấp một cơ chế an toàn để nâng cao đặc quyền một cách tạm thời cho các tác vụ cụ thể, mà không cần phải đăng nhập hoàn toàn bằng tài khoản root.

    Tên gọi sudo bắt nguồn từ hai cách diễn giải:

    • Super User Do: “Thực hiện với quyền của siêu người dùng” – đây là cách hiểu phổ biến và đúng nhất trong hầu hết các trường hợp.
    • Substitute User Do: “Thực hiện với quyền của người dùng thay thế” – vì sudo cũng có thể cho phép bạn chạy lệnh với quyền của bất kỳ người dùng nào khác, không chỉ riêng root.
    Sudo là một tiện ích dòng lệnh nền tảng trong các hệ điều hành tương tự Unix, bao gồm cả Linux.
    Khái niệm lệnh sudo

    Cú pháp và các tùy chọn phổ biến của lệnh sudo

    Lệnh sudo có cú pháp như sau:

    sudo [tùy chọn] lệnh [đối số]

    Trong đó:

    • [tùy chọn]: Các tham số tùy chọn để thay đổi hành vi của sudo.
    • lệnh: Lệnh mà bạn muốn chạy với quyền hạn cao hơn.
    • [đối số]: Các tham số của lệnh bạn muốn chạy.

    Khi chạy lệnh sudo lần đầu tiên, hệ thống sẽ yêu cầu bạn nhập mật khẩu của chính bạn (không phải mật khẩu root) để xác minh danh tính.

    Các tùy chọn phổ biến của sudo

    Tùy chọnChức năngVí dụ sử dụng
    -l, –listKiểm tra và liệt kê danh sách các lệnh mà người dùng hiện tại được phép thực thi thông qua sudo theo cấu hình trong tệp /etc/sudoers.sudo -l
    -u , –user=Thực thi lệnh với các đặc quyền của một người dùng cụ thể khác thay vì root. Rất hữu ích khi cần thao tác với quyền của tài khoản dịch vụ.sudo -u www-data touch file.txt
    -k, –reset-timestampVô hiệu hóa ngay lập tức phiên xác thực sudo hiện tại. Lần thực thi sudo tiếp theo sẽ yêu cầu nhập lại mật khẩu.sudo -k
    -e, –editChỉnh sửa một tệp tin hệ thống một cách an toàn. sudo sẽ tạo một bản sao tạm thời, mở trình soạn thảo mặc định và sau đó ghi đè lại tệp gốc.sudo -e /etc/fstab
    -D <thư_mục>, –chdir=<thư_mục>Thực thi lệnh trong một thư mục làm việc được chỉ định, thay vì thư mục hiện tại của bạn.sudo -D /var/log/apache2 ls -l
    -v, –validateXác thực lại người dùng để làm mới thời gian chờ của phiên sudo mà không cần thực thi bất kỳ lệnh nào.sudo -v
    -h, –helpHiển thị thông báo trợ giúp ngắn gọn, liệt kê tất cả các tùy chọn có sẵn và thoát.sudo -h
    -i, –loginChạy shell đăng nhập như root hoặc người dùng khác. Shell này sẽ tải các tệp cấu hình môi trường của người dùng đó (như .bashrc, .profile).sudo -i
    -v, –validateCập nhật thời gian xác thực (timestamp) của người dùng hiện tại mà không thực thi lệnh, giúp gia hạn thời gian miễn nhập mật khẩu sudo.sudo -v
    -s, –shellChạy shell được chỉ định bởi biến môi trường SHELL với quyền hạn của người dùng tiêu (thường là root).sudo -s

    Cách sudo hoạt động

    Quy trình hoạt động của sudo rất đơn giản và an toàn:

    • Thực thi lệnh: Người dùng gõ sudo trước một lệnh cần quyền quản trị (ví dụ: sudo apt update).
    • Xác thực: Hệ thống yêu cầu người dùng nhập mật khẩu của chính tài khoản của họ, không phải mật khẩu của root.
    • Kiểm tra quyền: Hệ thống kiểm tra tệp cấu hình /etc/sudoers để xác định xem người dùng hiện tại có được phép chạy lệnh đó hay không.
    • Thực thi: Nếu xác thực thành công và được cho phép, lệnh sẽ được thực thi với quyền hạn của root (hoặc người dùng được chỉ định khác).
    • Ghi nhật ký: Mọi lệnh được thực thi qua sudo đều được ghi lại trong nhật ký hệ thống (thường là /var/log/auth.log), bao gồm thông tin về người thực hiện, thời gian và lệnh đã chạy.
    Cách sudo hoạt động
    Cách sudo hoạt động

    So sánh lệnh sudosu

    Tiêu chísusudo
    Mục đíchChuyển đổi hoàn toàn sang người dùng khác (thường là root) trong một phiên làm việc mới.Thực thi một hoặc vài lệnh cụ thể với quyền root.
    Mật khẩu yêu cầuMật khẩu của tài khoản đích.Mật khẩu của chính tài khoản người dùng hiện tại.
    Phạm vi quyền hạnCấp quyền cho cả một phiên làm việc mới.Chỉ cấp quyền cho một lệnh duy nhất.
    Khả năng kiểm soátCung cấp toàn bộ quyền lực của root, khó kiểm soát chi tiết.Quản trị viên có thể thiết lập quy tắc chi tiết trong /etc/sudoers (Ai được chạy lệnh nào).
    Ghi nhật kýHạn chế, chỉ ghi lại việc chuyển đổi người dùng.Chi tiết, ghi lại mọi lệnh đã được thực thi.
    Bảo mậtRủi ro cao hơn do phải chia sẻ mật khẩu root.An toàn hơn, không cần chia sẻ mật khẩu root.
    Sử dụng mặc địnhPhổ biến ở các bản phân phối cũ hơn.Mặc định ở các bản phân phối hiện đại (Ubuntu, Mint).

    Ưu điểm của việc sử dụng sudo

    • Tăng cường bảo mật: Sử dụng sudo giúp loại bỏ hoàn toàn nhu cầu chia sẻ mật khẩu root. Mỗi quản trị viên sử dụng mật khẩu cá nhân của riêng mình, giúp giảm thiểu rủi ro và dễ dàng thu hồi quyền khi cần.
    • Kiểm soát quyền hạn chi tiết: Cho phép cấp quyền thực thi các lệnh cụ thể cho từng người dùng hoặc nhóm người dùng.
    • Cung cấp khả năng giám sát rõ ràng: Mọi lệnh được thực thi qua sudo đều được ghi lại chi tiết trong nhật ký hệ thống, tạo ra một dấu vết kiểm toán minh bạch.
    • Giảm thiểu rủi ro sai sót: Quyền hạn chỉ được nâng cao cho một lệnh duy nhất tại một thời điểm, tránh được các lỗi nguy hiểm có thể xảy ra trong một phiên làm việc root liên tục.
    • Tăng cường an toàn cho truy cập từ xa: Cho phép vô hiệu hóa đăng nhập root trực tiếp qua SSH, một trong những yêu cầu bảo mật quan trọng và cơ bản nhất trong quản trị máy chủ.
    Ưu điểm của việc sử dụng sudo
    Ưu điểm của việc sử dụng sudo

    Bước 1: Kiểm tra sudo đã được cài đặt chưa

    Trước khi tiến hành cài đặt, bạn cần xác minh xem sudo đã tồn tại trên hệ thống của mình hay chưa bằng cách chạy lệnh sau trên terminal.

    command -v sudo
    • Nếu sudo đã được cài đặt: Lệnh trên sẽ trả về đường dẫn đến tệp thực thi, ví dụ: /usr/bin/sudo.
    • Nếu sudo chưa được cài đặt: Lệnh sẽ không trả về kết quả nào cả.
    Hình minh họa kết quả kiểm tra sudo bằng lệnh command -v sudo trên terminal
    Hình minh họa kết quả kiểm tra sudo bằng lệnh command -v sudo trên terminal

    Bước 2: Cài đặt sudo

    Nếu hệ thống chưa có sudo, bạn không thể dùng chính lệnh sudo để cài đặt nó. Thay vào đó, bạn phải chuyển sang người dùng quản trị cao nhất (root) để thực hiện việc này.

    Bạn mở terminal và gõ lệnh sau, sau đó nhập mật khẩu của root.

    su -

    Tùy thuộc vào bản phân phối Linux bạn đang sử dụng, bạn hãy dùng lệnh quản lý gói tương ứng.

    • Đối với các hệ thống dựa trên Debian/Ubuntu:
    apt update
    apt install sudo
    • Đối với các hệ thống dựa trên RHEL/CentOS/Fedora:
    yum install sudo
    • Đối với các phiên bản mới hơn:
    dnf install sudo

    Cách cấu hình Sudo

    Việc cấu hình sudo được thực hiện thông qua tệp /etc/sudoers. Tuy nhiên, bạn không nên chỉnh sửa tệp này trực tiếp. Thay vào đó, hãy luôn sử dụng lệnh visudo:

    sudo visudo

    Lệnh này sẽ mở trình soạn thảo và kiểm tra cú pháp của tệp trước khi lưu, giúp ngăn ngừa các lỗi cấu hình có thể khiến bạn mất quyền truy cập.

    • Cấp quyền poweroff không cần mật khẩu: Quy tắc này cho phép người dùng tên user có thể chạy lệnh sudo poweroff mà không cần nhập mật khẩu.
    user localhost = NOPASSWD: /sbin/poweroff
    • Cấp quyền shutdown không cần mật khẩu: Tương tự, quy tắc này cho phép người dùng user chạy lệnh sudo shutdown mà không cần xác thực bằng mật khẩu.
    user localhost = NOPASSWD: /sbin/shutdown
    • Cấp quyền chạy mọi lệnh trong một thư mục: Quy tắc này cho phép người dùng user thực thi bất kỳ tệp lệnh nào nằm trong thư mục /usr/bin khi đang ở trên máy chủ tên là linux01.
    user linux01 = /usr/bin/*
    • Cấp quyền chạy nhiều lệnh cụ thể với quyền root: Quy tắc này cho phép người dùng user chạy chính xác ba lệnh (shutdown, kill, httpd) với các đặc quyền của root.
    user ALL = (root) /sbin/shutdown, /bin/kill, /etc/init.d/httpd

    Kiểm tra quyền của user vừa cấu hình

    sudo -l -U user
    Hình minh họa kết quả kiểm tra quyền sudo của user bằng lệnh sudo -l -U user
    Hình minh họa kết quả kiểm tra quyền sudo của user bằng lệnh sudo -l -U user

    Ví dụ 1: Cập nhật hệ thống phần mềm

    Bước 1: Đồng bộ hóa danh sách gói phần mềm: Lệnh dưới đây sẽ tải về thông tin mới nhất về các gói phần mềm từ những kho lưu trữ đã được cấu hình, giúp hệ thống nhận biết được các phiên bản mới và các bản vá bảo mật có sẵn.

    sudo apt update

    Bước 2: Cài đặt các bản nâng cấp: Sau khi danh sách đã được đồng bộ, lệnh sau sẽ tiến hành tải về và cài đặt các bản nâng cấp cho những phần mềm hiện có trên hệ thống.

    sudo apt upgrade

    Ví dụ 2: Thêm một người dùng vào nhóm sudo

    Để cấp quyền quản trị cho một tài khoản người dùng, phương pháp tiêu chuẩn là thêm tài khoản đó vào nhóm sudo. Lệnh sau đây sẽ thêm người dùng có tên user vào nhóm sudo mà không ảnh hưởng đến các nhóm khác mà người dùng này đang là thành viên.

    sudo usermod -aG sudo user

    Để kiểm tra lại, bạn có thể sử dụng lệnh groups user để xem danh sách các nhóm mà người dùng này thuộc về.

    Ví dụ 3: Thực thi lệnh với quyền hạn của người dùng root

    Một số tác vụ yêu cầu quyền truy cập vào các tập tin hoặc thư mục bị hạn chế. Lệnh sudo cho phép thực thi một lệnh duy nhất với đặc quyền của người dùng root (Ví dụ, thư mục /root chỉ cho phép người dùng root truy cập). Lệnh sau sẽ giúp liệt kê nội dung của thư mục này thành công.

    sudo ls /root

    Nếu không có sudo, hệ thống sẽ trả về một thông báo lỗi từ chối quyền truy cập.

    Ví dụ 4: Chuyển đổi sang môi trường làm việc của người dùng root

    Khi cần thực hiện nhiều tác vụ quản trị liên tiếp, việc chuyển đổi hoàn toàn sang một phiên làm việc của người dùng root sẽ hiệu quả hơn. Lệnh dưới đây không chỉ thay đổi người dùng thành root mà còn tải toàn bộ môi trường làm việc, bao gồm các biến môi trường và đường dẫn hệ thống:

    sudo -i

    Sau khi thực thi, dấu nhắc lệnh trong cửa sổ terminal thường sẽ thay đổi từ $ sang #, biểu thị rằng bạn đang hoạt động với quyền hạn cao nhất.

    Ví dụ 5: Thực thi lệnh với tư cách một người dùng khác

    Lệnh sudo cũng có khả năng thực thi một lệnh dưới danh nghĩa của bất kỳ người dùng nào khác trong hệ thống, không chỉ riêng root. Để chạy lệnh whoami với tư cách của người dùng tên user1, bạn có thể sử dụng cú pháp sau.

    sudo -u user1 whoami

    Kết quả của lệnh whoami sẽ hiển thị user1, thay vì tên của người dùng đang thực thi lệnh sudo.

    Ví dụ 6: Liệt kê các quyền hạn sudo của người dùng hiện tại

    Để kiểm tra những quyền hạn cụ thể mà tài khoản của bạn đã được cấu hình để sử dụng với sudo, bạn có thể sử dụng tùy chọn -l. Lệnh dưới đây sẽ hiển thị một danh sách chi tiết các quy tắc được áp dụng cho người dùng hiện tại từ tập tin cấu hình /etc/sudoers.

    sudo -l

    Thông tin này rất hữu ích để xác minh các quyền được cấp phép.

    Ví dụ 7: Thực thi một chuỗi nhiều lệnh

    Khi cần chạy nhiều lệnh liên tiếp với quyền sudo, việc gộp chúng lại trong một shell con là cần thiết để đảm bảo tất cả đều được thực thi với đặc quyền nâng cao. Lệnh sau sẽ cập nhật danh sách gói và ngay lập tức nâng cấp hệ thống mà không cần hỏi xác nhận.

    sudo sh -c "apt update && apt upgrade -y"

    Cách này đảm bảo toàn bộ chuỗi lệnh bên trong dấu ngoặc kép được thực thi bởi một tiến trình shell đã được cấp quyền sudo.

    Ví dụ 8: Điều chỉnh thời gian chờ xác thực mật khẩu

    Theo mặc định, sudo sẽ ghi nhớ mật khẩu của bạn trong 15 phút. Để thay đổi khoảng thời gian này, bạn phải chỉnh sửa tập tin cấu hình sudoers một cách an toàn bằng công cụ visudo.

    sudo visudo

    Lệnh này sẽ mở trình soạn thảo văn bản. Bạn cần tìm dòng chứa Defaults env_reset (hoặc tạo mới nếu không có) và thêm hoặc chỉnh sửa thành:

    Defaults    env_reset,timestamp_timeout=45

    iconLưu ý

    env_reset thường đã có. Bạn chỉ cần thêm ,timestamp_timeout=45 vào dòng đó. Đặt giá trị bằng 0 sẽ yêu cầu mật khẩu cho mỗi lần dùng sudo. Lưu và thoát khỏi trình soạn thảo để áp dụng thay đổi.

    Các lưu ý quan trọng về bảo mật khi cấu hình sudo

    • Nguyên tắc quyền hạn tối thiểu: Luôn chỉ cấp những quyền thực sự cần thiết. Nếu một người dùng chỉ cần quản lý máy chủ web, bạn không nên cấp cho họ quyền ALL.
    • Hạn chế NOPASSWD: Bạn chỉ nên sử dụng NOPASSWD khi thật sự cần thiết, ví dụ cho các tài khoản dịch vụ hoặc các tác vụ tự động hóa được kiểm soát chặt chẽ.
    • Ưu tiên cấp quyền cho nhóm: Việc quản lý quyền theo nhóm (%tên_nhóm) sẽ dễ dàng và ít sai sót hơn nhiều so với việc cấu hình cho từng người dùng riêng lẻ.
    Cần lưu ý về bảo mật khi cấu hình sudo
    Cần lưu ý về bảo mật khi cấu hình sudo (Nguồn: Internet)

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

    Khi nào nên dùng sudo và khi nào dùng su?

    Sử dụng sudo cho các tác vụ quản trị đơn lẻ, hàng ngày. Sử dụng su – (hoặc sudo -i) chỉ khi bạn cần thực hiện một chuỗi dài các lệnh quản trị và việc gõ sudo liên tục trở nên phiền toái.

    Thời gian chờ mật khẩu của sudo là bao lâu?

    Mặc định là 15 phút. Sau 15 phút không hoạt động, bạn sẽ phải nhập lại mật khẩu cho lệnh sudo tiếp theo.

    Làm sao để biết một người dùng có quyền sudo hay không?

    Cách nhanh nhất là chạy lệnh id <tên_người_dùng> và xem họ có trong nhóm sudo hoặc wheel không. Cách chính xác nhất là chạy sudo -l -U <tên_người_dùng> (với quyền sudo) để xem chi tiết các quyền được cấp.

    Nếu quên mật khẩu của tài khoản có quyền sudo thì phải làm sao?

    Bạn cần khởi động vào recovery mode của Linux. Chế độ này sẽ cung cấp cho bạn một shell root để bạn có thể dùng lệnh passwd <tên_người_dùng> và đặt lại mật khẩu mới.

    Hy vọng qua bài viết này, bạn đã nắm vững Sudo là gì và cách dùng các lệnh Sudo cơ bản trong Linux. Việc hiểu và sử dụng Sudo chính xác là kỹ năng quan trọng giúp bạn thực thi các tác vụ quản trị một cách an toàn và hiệu quả mà không cần đăng nhập trực tiếp bằng tài khoản root. Để nâng cao kiến thức quản trị hệ thống Linux, bạn có thể xem thêm một số bài viết dưới đây của mình:

    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 3 cách kiểm tra địa chỉ IP Linux nhanh chóng
    Hướng dẫn 3 cách kiểm tra địa chỉ IP Linux nhanh chóng

    Check IP Linux là quá trình xác định địa chỉ IP của một thiết bị đang chạy hệ điều hành Linux, bao gồm cả IP Private và IP Public. Trong bài viết này, mình sẽ giúp bạn phân biệt IP Private với IP Public và hướng dẫn chi tiết các cách kiểm tra địa chỉ…

    05/12/2025

    Tổng hợp 20 hosting free uy tín, chất lượng và không quảng cáo
    Tổng hợp 20 hosting free uy tín, chất lượng và không quảng cáo

    Hosting free là một dịch vụ cung cấp không gian lưu trữ và tài nguyên máy chủ mà không yêu cầu người dùng trả phí. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn về Hosting free, có nên sử dụng dịch vụ này không và điểm qua 20 nhà cung cấp uy…

    05/12/2025

    Tên miền miễn phí là gì? TOP 10 nhà cung cấp tên miền miễn phí uy tín
    Tên miền miễn phí là gì? TOP 10 nhà cung cấp tên miền miễn phí uy tín

    Tên miền miễn phí là một giải pháp cho phép người dùng đăng ký và sử dụng một địa chỉ web mà không phải trả bất kỳ chi phí nào. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn ưu nhược điểm của tên miền miễn phí, trường hợp nên sử dụng và…

    04/12/2025

    Hosting AMD là gì? Tìm hiểu tổng quan về Hosting AMD
    Hosting AMD là gì? Tìm hiểu tổng quan về Hosting AMD

    Hosting AMD là dịch vụ lưu trữ website được vận hành trên máy chủ sử dụng bộ vi xử lý của AMD, một trong những nhà sản xuất chip hàng đầu hiện nay. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn về Hosting AMD, những lý do nên sử dụng, ưu nhược…

    04/12/2025