![sudo 비밀번호를 하드코딩하지 않고 프로그램의 네트워크 인터페이스에 권한을 부여하는 올바른 방법은 무엇입니까? [복사]](https://linux55.com/image/172003/sudo%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EC%97%90%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EB%B6%80%EC%97%AC%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
저는 GNU/Linux에서 일부 센서를 기록하는 작은 도구를 개발 중입니다. 일부 센서는 UDP를 통해 데이터를 전송하므로리부틴캡쳐해라.
웹 애플리케이션에서 센서 시작/중지를 제어하고 싶지만 웹 인터페이스를 들으려면 루트 권한이 필요합니다. 버튼을 클릭할 때마다 스니퍼를 실행하기 위해 sudo 비밀번호를 하드코딩하는 아이디어가 마음에 들지 않습니다. 모든 프로세스를 루트로 실행하는 것을 피하고 싶지만 인터페이스 액세스 권한을 부여하는 것은 확실히 올바른 방법이어야 합니다. 스니핑을 시작하기 위해 Python 또는 bash 스크립트에서 실행할 수 있는 프로세스입니다.
누구든지 나에게 조언을 줄 수 있습니까?
답변1
setcap 명령은 이 문제를 해결합니다.
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip <binaryFile>