#

Sudo là gì? Cách sử dụng lệnh Sudo và file Sudoers

 20/03/2022 - 12:08 Trịnh Duy Thanh

Nếu bạn đang muốn tìm hiểu về lệnh Sudo nhưng chưa biết phải bắt đầu từ đâu thì bài viết này là dành cho bạn. Ok, hãy cùng bắt đầu ngay thôi nào.

Có thể bạn quan tâm: Hướng dẫn sử dụng tất cả các lệnh trong CMD.

Sudo là gì?

Sudo (viết tắt của “substitute user do” hoặc “super user do”) là chương trình dành cho hệ điều hành tương tự Unix. Nó cho phép một non-root user có thể chạy các chương trình với quyền bảo mật của một user khác (thường là root user).

Sudo la gi

Ban đầu, Sudo được hiểu nghĩa là Superuser do. Lý do là vì các phiên bản cũ hơn của nó được tạo ra với mục đích chỉ để chạy các lệnh như Superuser.

Các phiên bản Sudo về sau được nâng cấp để có thể hỗ trợ chạy cả các lệnh cho người dùng khác (bị hạn chế). Do đó, Sudo được hiểu theo nghĩa rộng hơn là “Substitute user do”.

Dù vậy, do Sudo thường được sử dụng cho các tác vụ quản trị nên người ta vẫn quen gọi (và hiểu) Sudo nghĩa là “Superuser do” thay vì “Substitute user do”.

Sudo và Su khác nhau như thế nào?

Sudo và Su khác nhau như thế nào

  • Với lệnh Su, người dùng có thể khởi động một cửa sổ mới với quyền Root (đăng nhập tài khoản root với account và password của root).
  • Trong khi đó, Sudo yêu cầu người dùng xác thực bằng mật khẩu cá nhân. Người dùng chỉ có thể thực hiện các lệnh được cho phép (được cấu hình sẵn) nằm trong file sudoers.

Vậy, ưu điểm của Sudo là gì?

ưu điểm của Sudo

Sudo là giải pháp phân quyền và nâng cấp quyền cho user một cách tốt nhất và an toàn nhất. Cụ thể:

  • Quản trị viên có thể giao quyền và kiểm soát các thao tác can thiệp hệ thống của người dùng với tiêu chí “đúng người đúng việc”.
  • Người dùng có thể thực thi lệnh Sudo từ xa thông qua Telnet/SSH. Xem thêm: PuTTy là gì? Hướng dẫn cài đặt và sử dụng phần mềm PuTTy.

Nói một cách dễ hiểu hơn, với Su, bạn sẽ đăng nhập bằng quyền root, và do đó, thật nguy hiểm nếu có bất kỳ sai sót nào xảy ra (dù là nhỏ nhất, hãy tưởng tượng, nếu xui xẻo, mọi thứ có thể bị mất hết).

Còn với Sudo, bạn sẽ cần phải nhập vào sudo trước mỗi dòng lệnh. Do đó, bạn sẽ tránh được việc quên quay lại chế độ người dùng thường và sẽ hạn chế được các rủi ro không đáng có.

Cách cấu hình File Sudoers cho phép user sử dụng lệnh Sudo

Mặc định, khi bạn cài đặt user đầu tiên cho Ubuntu, đó chính là user có quyền cao nhất (quyền super user). Trên VPS, đó chính là root user. 

Để cho phép một user bất kỳ có thể sử dụng lệnh Sudo, bạn sẽ cần cấu hình file Sudoers (nằm trong /etc/). Khi đó, user sẽ có những đặc quyền nhất định (tùy theo cách bạn cấu hình).

Lưu ý quan trọng khi chỉnh sửa file Sudoers: Nếu phát sinh lỗi (thường do sai cú pháp lệnh) có thể dẫn đến tình trạng tất cả các user sẽ bị khóa.

Cú pháp file Sudoers như thế nào?

File Sudoers có thể được mở và chỉnh sửa bằng trình soạn thảo bất kỳ (như note chẳng hạn).

Lệnh mở file Sudoers:

vi /etc/sudoers

File Sudoers trong VPS sẽ trông như thế này:

