Saya mencoba membuat file sudoers dengan template yang memungkinkan. File sudoers akan terlihat seperti di bawah ini:
Cmnd_Alias LS = /bin/ls
Cmnd_Alias LESS = /usr/bin/less
Cmnd_Alias DU = /usr/bin/du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Apa yang saya kelola sejauh ini adalah di bawah ini:
Cmnd_Alias LS = ls
Cmnd_Alias LESS = less
Cmnd_Alias DU = du
%support1 ALL=(ALL) NOPASSWD: LS, LESS, DU
Templatnya terlihat seperti di bawah ini:
{% for item in commands %}
Cmnd_Alias {{ item|upper }} = {{ item }}
{% endfor %}
%{{ group }} ALL=(ALL) NOPASSWD: {% for item in commands %}
{{ item|upper}}{% if not loop.last %}, {% endif %}
{% endfor %}
vars
commands:
- ls
- less
- du
Sejauh yang saya tahu, modul template yang tersedia tidak memiliki apa pun yang akan menjalankan perintah di server jauh dan mencetak hasilnya jika tidak saya berpikir untuk mengubah file template agar terlihat seperti di bawah ini:
{% for item in commands %}
Cmnd_Alias {{ item|upper }} = `which {{ item }}`
{% endfor %}
%{{ group }} ALL=(ALL) NOPASSWD: {% for item in commands %}
{{ item|upper}}{% if not loop.last %}, {% endif %}
{% endfor %}
dan hasilnya akan seperti yang saya inginkan.
Apakah ada metode lain yang dapat membuatnya sederhana?
BTW saya sudah memeriksa posting ini