마운트된 네임스페이스를 공유 해제하는 데 CAP_SYS_ADMIN이 필요한 이유는 무엇입니까?

마운트된 네임스페이스를 공유 해제하는 데 CAP_SYS_ADMIN이 필요한 이유는 무엇입니까?

내 프로젝트 중 하나에 필요한오직마운트 네임스페이스는 공유되지 않으며 CAP_SYS_ADMIN 기능이 필요합니다(참조:네임스페이스). 사용자 네임스페이스를 공유 해제하여 기능 없이 새 설치 네임스페이스를 생성하는 것도 가능하지만 다른 제한 사항이 있으므로 이를 피하고 싶습니다(예: setuid 프로그램은 거기에서 호출할 수 없음). 설치 공간을 모든 사람이 공유하지 않도록 하는 setuid 프로그램을 작성하려고 하는데 이것이 안전하지 않을지 궁금합니다. 현재로서는 이런 일이 일어날 시나리오를 상상할 수 없습니다. 그렇다면 일반 사용자가 공유 설치 공간을 취소할 수 없는 이유는 무엇일까요?

답변1

코어를 선택하는 이유는 두 가지로 생각해볼 수 있습니다.

  1. 마운트 네임스페이스를 복제하면 이동식 미디어를 포함한 모든 마운트가 /다시 마운트되지 않은 경우 MNT_SHARED(예: 에서 ) 고정됩니다.systemd
  2. 또한 특정 setuid 프로그램을 혼동시킬 가능성이 있으므로 권한이 없는 사용자가 "예기치 않은" 상태를 생성하는 것을 허용하지 않습니다. 따라서 이것이 유용하다고 생각할 특별한 이유가 없다면 이것이 더 안전한 선택입니다. 그들은 마운트된 네임스페이스를 복제할 수 있는 권한을 원하지만 복제할 수 없는 중요한 이유를 생각할 수 없습니다.하다그것과 관련된 모든 것. 분명히 당신은 어떤 이유를 생각했지만, 당신의 질문을 읽어도 그것이 무엇인지 짐작할 수 없었습니다 :-).

관련 정보