Lệnh sudo và file sudoers là gì? Cách sử dụng
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:
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
100 lần tự tìm hiểu cũng không bằng 1 lần được tư vấn