네트워크 네임 스페이스 (netns)를 사용하는 아키텍처가 있습니다. 일반 사용자가이 netn에서 일부 작업을 수행하도록 허용하고 싶습니다.
이 게시물 에서 netns-exec.sh
영감을 얻은 다음으로 실행 된 스크립트를 작성할 수 있습니다 .sudo
ip netns exec $1 su $USER -c "$2"
내 sudoer 파일에 추가하십시오.
user ALL=(ALL) /path/to/netns-exec.sh
그러나 나는 그것이 너무 추악하다는 것을 알았습니다. 일반 사용자가 네임 스페이스를 사용할 수 있도록하는 더 나은 솔루션이 있습니까? 유용한 그룹에 사용자를 배치 할 수 있습니까? 나는 그것에 대해 검색했지만 아무것도 찾지 못했습니다.
그것은 것
—
Raspbeguy
sudo
포함 su
날 귀찮게하지 스크립트 자체를. 어쨌든 나는 물건을 포장하는 스크립트를 작성합니다. 그것은 2 개의 사용자 스위치를 만듭니다. 정말 못생긴 것 같아요?
당신을 놀라게 할 것입니다. 사용자는 $ USER를 루트로 수정할 수 있습니다.
—
Stephen
그렇습니다. 그러나 나중에
—
Raspbeguy
sudo
특정 변수 를 제공하는 $SUDO_USER
것이 더 안전 하다는 것을 알았습니다 . 그러나 그것은 여전히 추악합니다.
@Elronnd-커널은 스크립트에서 setuid를 무시합니다
—
Angelo
Cmd_Alias CMD_NETNS = ip netns exec [regexp matching your namespace] su [regexp matching allowed used] -c [regexp matching allowed namespace command]
sudoers 파일에 정의하지 말고 허용 된 사용자를 넣을 그룹을 생성하고이 그룹을이 명령 별칭에 연결하십시오.