2012-07-11 2 views
3

저는 온라인 판단 시스템을 설계하려는 학생입니다.프로그램의 파일 사용 권한을 제한하는 방법

나는 서버를 안전하게 유지하기 위해 프로그램에 파일을 읽거나 쓸 수있는 권한이 없도록해야합니다. 프로그램은 다른 사용자가 온라인 판단 시스템을 통해 제출하는 프로그램입니다. 그것은 끊임없는 프로그램 그 자체가 아닙니다.

온라인 판사 시스템의 사용자가 소스 코드를 제출하면 서버 프로그램이 컴파일되어 실행됩니다. 따라서 서버 프로그램은 서버를 안전하게 유지해야합니다.

내 플랫폼은 Windows이고 프로그래밍을 위해 C++을 사용합니다.

누구든지 내게 어떤 제안을 줄 수 있습니까?

+0

왜 프로그램을 C++ @ Windows에 설치 하시겠습니까? –

+0

온라인 판사가 지원하고자하는 언어가 C++ 인 경우 유효한 질문 일 것이라고 생각합니다. – nhahtdh

+5

프로그램을 호스트에 대한 권한이없는 사용자로 실행하십시오 (* nix 상자의'nobody '와 유사). –

답변

2

프로그램 자체가 수행하는 작업을 쉽게 막을 수 없으며 프로그램이 비 악의적인지 여부를 확인할 수 없습니다.

할 수있는 일 : 액세스 권한이 거의없는 사용자로 프로그램을 실행하십시오. 서버 프로그램은 해당 사용자가되어 컴파일 한 프로그램을 실행해야합니다. 프로그램을 실제로 컴파일하기 위해 해당 사용자 계정을 사용하고 싶을 수도 있습니다 (드물 긴하지만 컴파일러를 이용하는 방법을 알고있는 경우).

프로그램을 다른 사용자로 실행하는 windows 명령은 runas입니다.

+0

제 생각에는 CreateProcessAsUser를 사용하여 비 그룹 사용자와 함께 사용자 프로그램을 실행하는 것입니다. 그러나이 방법은 여전히 ​​프로그램 쓰기 또는 파일 읽기를 제한 할 수 없습니다. 특정 방법을 말해 줄 수 있어요? – SXKDZ

+1

@ user1518008 어떻게 파일 읽기 또는 쓰기를 제한하지 않습니까? 프로그램을 실행하는 사용자가 파일이나 디렉토리에 대한 읽기 또는 쓰기 권한이없는 경우 어떻게 파일을 읽거나 쓸 수 있습니까? – pmr

+0

그건 내 문제 야. 서버 프로그램이 모든 디렉토리 및 파일을 탐색하여이 비 그룹 사용자에게 권한을 변경하는 경우. 효율이 낮을 수 있습니다? – SXKDZ

0

파일 및 디렉터리의 사용 권한을 변경 한 다음 CreateProcessAsUser를 사용하여 사용자가 제출 한 프로그램을 제한된 (비 접근에 가까운) 액세스 권한이있는 사용자로 실행할 수 있습니다.

+0

파일 및 디렉토리의 모든 권한을 변경하는 방법은 무엇입니까? – SXKDZ

관련 문제