
Windows의 특정 폴더에 대한 읽기 및/또는 쓰기 액세스를 방지하고 해당 폴더에 대한 특정 서비스/프로세스 액세스 권한만 부여하는 방법이 있습니까?
권한은 서비스 기반이 아닌 사용자 기반인 것 같지만 어쨌든 그러한 기능을 달성할 수 있는 방법이 있는지 알고 싶습니다.
답변1
예, Windows 7에서 이 작업을 수행할 수 있는 방법이 있습니다. 하지만 호환성 문제가 발생할 위험이 있는(아마도 상당히 작은) 서비스를 재구성해야 할 수도 있습니다.
서비스와 연결된 보안 ID는 다음과 같이 참조될 수 있습니다.
NT SERVICE\SERVICENAME
여기서는 servicename
서비스의 실제 이름으로 대체됩니다(서비스 관리 도구에서 "서비스 이름"으로 표시되며 기본 서비스 목록에 표시된 표시 이름과 구별됨). GUI를 사용하여 보안 설정을 변경하고 컴퓨터가 도메인에 가입되어 있는 경우 검색 범위를 로컬 컴퓨터로 변경해야 합니다. 또한 이는 현재 설치된 서비스에서만 작동한다는 점에 유의하세요.
다음 명령을 사용하여 해당 서비스의 설치 여부에 관계없이 특정 서비스 이름과 연관된 SID를 확인할 수 있습니다 sc showsid
.
C:\working>sc showsid wjkjk
NAME: wjkjk
SERVICE SID: S-1-5-80-492907775-8774055-3223757035-3566066944-1037782649
명령 을 사용하여 파일이나 폴더에 보안을 설정하는 경우 icacls
SID 앞에 를 붙여 지정할 수 있습니다 *
(예: ) *S-1-5-80-492907775-8774055-3223757035-3566066944-1037782649
.
서비스가 이 보안 ID를 사용하여 파일에 액세스하려면 서비스 SID 유형이 "제한 없음" 또는 "제한됨"으로 구성되어야 합니다. 서비스 SID 유형이 "없음"으로 구성된 경우 서비스 SID가 작동하지 않습니다. 다음 명령 을 사용하여 설치된 서비스의 서비스 SID 유형을 확인할 수 있습니다 sc qsidtype
.
C:\working>sc qsidtype wuauserv
[SC] QueryServiceConfig2 SUCCESS
SERVICE_NAME: wuauserv
SERVICE_SID_TYPE: UNRESTRICTED
서비스 유형이 "없음"인 경우 다음 명령을 사용하여 "제한 없음"으로 변경할 수 있습니다 sc sidtype
.
C:\working>sc qsidtype psexesvc
[SC] QueryServiceConfig2 SUCCESS
SERVICE_NAME: psexesvc
SERVICE_SID_TYPE: NONE
C:\working>sc sidtype psexesvc unrestricted
[SC] ChangeServiceConfig2 SUCCESS
C:\working>sc qsidtype psexesvc
[SC] QueryServiceConfig2 SUCCESS
SERVICE_NAME: psexesvc
SERVICE_SID_TYPE: UNRESTRICTED
이는 서비스를 다시 시작할 때까지 적용되지 않습니다.
메모:당신은해야~ 아니다서비스의 SID 유형을 "없음"에서 "제한됨"으로 변경합니다. 그렇게 하면 서비스가 오작동할 가능성이 거의 확실합니다. 유형을 "없음"에서 "제한 없음"으로 변경하면 문제가 발생할 가능성이 훨씬 줄어듭니다. 서비스 SID 유형이 이미 "제한됨" 또는 "제한 없음"인 경우 변경해서는 안 됩니다.
답변2
모든 서비스가 사용하는 의사 "사용자"라는 이름이 있으므로 SERVICE
이 "사용자" 액세스만 허용하여 간단히 액세스를 제한할 수 있습니다.
그러나 이것은 단일 특정 서비스가 아니기 때문에 귀하가 요청한 것과는 다릅니다. 모든 서비스입니다. 단일 서비스로 제한하는 기본 메커니즘은 없습니다.5월서비스가 시작 시 다른 ID를 사용하도록 강제하는 데 상당한 어려움을 겪을 수 있습니다. 권장하지 않습니다.