sudo를 사용하지 않고 sh 스크립트에서 "brctl addbr br-lan" 명령을 사용하여 브리지를 생성해야 합니다.
나는 이와 같은 스크립트를 가지고 있습니다.
brctl addbr br-lan
ifconfig lo up
내 스크립트에 대한 기능을 설정하려고 합니다.
sudo ./setcap cap_net_raw,cap_net_admin,cap_dac_override+eip
./myscript.sh
그러나 그것은 아무것도 바꾸지 않습니다.
"./myscript.sh"를 호출하면 다음 출력이 반환됩니다.
add bridge failed: Operation not permitted
SIOCSIFFLAGS: Operation not permitted
루트 권한 없이 스크립트를 실행하려면 어떻게 해야 합니까? 아니면 스크립트에 대해 어떤 기능을 정의해야 합니까?
텍사스.
답변1
함수가 필요한 것은 스크립트가 아니라 인터프리터이기 때문에 스크립트에 함수를 할당할 수 없습니다. 그래도 문제가 해결되지 않으면 sudo
루트 권한으로 스크립트를 실행하는 다른 방법을 찾아야 합니다.
일부 컨텍스트(예: 실행할 수 없는 이유 sudo
또는 스크립트가 루트 계정에서 자연스럽게 실행되지 않는 이유 언급)를 포함하도록 질문을 업데이트하면 여기 있는 누군가가 몇 가지 추가 제안을 제공할 수도 있습니다.
답변2
sudo에는 세분화된 권한이 있다는 것을 알고 계셨습니까? 예를 들어, 사용자에게 한 가지 작업(비밀번호 유무에 관계없이)을 수행할 수 있는 권한을 부여할 수 있습니다. 이것은전부는 아니거나 아무것도 아니다.
go
lang이나 기타 고급 컴파일 언어로 작성하는 것을 고려해보세요 . 그것은 능력을 허용할 것이다.이 컨테이너를 관리하려면
docker
일부 권한을 사용하고 부여하는 것이 좋습니다 .sudo
컨테이너/이미지 이름을 바꾸면 권한 상승이 허용될 수 있으므로(이 이름을 가진 모든 컨테이너/이미지가 동일한 것은 아님) 허용하는 항목에 주의하세요.