Menggunakan FreeIPA untuk sudo terpusat - cara menentukan SEMUA perintah?

9

Saya mengalami kesulitan membungkus kepala saya di sekitar model FreeIPA. Manual FreeIPA menyatakan:

FreeIPA menambahkan ukuran kontrol tambahan dengan kelompok perintah sudo, yang memungkinkan sekelompok perintah untuk didefinisikan dan kemudian diterapkan ke konfigurasi sudo sebagai satu.

Tetapi contoh mereka pada dasarnya berbicara tentang membuat grup perintah sudo dan menambahkan perintah sudo tertentu seperti vimdan lesske grup perintah "file" sudo.

misalnya dari commandline:

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

Tetapi bagaimana Anda menentukan ALLseperti di / etc / sudoers? Bisakah ini wildcard (mis. *)?

HTTP500
sumber

Jawaban:

9

Anda tidak perlu membuat grup perintah jika Anda ingin sekelompok pengguna dapat menjalankan perintah apa pun sudo. Anda hanya perlu aturan sudo yang mengizinkan semua perintah, dan satu seharusnya dibuat untuk Anda secara default ketika Anda menginstal 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
----------------------------

(Jika aturan seperti itu tidak ada, buatlah.)

ipa sudorule-add --cmdcat=all All

Cukup tambahkan pengguna atau grup ke aturan sudo ini yang ingin Anda dapat sudodengan perintah apa pun.

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

Anda juga dapat melakukan ini dari UI Web jika diinginkan.

Michael Hampton
sumber
Aturannya tidak ada secara default dan butuh sedikit usaha untuk mendapatkan aturan yang cocok dengan Anda, yaitu "% admin ALL = (ALL) ALL" tetapi saya pikir saya sedang berada di jalan pencerahan sekarang. Sangat dihargai, terima kasih!
HTTP500
Ini adalah salah satu tugas yang jelas jauh lebih mudah di Web UI daripada baris perintah. Butuh waktu cukup lama untuk mencapai sejauh itu di CLI.
Michael Hampton
Setuju, saya menyelesaikan aturan di Web UI.
HTTP500
Jika Anda ingin aturan berlaku di semua host, saya perhatikan bahwa tanpa menentukan --hostcat=allkapan membuat aturan, sudo tidak diperbolehkan (menambahkan opsi ini ke aturan yang ada dimungkinkan dengan menerbitkan sudorule-mod --hostcat=all).
nivs
2
@ HTTP500 Jika Anda harus melakukan hal-hal yang tidak tercantum dalam OP atau Jawaban yang Diterima, harap berikan langkah / perincian untuk orang lain, yaitu Aturan tidak ada secara default dan butuh sedikit kerja untuk mendapatkan aturan yang cocok dengan milikmu ... Pekerjaan apa yang dibutuhkan? Bagaimana Anda mencapai hasil yang diinginkan?
0xSheepdog
0

Saat Anda ingin menambahkan ALLaturan, Anda bisa menggunakan opsi kategori dengan nilai all. Untuk perintah yang akan --cmdcat=all, untuk host - --hostcat=all, untuk pengguna - --usercat=alldan beberapa lainnya di bawah ini.

Semua opsi ini terlihat di 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
...
abbra
sumber