Saya memiliki arsitektur menggunakan namespace jaringan (netns). Saya ingin mengizinkan pengguna biasa melakukan beberapa operasi di jaringan ini.
Saya bisa menulis skrip netns-exec.sh
, terinspirasi oleh posting ini , dieksekusi dengan sudo
, berisi:
ip netns exec $1 su $USER -c "$2"
dan tambahkan ke file sudoer saya:
user ALL=(ALL) /path/to/netns-exec.sh
Tetapi saya merasa sangat buruk sehingga saya benar-benar bisa mendapatkan mimpi buruk tentang itu. Apakah ada solusi yang lebih baik untuk memungkinkan pengguna biasa menggunakan ruang nama? Apakah mungkin untuk menempatkan pengguna ke beberapa grup yang berguna? Saya mencari tentang itu tetapi tidak menemukan apa pun.
sudo
mengandung su
yang mengganggu saya, bukan naskah itu sendiri. Pokoknya saya akan menulis naskah untuk membungkusnya. Itu membuat 2 switch pengguna, itu benar-benar jelek, bukan begitu?
sudo
menyediakan variabel tertentu $SUDO_USER
, yang lebih aman. Tapi itu masih jelek.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
dalam file sudoers Anda dan kemudian membuat grup di mana Anda menempatkan pengguna yang diizinkan, dan kaitkan grup ini ke alias perintah ini.