2009-03-16 3 views
6

내가 묻는 것을 이해하려면 유닉스에서 SUID의 여러 사용법을 구별하는 것이 중요하다.Unix 기반 플랫폼에서 SUID와 동일한 MS Windows 플랫폼에서 선택할 수있는 것은 무엇입니까?

프로젝트에서 소유하고 있고 SUID 비트가 설정된 사용자 PATH의 실행 파일을 사용하는 프로젝트가 있습니다. 이런 식으로 실행하면 호출하는 사용자가 아니라 파일 소유자의 컨텍스트에서 실행됩니다. 이렇게하면 사용자가 액세스하지 못하는 항목에 액세스 할 수 있으므로 정상적인 파일 시스템 보호로 이러한 사항을 사용자로부터 보호 할 수 있습니다. 이것은 합리적으로 잘 작동합니다. 계획은 프로젝트를 클라이언트 - 서버 아키텍처로 옮기는 것이지만 시간이 좀 걸릴 것입니다. 그 동안 Windows 시스템에서 이러한 유형의 동작을 어떻게 복제 할 수 있습니까?

프로젝트의 실행 파일이 솔직히 SETUID 라이브러리 호출을 호출하지 않는다는 점에 유의하십시오. 솔직히 말해서, 프로젝트에서 무엇을하는지 감안할 때 추가하는 것이 좋습니다. 프로젝트에는 시스템 루트 권한이 필요하지 않습니다. 첫 번째 보안 문제는 사용자 (파일 소유자가 아닌 다른 사용자)가 자신의 파일을 보호해야한다는 것입니다. 파일에 액세스하기 위해 "사용자 컨텍스트"로 전환 할 수 있다면 매우 유용 할 것입니다 시스템을 호출하는 사용자 인 것처럼 처리합니다. (이 방법으로 프로젝트가 만져도 좋고 그렇지 않은지를 쉽게 결정할 수 있습니다.)

프로젝트는 C와 Java의 조합으로 작성됩니다. SUID 세트가있는 C 프로그램은 Java 코드를 호출합니다 ...

나는 이러한 모든 메커니즘을 알고 싶어 해요, 특히 이슈들에 집중하고

:

  1. C와 Java 및 적합;
  2. 비 Windows 프로그래머 용으로 구현하기 쉽고;
  3. Windows에 고유 한 최소한의 코딩 만 필요합니다.

일부 솔루션이 우수하면이 점에 대해 알고있는 모든 의견을 공유하십시오.

참고 :

  1. LogonUser는 : 일반 텍스트 암호가 필요합니다. 그게 어떻게 대답일까요?
  2. RunAs : PROMPT!에 암호를 입력해야합니다! ... LogonUser와 마찬가지로 더욱 악화됩니다. 나는 이것이 어떻게 대답인지 보지 못한다.
+0

적절한 해결책은 서비스를 설치하는 것입니다. –

답변

3

Windows에 SETUID가 있다고 생각하지 않지만 다른 사용자로 프로세스를 시작할 수 있습니다. '그래서 shouldn, 이러한 기능은 꽤 좋은에 대한

LogonUser

CreateProcessAsUser

워드 프로세서 : 당신은 C를 사용하는 경우, 두 개의 주요 윈도우 특정 함수는 조사해야합니다 정말로있다 그 엄청난 도전이 되라. 기본적으로 LogonUser를 사용하여 사용자를 가장하고 CreateProcessAsUser를 사용하여 해당 사용자로 JVM을 시작합니다.

RUNAS 명령을 볼 수도 있지만 사용자의 필요에 부합하는지 여부는 확실하지 않습니다.

Using Windows security in Cygwin는 기본적으로 그들이 암호를 요구하지 않고 보안 토큰을 제공하는 사용자 정의 LSA 인증 패키지를 설치 :

+0

고마움, 그들을 들여다 보며 ... RT –

4

Cygwin에서 여기에 사용자 암호를 요구하지 않고 그들이이 작업을 수행하는 방법에 대한 좋은 논의가있다. 대체로 인증 패키지가 설치되어 있지 않으면 문서화되지 않은 NtCreateToken API를 사용합니다.

가장 할 응용 프로그램이 java를 호출하기 전에 cygwin setuid 호출을 할 수 있습니다.

+0

네, 중년 이후 우리가 해왔 던 것과 정확히 같습니다. 그러나 사용자가 Cygwin을 설치해야한다는 점을 명심해야하지만, 사용자가 너무 많은 패키지를 설치해야하는 것을 기쁘게 생각하지는 않습니다. 특히 패키지에 대한 가치를 이해하거나 인식하지 못하는 경우에는 더욱 그렇습니다. 하지만 이것이 (다른 응답이 없다는 것을 감안할 때) 이것이 유일한 다른 방법 인 것처럼 보입니다. –

+0

아참. 보안 관점에서 볼 때 악몽입니다. Cygwin, IMO에서 벗어나는 또 하나의 이유! –

관련 문제