2010-07-19 3 views
4

매우 제한적인 권한으로 프로세스를 시작하고 싶습니다.매우 제한된 권한으로 Linux에서 프로세스를 시작하는 방법은 무엇입니까?

  • 파일을 저장할 수 있지만 자체 폴더에만 저장할 수 있으며 할당량이 제한됩니다.
  • 할당량 내에서 메모리를 사용할 수 있습니다.
  • CPU 시간 (실행되는 모든 하위 프로세스 포함)은 할당량으로 제한됩니다.
  • 자신의 인터페이스와 stdin/out을 통한 컨트롤러 프로그램의 인터페이스를 제외한 다른 프로세스와 이야기 할 수 없습니다.
  • 모든 장치와 상호 작용할 수 없습니다.
  • 네트워크에서 다른 것을 볼 수 없습니다.

(나는 그리드 - 억양 시스템을 구축하고있어 발사 코드는 적대적 일 수 있습니다.).

여기

내가 지금까지있어 무엇 ... - 사전, 일부 사용자를 생성, grid00 -grid99. 구성된 각 디스크/메모리/CPU 할당량을 지정하십시오.

  • 는 사용되지 않은 gridxx 사용자 선택 ... 프로세스를 시작합니다.
  • 사용자의 홈 폴더 내에 폴더를 만듭니다.
  • 해당 폴더의/bin,/usr 등의 하드 링크.
  • 해당 폴더에서/home/gridxx 및/tmp 폴더를 새로 작성하십시오.
  • 프로그램 파일을 복사하십시오.
  • gridxx 사용자로 전환하십시오.
  • 새 폴더에 chroot.
  • 새 프로세스를 시작하십시오.

나는 무엇이 놓쳤습니까?

감사합니다.

+0

당신은 아마도 serverfault.com – Bruno

+0

에 대해 더 많은 답변을 얻었을 것입니다. 저는 이것에 대해 생각했지만 코드에서이 모든 것을 할 것입니다. – billpg

답변

4

표준 리소스 사용 제한 (ulimit)은 처음 세 개를 처리 할 수 ​​있으며 SELinux는 나머지 세 개를 처리 할 수 ​​있습니다. 응용 프로그램에 대한 새 도메인을 만들고 적절한 권한을 지정하기 만하면됩니다.

+0

+1, SELinux .... – Anders

3

FreeBSD jail 기능을 찾고있는 것처럼 들립니다. (물론 FreeBSD의 경우이지만 비슷한 페이지에 대한 링크가 있습니다.)

1

ulimit, chroot, 디스크 할당량 및 방화벽으로이를 수행 할 수 있어야합니다. 모든 형태의 "말하기"(IPC)를 제한하는 것은 어렵습니다. 결국 가상 시스템 집합과 함께 가고 싶어 할 수 있습니다.

관련 문제