2012-07-02 1 views
0

java 1.6에서 log4j를 사용하고 있습니다.
exe4j를 사용하여 exe 파일을 만들고 있는데 프로덕션 폴더에 넣을 때
로그가 성공적으로 만들어지고 있습니다.exe를 Windows 서비스로 이동 - 로그 파일 생성 중지

지금, 나는이 서비스 EXE
로 설정되어있다 (exe4j에서 "서비스"체크 박스를 확인하고 SC 명령으로 설치)
및 로그 파일이 생성되는 것을 중단했다.

거기에 대한 설명이 나 해결책이 있습니까? 감사합니다. .

답변

1

서비스가 로그 폴더에 쓸 수있는 권한이없는 계정 (LOCAL SERVICE?)으로 실행되고있을 가능성이 큽니다.

서비스가 실행되고있는 계정을 확인하려면 서비스 패널에서 서비스를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 로그 온 탭을 봅니다 (Windows 7의 경우 ... 다른 Windows 버전의 정확한 단계는 다를 수 있지만 아이디어는 동일합니다.)

최소한의 권한으로 서비스를 계속 실행하고 로그 폴더에 대한 액세스 권한을 수정하여 해당 서비스가 해당 폴더에 쓰고있는 계정 (Principal of Least Privilege)을 기록하도록 허용하는 것이 좋습니다. 물론 을 제외하고는이라는 폴더에 로그인하십시오.

+0

최소 권한 && 로그 이외의 것은 없습니다 - 두 가지 점을 모두 설명 할 수 있습니까? – Jeb

+1

일반적으로 작업을 수행하는 데 필요한 최소한의 권한을 가진 프로그램을 실행하고 싶습니다 (내 대답에 대한 링크 추가). 로그를 기록 할 수 있도록 폴더에 대한 쓰기 권한을 부여하는 경우 해커가 어떻게 쓸 수 있는지를 결정할 수 없도록하려는 다른 폴더에 폴더를 넣지 않으려 고합니다. 당신의 로그 폴더. 예를 들어, 로그가 기록 된 것과 같은 폴더에 JAR 파일을 넣으면 성공적인 해커가 JAR 파일을 수정할 수 있습니다. –

+0

또한 로그 파일은 프로그램 파일이 아닌 Window의 응용 프로그램 데이터 디렉토리 중 하나에 기록되어야합니다. –