Hướng dẫn dử dụng lệnh sudo và file sudoers

Lệnh sudo cho phép users không root chạy những lệnh đòi hỏi cần quyền super user, còn, file sudoers chỉ dẫn hệ thống cách xử lý lệnh sudo. ưng chuẩn bài viết này Ladigi sẽ cùng quý khách tìm hiểu về sudo and file sodoers cùng cách sử dụng của 2 lệnh này.

Hiểu về Sudo

Trước tiên bạn hãy truy cập VPS thông qua SSH. Nếu bạn gặp rắc rối, hãy xem hướng dẫn PuTTY.

Mặc định root user không cần sử dụng sudo. Nó đã có tất cả quyền cần có. Nhưng ví dụ như, nếu user không root muốn thêm user khác nếu dùng như sau:

useradd edward

Nó sẽ xuất ra kết quả Permission denied. Vì vậy bạn cần thêm sudo như sau:

sudo useradd edward

Như vậy lệnh mới thực thi thành công

File Sudoers

Lệnh sudo được xây dựng thông qua một file trong /etc/ gọi là sudoers.

Thông qua lệnh sudo, người dùng sẽ cung cấp các quyền quản trị cho users thông thường. Và thường thì user đầu tiên được tạo khi cài đặt Ubuntu có quyền super user. Trong môi trường VPS đó là root user mặc định. Bạn có thể cấu hình users khác để có thể chạy lệnh sudo bằng cách chỉnh sửa sudoers.

Chú ý: Khi chỉnh sửa file sudoers,  việc lỗi hoặc cú pháp sai có thể dẫn đến  khóa tất cả users trên bản phân phối.

Cú pháp file Sudoers

Bạn có thể mở file bằng trình soạn thảo text ưa thích của bạn. Chúng ta sẽ sử dụng vi:

vi /etc/sudoers

File trong VPS của chúng ta trông như thế này:

file linux sudoers

Hãy xem một số định dạng và quy tắc cần tuân thủ khi chỉnh sửa sudoers:

  • Tất cả các dòng bắt đầu với # là các nhận xét
  • root ALL=ALL:ALL) ALL – dòng này nghĩa là root user có đặc quyền không giới hạn và có thể chạy bất kỳ lệnh nào trên hệ thống
  • %admin ALL=(ALL) ALL – dấu % chỉ định một nhóm. Bất cứ ai trong nhóm quản trị đều có cùng đặc quyền như của root user
  • %sudo ALL=(ALL:ALL) ALL – tất cả users trong nhóm sudo có đặc quyền để chạy bất kỳ lệnh nào

Một dòng cần quan tâm khác là #includedir /etc/sudoers.d, nghĩa là chúng ta có thể thêm cấu hình vào tệp sudoers.d và liên kết nó ở đây.

Chỉnh sửa file Sudoers

Để chỉnh sửa file /etc/sudoers, hãy sử dụng lệnh sau:

sudo visudo -f /etc/sudoers

Để xem users nào trong nhóm sudo, sử dụng lệnh grep để lọc danh sách tên user.

Để thêm users, gọi là bill vào nhóm sudo, chúng ta sử dụng lệnh adduser trong dòng lệnh như thế này:

Để thêm users, gọi là bill vào nhóm sudo, chúng ta sử dụng lệnh adduser trong dòng lệnh như thế này:

adduser bill sudo

Nếu sử dụng lệnh grep để kiểm tra ai đó trong group, chúng ta nhìn thấy username bill.

Nếu bạn muốn cung cấp cho ai đó quyền root, chỉ cần thêm chúng vào sudo.

Để xóa user khỏi sudo:

deluser bill sudo

Lệnh deluser sẽ xóa bill khỏi nhóm sudo.

Bây giờ user bill không còn có thể thực hiện các hành động yêu cầu đặc quyền sudo nữa.

Sử dụng file Sudoers để cấp quyền cụ thể

Điều gì xảy ra nếu chúng ta muốn bill chỉ chạy các lệnh cụ thể với quyền sudo, như networking?

Để làm được chúng ta sẽ tạo một file cấu hình trong /etc/sudoers.d/ gọi là networking.

Sử dụng lệnh sau để tạo file:

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

Thêm đoạn text sau vào file:

Cmnd_Alias     CAPTURE = /usr/sbin/tcdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Những gì chúng ta đã làm trong file trên là tạo một nhóm netadmin. Users trong nhóm netadmin có thể chạy các lệnh được cụ thể trong NETALL. NETALL lần lượt bao gồm tất cả các lệnh dưới tên CAPTURE và SERVERS. Lệnh tcpdump nằm dưới tên CAPTURE, tức là /usr/sbin/tcpdump.

Tiếp theo, chúng ta thêm user bill vào nhóm netadmin:

sudo adduser bill netadmin

Bây giờ, user bill sẽ có thể chạy lệnh tcpdump cùng với các lệnh liên quan đến networking khác.

Lời kết

Nếu bạn làm việc với nhiều users, hiểu về lệnh sudo và file sudoers là điều bắt buộc. Trong hướng dẫn này, bạn đã biết sudo là gì, nó hoạt động như thế nào, cũng như biết cách sửa file sudoers để toàn quyền quản trị quyền hệ thống.

Có thể bạn quan tâm về một số mẹo khác như :

Cách Install FFmpeg vào máy Linux và VPS tại đây.

Làm cách nào để back mail outlook tại đây

Bài viết cùng chủ đề

100 lần tự tìm hiểu cũng không bằng 1 lần được tư vấn