Tôi có một kiến trúc sử dụng không gian tên mạng (netns). Tôi muốn cho phép người dùng thường xuyên thực hiện một số thao tác trong các mạng này.
Tôi có thể viết một kịch bản netns-exec.sh
, lấy cảm hứng từ bài đăng này , được thực hiện với sudo
, chứa:
ip netns exec $1 su $USER -c "$2"
và thêm vào tập tin sudoer của tôi:
user ALL=(ALL) /path/to/netns-exec.sh
Nhưng tôi thấy nó xấu đến nỗi tôi hoàn toàn có thể gặp ác mộng về nó. Có một giải pháp tốt hơn để cho phép người dùng thường xuyên sử dụng không gian tên? Có thể đưa người dùng vào một số nhóm hữu ích? Tôi đã tìm kiếm về nó nhưng không tìm thấy gì.
sudo
chứa một su
thứ gây khó chịu cho tôi, không phải chính kịch bản. Dù sao, tôi sẽ viết một kịch bản để bọc. Nó làm cho 2 người dùng chuyển đổi, điều đó thực sự xấu xí, bạn có nghĩ vậy không?
sudo
cung cấp một biến cụ thể $SUDO_USER
, an toàn hơn. Nhưng điều đó vẫn xấu.
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
trong tệp sudoers của mình và sau đó tạo một nhóm trong đó bạn đặt người dùng được phép của mình và liên kết nhóm này với bí danh lệnh này.