sudo 없이 iptables를 사용하기 위해 바이너리에 권한을 부여하는 올바른 방법

sudo 없이 iptables를 사용하기 위해 바이너리에 권한을 부여하는 올바른 방법

내 프로그램에는 필요에 따라 항목을 추가/제거하기 위해 iptables/ip6tables에 액세스해야 하는 바이너리가 있습니다. 사용자가 매번 sudo를 사용할 필요 없이 바이너리를 실행할 수 있도록 환경을 설정하는 설치 스크립트를 갖는 것이 합리적으로 보입니다. 사용자가 sudo를 사용하는 유일한 시간은 설치를 위한 것입니다. 그 후에는 자신의 계정을 사용하여 바이너리를 실행할 수 있습니다. 문제는 설치 스크립트에서 이 기능을 활성화하려면 어떤 명령을 실행해야 할지 잘 모르겠다는 것입니다.

답변1

이 권한이 필요한 사용자를 위한 그룹을 만듭니다. 아마도 그러한 그룹이 이미 존재할 수도 있습니다 users.

그런 다음 실행합니다(루트로, 아마도 를 통해 sudo).

# chgrp users /usr/bin/iptables
# chmod u+rxs,o= /usr/sbin/iptables

그러면 이 그룹의 누군가가 루트로 명령을 실행할 수 있어야 합니다. ( iptables경로를 적절하게 조정해주세요.)

또 다른 방법은 사용자/그룹 허용을 사용하여 sudo명령을 실행하는 것입니다. 보안 측면 에서는 명령 o=에서 생략되지 않는 한 동일합니다 chmod. 하지만 이 접근 방식은 좀 더 현대적입니다. sudo아마도 취향의 문제일 것입니다.

관련 정보