Trong hệ điều hành Linux, sudo được dùng khi muốn thực thi một lệnh với quyền của một user khác. Các khai báo cấp quyền này được đặc tả trong file “/etc/sudoers”. Những ghi nhận (log) của hệ thống khi sudo được sử dụng theo mặc định nằm trong file /var/log/secure (Red Hat/Fedora / CentOS Linux) hoặc /var/log/auth.log (Ubuntu / Debian Linux).

– Nếu người triệu gọi sudo là root hoặc khi người triệu gọi và người được “mượn” quyền là một thì sẽ không có xác nhận mật khẩu. Còn ngoài ra, sudo yêu cầu người dùng phải tự xác nhận bằng mật khẩu. Lưu ý ở đây là trong cấu hình mặc định thì mật khẩu để xác nhận này là mật khẩu của người triệu gọi, chứ không phải mật khẩu của root. Khi người dùng đã được xác nhận xong, hệ thống sẽ thiết lập một khoảng thời gian cho phép người triệu gọi tiếp tục dùng sudo mà không cần phải xác nhận mật khẩu lại (mặc định là 15 phút).

– Nếu không có khai báo định danh của user đích rõ ràng, mặc định sudo sẽ xem như ta đang mượn quyền root để thực thi. Nếu ta muốn “mượn” một người dùng nào khác thì khai báo định danh rõ ràng của người đó. Bài viết này sẽ hướng dẫn các bạn khai báo và sử dụng với sudo

1. Cấp quyền sudo cho người dùng

Mở tệp tin /etc/sudoers
Đây là file chứa tất cả những thiết lập cho sudo. Nội dung trong file này thường được đặc tả bằng cú pháp sau:

USER HOSTNAME=(TARGET-USERS) COMMAND

Trong đó:

  • USER: Tên của người sử dụng
  • HOSTNAME: Tên máy mà luật được áp dụng lên. Tham số này cần thiết vì sudo được thiết kế để bạn có thể dùng một file sudoers cho các máy khác. Lúc này sudo sẽ xem máy đang chạy được dùng các luật nào. Nói cách khác, bạn có thể thiết kế các luật cho từng máy trong hệ thống.
  • TARGET-USERS: Tên người dùng đích cho “mượn” quyền thực thi.
  • COMMAND: Tên “lệnh” (thực ra là các chương trình thực thi) mà người dùng được quyền thực thi với bất kỳ tham số nào mà họ muốn. Tuy nhiên bạn cũng có thể đặc tả các tham số của lệnh (bao gồm các dấu thay thế wildcards). Ngược lại, có thể dùng kí hiệu “” để ám chỉ là lệnh chỉ được thực thi mà không có tham số nào cả.
  • Nếu là cấp quyền cho group, ta thay tham số USER bằng %GROUP

Ví dụ 1: Trên Ubuntu, các giá trị mặc định trong file sudoers gồm có

Defaults !lecture,!tty_tickets,!fqdn 
root ALL=(ALL) ALL 
%admin ALL=(ALL) ALL

Chỉ thị ” root ALL=(ALL) ALL” tuân theo đúng cú pháp thường gặp, có nghĩa là người dùng root, trên tất cả các máy, có thể mượn quyền tất cả các người dùng, để thực thi tất cả các lệnh.
Chỉ thị “%admin ALL=(ALL) ALL” cũng tuân theo cú pháp đó, có nghĩa là nhóm người dùng admin, trên tất cả các máy, có thể mượn quyền tất cả các người dùng, để thực thi tất cả các lệnh.

Ví dụ 2: cho phép user1 được cấp quyền sudo full

Có 2 cách để thực hiện việc này như sau:
– thêm user1 vào nhóm admin (mặc định đã có quyền sudo)
– thêm lệnh cấp quyền cho user1 như sau:

user1 ALL=(ALL) ALL

Ví dụ 3: Cho phép subadmin được thực hiện bất kỳ lệnh nào trong /usr/bin ở máy linux01

subadmin linux01 = /usr/bin/*

2. Thực thi quyền sudo

Sử dụng lệnh sudo trước câu lệnh thực thi thông thường:

sudo rm -rf /home/training/.recently-used

Nếu ta muốn “mượn” một người dùng nào khác thì khai báo định danh rõ ràng của người đó:

sudo -u training rm -rf /home/training/.recently-used

Nguồn: tổng hợp từ internet

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây