Liên hệProfile
Danh mục

Mục Lục

    Cách dùng lệnh visudo trong Linux để chỉnh sửa file sudoers an toàn

    Nguyễn Hưng

    Ngày đăng:

    17/03/2026

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

    17/03/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:

    17/03/2026

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

    17/03/2026

    Mục lục

    Visudo là lệnh trong Linux dùng để chỉnh sửa file sudoers. Công cụ này giúp kiểm tra cú pháp trước khi lưu, giảm nguy cơ lỗi cấu hình có thể khiến hệ thống mất quyền quản trị. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh visudo để chỉnh sửa file sudoers an toàn và đúng chuẩn.

    Những điểm chính

    • Khái niệm: Hiểu rõ visudo là công cụ chuyên dụng để chỉnh sửa file phân quyền /etc/sudoers với độ an toàn và tính toàn vẹn dữ liệu cao nhất.
    • Cú pháp cơ bản: Nắm vững các lệnh thực thi chuẩn để mở trình soạn thảo cấu hình mặc định trong môi trường Linux.
    • Lý do nên dùng visudo: Biết được cơ chế tự động kiểm tra lỗi cú pháp và khóa file để ngăn chặn nguy cơ mất quyền quản trị hệ thống.
    • Hướng dẫn sử dụng chi tiết: Thành thạo các kỹ năng cấp quyền sudo cho người dùng, nhóm, thiết lập không cần mật khẩu hoặc giới hạn lệnh cụ thể.
    • Xử lý lỗi thường gặp: Biết cách nhận diện và khắc phục nhanh các sự cố như “Permission denied” hoặc lỗi sai định dạng file sudoers.
    • Lưu ý quan trọng: Nắm được các nguyên tắc vận hành an toàn như kiểm tra quyền trước khi thoát và ưu tiên quản lý file trong thư mục /etc/sudoers.d/.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh visudo.

    Lệnh visudo trong Linux là gì?

    Visudo là lệnh dùng để chỉnh sửa file cấu hình /etc/sudoers trên các hệ điều hành Linux với cơ chế an toàn cao. Cụ thể, lệnh này tự động khóa file tạm thời để ngăn chặn xung đột khi nhiều người cùng chỉnh sửa, đồng thời kiểm tra kỹ cú pháp cấu hình trước khi lưu. Do đó, việc sử dụng visudo với quyền root hoặc sudo là bắt buộc thay vì sửa trực tiếp file, giúp quản trị viên tránh được các lỗi sai cú pháp nghiêm trọng có thể dẫn đến mất hoàn toàn quyền sudo. Qua đó, lệnh này đảm bảo tính toàn vẹn dữ liệu và sự ổn định cho toàn hệ thống.

    visudo là lệnh dùng để chỉnh sửa file cấu hình /etc/sudoers trên các hệ điều hành Linux với cơ chế an toàn cao
    visudo là lệnh dùng để chỉnh sửa file cấu hình /etc/sudoers trên các hệ điều hành Linux với cơ chế an toàn cao

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

    Để sử dụng lệnh visudo, bạn nhập cú pháp sau:

    visudo

    Hoặc nếu bạn cần quyền quản trị, bạn hãy chạy lệnh sau:

    sudo visudo

    Lệnh này sẽ mở file /etc/sudoers bằng trình soạn thảo mặc định của hệ thống, thường là nano hoặc vi.

    Vì sao cần dùng visudo thay vì sửa trực tiếp /etc/sudoers?

    Việc sử dụng visudo để chỉnh sửa file /etc/sudoers giúp đảm bảo an toàn với 3 lợi ích chính như sau:

    • Ngăn chặn lỗi cú pháp nghiêm trọng: Visudo tự động kiểm tra lỗi trước khi lưu. Tính năng này giúp loại bỏ rủi ro sai cấu hình dẫn đến việc hệ thống không đọc được file sudoers, gây mất hoàn toàn quyền sudo.
    • Đảm bảo tính toàn vẹn dữ liệu: Cơ chế khóa file đặc biệt chỉ cho phép một người dùng chỉnh sửa tại một thời điểm. Điều này ngăn chặn tình trạng xung đột dữ liệu khi có nhiều quản trị viên cùng thao tác trên hệ thống.
    • Tăng sự ổn định: Bằng cách cô lập các lỗi tiềm ẩn từ con người, visudo giúp duy trì sự an toàn và vận hành ổn định cho hệ điều hành.
    Vì sao cần dùng visudo thay vì sửa trực tiếp /etc/sudoers?
    Vì sao cần dùng visudo thay vì sửa trực tiếp /etc/sudoers?

    Điều kiện để thực hiện lệnh visudo:

    • Quyền hạn: Người dùng phải đang sở hữu quyền root hoặc quyền sudo.
    • Hệ điều hành: Áp dụng cho các bản phân phối Linux phổ biến như Ubuntu, Debian, CentOS, AlmaLinux,…

    1. Cấp quyền sudo cho user

    Bước 1: Mở file sudoers bằng visudo

    Bạn chạy lệnh sau để mở file cấu hình:

    sudo visudo

    Bước 2: Thêm user vào danh sách được phép dùng sudo

    Tiếp theo, bạn di chuyển đến cuối file và thêm dòng cấu hình sau:

    username ALL=(ALL) ALL

    Ví dụ, để cấp quyền cho user admin, bạn nhập:

    admin ALL=(ALL) ALL

    Lúc này, User admin sẽ được phép sử dụng mọi lệnh với quyền sudo.

    Bước 3: Lưu và thoát file

    Thao tác sẽ có sự khác biệt, tùy thuộc vào trình soạn thảo. Chi tiết như sau:

    • Với trình soạn thảo nano: Bạn nhấn Ctrl + OEnterCtrl + X.
    • Với trình soạn thảo vi/vim: Bạn gõ :wqEnter.

    Ngay sau khi bạn thực hiện thao tác lưu, visudo sẽ tự động kiểm tra cú pháp để đảm bảo không có lỗi.

    2. Cấp quyền sudo không cần nhập mật khẩu

    Trong một số trường hợp cần tự động hóa, bạn có thể cấp quyền sudo mà không yêu cầu nhập mật khẩu bằng lệnh sau:

    username ALL=(ALL) NOPASSWD: ALL

    Ví dụ, để cấp quyền sudo cho user có tên deploy, bạn thực hiện lệnh sau:

    deploy ALL=(ALL) NOPASSWD: ALL

    Khi đó, user deploy có thể chạy lệnh sudo ngay lập tức mà không cần xác thực mật khẩu.

    3. Cấp quyền sudo cho group bằng visudo

    Thay vì cấp quyền cho từng user, bạn có thể cấp quyền cho toàn bộ nhóm người dùng bằng cách thêm dấu % trước tên nhóm:

    %groupname ALL=(ALL) ALL

    Ví dụ, để cấp quyền sudo cho group vietnix_techteam, bạn thực hiện lệnh sau đây:

    %vietnix_techteam ALL=(ALL) ALL

    Sau đó, tất cả các user thuộc group vietnix_techteam đều sẽ có quyền sudo.

    4. Chỉ cho phép chạy một số lệnh cụ thể bằng sudo

    Để tăng cường bảo mật, bạn có thể giới hạn user chỉ được phép chạy một số lệnh nhất định. Cấu trúc lệnh như sau:

    username ALL=(ALL) /usr/bin/systemctl, /usr/bin/reboot

    Ví dụ, bạn có thể giới hạn cho user admin chỉ được phép chạy lệnh systemctl dưới quyền sudo, các lệnh khác sẽ bị từ chối bằng lệnh sau:

    admin ALL=(ALL) /usr/bin/systemctl

    5. Kiểm tra quyền sudo sau khi cấu hình

    Sau khi chỉnh sửa xong, bạn có thể kiểm tra lại danh sách các quyền sudo của user hiện tại bằng lệnh dưới đây:

    sudo -l

    Một số lỗi thường gặp khi dùng lệnh visudo Linux

    1. Lỗi: Permission denied

    Permission denied là lỗi cơ bản thường xảy ra ngay khi bạn cố gắng chạy lệnh. Theo mặc định, file /etc/sudoers chỉ có quyền đọc đối với user root và group root, còn người dùng thông thường sẽ không có quyền đọc hay ghi lên file này. Thông báo lỗi sẽ xuất hiện như sau:

    visudo: permission denied

    Để xử lý, bạn cần chạy lệnh với quyền sudo bằng cách thêm tiền tố này vào trước lệnh visudo:

    sudo visudo
    Permission denied là lỗi cơ bản thường xảy ra ngay khi bạn cố gắng chạy lệnh
    Permission denied là lỗi cơ bản thường xảy ra ngay khi bạn cố gắng chạy lệnh (Nguồn: Internet)

    2. Lỗi: Sai cú pháp file sudoers

    Sau khi bạn chỉnh sửa xong và thực hiện thao tác lưu file, visudo sẽ quét toàn bộ nội dung file. Nếu phát hiện ký tự lạ, lỗi chính tả hoặc sai định dạng, lệnh này sẽ không cho phép lưu và hiện cảnh báo ngay lập tức. Để xử lý, bạn cần kiểm tra kỹ lại dòng lệnh bạn vừa thêm vào và đảm bảo tuân thủ đúng định dạng chuẩn:

    username ALL=(ALL) ALL

    Lưu ý khi sử dụng lệnh visudo Linux

    Dưới đây là các lưu ý quan trọng khi dùng visudo:

    • Kiểm tra trước khi thoát: Bạn không nên tắt Terminal ngay sau khi lưu, hãy mở một tab mới để chạy thử lệnh sudo nhằm đảm bảo không bị mất quyền quản trị.
    • Xử lý lỗi cú pháp: Nếu hệ thống báo lỗi, bạn tuyệt đối không chọn Q (Quit & Save) mà hãy chọn e (Edit) để sửa lại cho đúng.
    • Quản lý file: Bạn nên ưu tiên tạo file cấu hình riêng trong thư mục /etc/sudoers.d/ thay vì chỉnh sửa trực tiếp vào file gốc /etc/sudoers để dễ quản lý.
    • Bảo mật: Hạn chế việc sử dụng tùy chọn NOPASSWD (không cần mật khẩu) trừ khi bạn cần cấu hình cho các tác vụ tự động đặc thù.
    • Trình soạn thảo: Bạn nên sử dụng lệnh sudo EDITOR=nano visudo nếu không thành thạo vim để tránh xóa nhầm ký tự hoặc thao tác sai.
    Lưu ý khi sử dụng lệnh visudo
    Lưu ý khi sử dụng lệnh visudo

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

    Ý nghĩa của dòng ALL=(ALL) ALL là gì?

    Cấu trúc này có nghĩa là:
    ALL (đầu tiên): Quy tắc này áp dụng trên tất cả các host (máy chủ).
    (ALL): User có thể chạy lệnh dưới quyền của bất kỳ user hoặc group nào (thường là root).
    ALL (cuối cùng): User được phép chạy tất cả các câu lệnh.

    Lỗi “visudo: /etc/sudoers busy, try again later” là gì?

    Thông báo này xuất hiện khi file /etc/sudoers đang được mở bởi một người dùng khác hoặc một tiến trình khác. Vì cơ chế an toàn, visudo sẽ khóa file để ngăn chặn việc chỉnh sửa đồng thời.
    Để khắc phục, bạn hãy kiểm tra và tắt các cửa sổ terminal đang chạy visudo. Nếu không tìm thấy, bạn có thể cần xóa file khóa tạm thời, nhưng hãy cẩn thận kiểm tra kỹ tiến trình trước khi thực hiện.

    Tại sao tôi gặp lỗi “visudo: command not found”?

    Lỗi này thường xảy ra trên các bản phân phối Linux tối giản hoặc trong các môi trường Container chưa được cài đặt gói sudo. Để khắc phục, bạn cần cài đặt gói sudo thông qua trình quản lý gói của hệ thống như:
    Ubuntu/Debian: apt-get install sudo
    CentOS/RHEL: yum install sudo

    Hy vọng qua bài viết này, bạn đã nắm được cách sử dụng lệnh visudo để chỉnh sửa file sudoers đúng chuẩn, giúp cấp quyền sudo an toàn cho user và group. Việc sử dụng visudo sẽ giúp hạn chế rủi ro sai cấu hình và đảm bảo hệ thống Linux luôn hoạt động ổn định. Chúc bạn thao tác với lệnh visudo thành công và hẹn gặp lại bạn trong các bài viết sau.

    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 top trong Linux để giám sát hiệu suất hệ thống
    Hướng dẫn sử dụng lệnh top trong Linux để giám sát hiệu suất hệ thống

    Lệnh top trong Linux là công cụ dòng lệnh dùng để theo dõi hoạt động của hệ thống theo thời gian thực, bao gồm CPU, bộ nhớ, tiến trình và mức tải hệ thống. Công cụ này giúp quản trị viên nhanh chóng phát hiện tiến trình tiêu tốn tài nguyên, từ đó tối ưu…

    17/03/2026

    Hướng dẫn sử dụng lệnh ps trong Linux để xem thông tin tiến trình nhanh chóng
    Hướng dẫn sử dụng lệnh ps trong Linux để xem thông tin tiến trình nhanh chóng

    Lệnh ps trong Linux là công cụ dòng lệnh dùng để hiển thị thông tin về các tiến trình đang chạy trong hệ thống. Thông qua lệnh này, bạn có thể nhanh chóng kiểm tra trạng thái tiến trình, theo dõi mức sử dụng tài nguyên và hỗ trợ quản trị hệ thống hiệu quả…

    17/03/2026

    Hướng dẫn sử dụng lệnh last Linux để theo dõi lịch sử đăng nhập hệ thống hiệu quả
    Hướng dẫn sử dụng lệnh last Linux để theo dõi lịch sử đăng nhập hệ thống hiệu quả

    Lệnh last trong Linux là công cụ dùng để xem lại lịch sử đăng nhập và đăng xuất của người dùng trên hệ thống dựa trên dữ liệu được lưu trong file wtmp. Nhờ đó, quản trị viên có thể theo dõi hoạt động truy cập, phát hiện đăng nhập bất thường và hỗ trợ…

    17/03/2026

    Hướng dẫn dùng lệnh w Linux để kiểm tra người dùng đang đăng nhập vào hệ thống
    Hướng dẫn dùng lệnh w Linux để kiểm tra người dùng đang đăng nhập vào hệ thống

    Lệnh who trong Linux là công cụ dòng lệnh dùng để hiển thị danh sách người dùng hiện đang đăng nhập vào hệ thống cùng với thông tin phiên làm việc tương ứng. Nhờ đó, bạn có thể nhanh chóng kiểm tra trạng thái đăng nhập, theo dõi hoạt động của người dùng và hỗ…

    17/03/2026

    linux

    lenh

    text