it-swarm-vi.com

Cú pháp sudoers thích hợp để thêm người dùng là gì?

Theo các nhận xét trong /etc/sudoers (Fedora 13):

## Syntax:
##
##    user  MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.

Hai câu hỏi liên quan của tôi:

  1. ALL=(ALL) ALL có nghĩa là gì trong dòng sau:

    root  ALL=(ALL)   ALL
    
  2. Tôi đã thử nghiệm hai dòng này nhưng tôi không thể tìm ra chúng khác nhau về mặt chức năng như thế nào:

    superadm    ALL=(ALL)    ALL
    superadm    ALL=ALL
    

Tôi đã đọc hướng dẫn nhưng đặc tả cú pháp rất khó theo dõi. Tôi đã nhận ra rằng phần (ALL) ALL Là thông số kỹ thuật của lệnh và thẻ nhưng tôi vẫn không thể hiểu được.

51
Belmin Fernandez

Lưu ý: Tôi đang trả lời 1. , vì Ignacio đã trả lời 2. .

Trong mục Sudo sau đây:

superadm  ALL=(ALL)   ALL

có bốn lĩnh vực:

  • Người đầu tiên chỉ định người dùng sẽ được cấp đặc quyền cho một số lệnh.
  • Cái thứ hai hiếm khi được sử dụng. Đây là danh sách các tên máy chủ lưu trữ mục Sudo này sẽ có hiệu lực. Trên các thiết lập tiêu chuẩn, chỉ có một Máy chủ lưu trữ có liên quan (localhost), vì vậy trường này thường được để lại là ALL.
  • Trường 4th là danh sách các lệnh superadm sẽ có thể chạy với các đặc quyền nâng cao. ALL có nghĩa là tất cả các lệnh. Mặt khác, sử dụng danh sách các lệnh được phân tách bằng dấu phẩy.
  • Trường thứ ba (trường viết (…) đó là tùy chọn) chỉ định người dùng (và nhóm) nào mà người dùng superadm sẽ có thể chạy các lệnh sau dưới dạng. ALL có nghĩa là họ có thể chọn bất cứ thứ gì (không bị giới hạn). Trường này được bỏ qua, nó có nghĩa giống như (root).

Ví dụ:

alan   ALL = (root, bin : operator, system) /bin/ls, /bin/kill

Ở đây, alan được phép chạy hai lệnh /bin/ls/bin/kill as root (hoặc bin), có thể có thêm operator hoặc system nhóm đặc quyền.

Vì vậy, alan có thể chọn chạy ls với tư cách là người dùng bin và với các đặc quyền nhóm của operator như thế này:

Sudo -u bin -g operator /bin/ls /whatever/directory

Nếu -u bị bỏ qua, nó giống như -u root. Nếu -g được bỏ qua, không có đặc quyền nhóm bổ sung nào được cấp.

94
Stéphane Gimenez

Từ trang sudoers(5) man, MÔ TẢ phần, Runas_Spec tiểu mục:

Runas_List đầu tiên cho biết người dùng nào có thể chạy lệnh thông qua Sudo xông s -u Lựa chọn.

...

Nếu không có Runas_Spec được chỉ định, lệnh có thể được chạy dưới dạng root và không nhóm nào có thể được chỉ định.

Vì vậy, không có sự khác biệt về chức năng khi cố gắng chạy các lệnh như root, tức là khi không sử dụng -u với Sudo. Sự khác biệt quan trọng khi cố gắng chạy các lệnh như những người dùng khác; cái sau sẽ ngăn chặn điều này, nhưng cái trước sẽ cho phép nó.

9