cú pháp file Sudoers

Trước khi chỉnh sửa file Sudoers, bạn cần nắm rõ các quy tắc sau:

  • Để viết chú thích, ta sẽ dùng dấu # ở đầu dòng.
  • Dòng lệnh root ALL=(ALL:ALL) ALL nghĩa là root user có đầy đủ mọi đặc quyền trên hệ thống.
  • Để phần quyền cho một nhóm user, ta sẽ dùng dấu %. Cụ thể như sau:
    • Dòng lệnh %admin ALL=(ALL) ALL nghĩa là tất cả user trong nhóm admin đều có full quyền như root user và được phép chạy tất cả các lệnh.
    • Tương tự, dòng lệnh %sudo ALL=(ALL:ALL) ALL nghĩa là bất cứ user nào trong nhóm sudo cũng đều có đặc quyền như root user và cũng được phép chạy bất kỳ lệnh nào.
  • Dòng lệnh #includedir /etc/sudoers.d nghĩa là các file trong thư mục sudoers.d sẽ được tham chiếu. Nói cách khác, lệnh trên các file nằm trong thư mục sudoers.d sẽ có ảnh hưởng đến hệ thống. Tất nhiên, bạn cũng có thể chỉnh sửa các file đó nếu cần.

Hướng dẫn cấu hình file Sudoers

Để bắt đầu chỉnh sửa file sudoers, hãy sử dụng lệnh sau:

sudo visudo -f /etc/sudoers

Trong các ví dụ dưới đây, chúng ta sẽ sử dụng lệnh sudo để gán quyền cho user tên là CR7.

Nếu bạn muốn thêm user CR7 vào nhóm sudo, hãy sử dụng lệnh adduser. Cú pháp như sau:

adduser CR7 sudo

Để xóa một user CR7 khỏi nhóm sudo, hãy sử dụng lệnh deluser. Cú pháp như sau:

deluser CR7 sudo

Cấp quyền cụ thể cho user

Trong trường hợp bạn muốn user CR7 chỉ có quyền thực thi một vài lệnh cụ thể nào đó thì sao? Ok, lúc này bạn sẽ cần tạo file bên trong /etc/sudoers.d/ và cấu hình cho file đó.

Ví dụ, để tạo một file tên là netpermit, hãy sử dụng cú pháp lệnh sẽ như sau:

sudo visudo -f /etc/sudoers.d/netpermit

Bây giờ, giả sử bạn muốn cho phép user CR7 có thể chạy các lệnh:

  • /usr/sbin/tcpdump
  • /usr/sbin apache2ctl
  • /usr/bin/htpasswd

Đầu tiên, trong file Sudo, hãy thêm CR7 vào nhóm netadmin:

sudo CR7 bill netadmin

Tiếp theo, thêm đoạn mã sau vào file netpermit:

Cmnd_Alias     NETALL = /usr/sbin/tcpdump,  /usr/sbin apache2ctl, /usr/bin/htpasswd
%netadmin ALL=NETALL

*Giải thích: Đoạn mã trên nghĩa là tất cả user trong nhóm netadmin có thể chạy các lệnh NETALL, bao gồm: /usr/sbin/tcpdump, /usr/sbin apache2ctl và /usr/bin/htpasswd.

Tổng kết về Sudo

Hy vọng những nội dung mà BKHOST đã chia sẻ trên đây sẽ giúp bạn hiểu hơn về lệnh Sudo cũng như có thể sử dụng lệnh Sudo một cách hiệu quả. Nếu bạn có bất cứ thắc mắc nào về Sudo, hãy để lại comment ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất. Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm những bài viết chia sẻ kinh nghiệp quản trị vps, hosting, server, domain, website, email… Chúc bạn thành công.


Hãy cùng với tên miền .PW để sẵn sàng tham gia vào mạng lướt chuyên gia trên toàn thế giới.

Truy cập để mua tên miền .PW giá rẻ và nhận những phần quà hấp dẫn ngay hôm nay! 

BKHOST đang có chương trình khuyến mãi cực sốc dành cho khách hàng đăng ký mới dịch vụ tên miền.


Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger