Mam architekturę używającą sieciowych nazw (netns). Chciałbym umożliwić zwykłym użytkownikom wykonywanie niektórych operacji w tych sieciach.
Mógłbym napisać skrypt netns-exec.sh
, zainspirowany tym postem , wykonany za pomocą sudo
, zawierający:
ip netns exec $1 su $USER -c "$2"
i dodaj do mojego pliku sudoer:
user ALL=(ALL) /path/to/netns-exec.sh
Ale uważam to za tak brzydkie, że mogłam mieć z tego koszmary. Czy istnieje lepsze rozwiązanie umożliwiające zwykłym użytkownikom korzystanie z przestrzeni nazw? Czy można umieścić użytkowników w kilku przydatnych grupach? Szukałem, ale nic nie znalazłem.
sudo
zawierające a su
nie sam skrypt. W każdym razie napiszę skrypt, żeby to owinąć. To sprawia, że 2 przełączniki użytkownika, to naprawdę brzydkie, nie sądzisz?
sudo
dostarczyłem określoną zmienną $SUDO_USER
, która jest bezpieczniejsza. Ale to wciąż brzydkie.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
w pliku sudoers, a następnie nie utworzysz grupy, w której umieścisz dozwolonych użytkowników, i powiążesz tę grupę z tym aliasem poleceń.