Sử dụng FreeIPA cho sudo tập trung - làm thế nào để chỉ định TẤT CẢ các lệnh?


9

Tôi đang có một thời gian khó khăn trong đầu của tôi xung quanh mô hình của FreeIPA. Hướng dẫn sử dụng FreeIPA nêu rõ:

FreeIPA bổ sung một biện pháp kiểm soát bổ sung với các nhóm lệnh sudo, cho phép một nhóm các lệnh được xác định và sau đó được áp dụng cho cấu hình sudo làm một.

Nhưng các ví dụ của họ về cơ bản nói về việc tạo một nhóm lệnh sudo và thêm các lệnh sudo cụ thể như vimlessvào nhóm lệnh sudo "files".

ví dụ từ dòng lệnh:

ipa sudocmdgroup-add --desc 'File editing commands' files

ipa sudocmd-add --desc 'For editing files' '/usr/bin/vim'

ipa sudocmdgroup-add-member --sudocmds '/usr/bin/vim' files

Nhưng làm thế nào để bạn xác định ALLnhư bạn sẽ làm trong / etc / sudoers? Điều này có thể được ký tự đại diện (ví dụ *)?

Câu trả lời:


9

Bạn không cần tạo các nhóm lệnh nếu bạn muốn một nhóm người dùng có thể thực hiện bất kỳ lệnh nào với sudo. Bạn chỉ cần một quy tắc sudo cho phép tất cả các lệnh và một lệnh sẽ được tạo cho bạn theo mặc định khi bạn cài đặt FreeIPA.

# ipa sudorule-find All
-------------------
1 Sudo Rule matched
-------------------
  Rule name: All
  Enabled: TRUE
  Host category: all
  Command category: all
  RunAs User category: all
  User Groups: admins
----------------------------
Number of entries returned 1
----------------------------

(Nếu quy tắc như vậy không tồn tại, hãy tạo nó.)

ipa sudorule-add --cmdcat=all All

Chỉ cần thêm người dùng hoặc nhóm vào quy tắc sudo này mà bạn muốn có thể thực hiện sudovới bất kỳ lệnh nào.

ipa sudorule-add-user --groups=admins All

Bạn cũng có thể làm điều này từ Web UI nếu bạn thích.


Quy tắc không tồn tại theo mặc định và phải mất một chút công sức để có được quy tắc phù hợp với quy tắc của bạn, tức là "% quản trị viên TẤT CẢ = (TẤT CẢ) TẤT CẢ" nhưng tôi nghĩ bây giờ tôi đang trên con đường giác ngộ. Rất cảm kích, cảm ơn!
HTTP500

Đây là một trong những nhiệm vụ rõ ràng là dễ dàng hơn nhiều trong giao diện người dùng web so với dòng lệnh. Tôi đã mất khá nhiều thời gian để đạt được điều đó trong CLI.
Michael Hampton

Đồng ý, tôi đã hoàn thành quy tắc trong giao diện người dùng web.
HTTP500

Nếu bạn muốn quy tắc có hiệu lực trên tất cả các máy chủ, tôi nhận thấy rằng không chỉ định --hostcat=allkhi tạo quy tắc, sudo không được phép (thêm tùy chọn này vào quy tắc hiện có là có thể bằng cách ban hành sudorule-mod --hostcat=all).
nivs

2
@ HTTP500 Nếu bạn phải làm những việc không được liệt kê trong OP hoặc Câu trả lời được chấp nhận, vui lòng cung cấp các bước / chi tiết cho người khác, tức là Quy tắc không tồn tại theo mặc định và phải mất một chút công việc để có quy tắc phù hợp với bạn ... Cần bao nhiêu công việc? Làm thế nào bạn đạt được kết quả mong muốn?
0xSheepdog

0

Khi bạn muốn thêm ALLvào một quy tắc, bạn có thể sử dụng tùy chọn danh mục với giá trị all. Đối với các lệnh sẽ --cmdcat=all, đối với máy chủ - --hostcat=all, đối với người dùng - --usercat=allvà một số chi tiết bên dưới.

Tất cả các tùy chọn này được hiển thị trong ipa sudorule-add --help:

$ ipa sudorule-add --help
Usage: ipa [global-options] sudorule-add SUDORULE-NAME [options]

Create new Sudo Rule.
Options:
  -h, --help            show this help message and exit
  --desc=STR            Description
  --usercat=['all']     User category the rule applies to
  --hostcat=['all']     Host category the rule applies to
  --cmdcat=['all']      Command category the rule applies to
  --runasusercat=['all']
                        RunAs User category the rule applies to
  --runasgroupcat=['all']
                        RunAs Group category the rule applies to
...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.