기술나눔

Windows에서는 icacls 명령을 사용하여 Apache 사용자에게 액세스 권한을 부여합니다.

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

무료 클라우드 서버, Sanfeng Cloud, 사용자 권한 프로세스 디버깅.
Windows에서 icacls 명령은 파일 및 디렉터리에 대한 권한을 수정하는 매우 강력한 도구입니다. 그러나 Windows 기본 웹 서버(예: IIS)는 일반적으로 IUSR, IWAM_ 및 컴퓨터 이름과 같은 특정 사용자 계정으로 실행되거나 최신 버전의 Windows에서는 응용 프로그램 풀 구성 사용자 지정 사용자 계정을 통해 실행됩니다. . Apache는 일반적으로 Windows에 사전 설치되어 제공되지 않지만 설치하면 (아마도 서비스 계정과 같은 패키지를 통해 실행될 수 있습니다.)

Apache는 Windows에서 apache라는 사용자 계정을 기본적으로 사용하지 않으므로 먼저 Apache가 실제로 어떤 사용자로 실행되고 있는지 확인해야 합니다. 이는 일반적으로 Apache 서비스 속성에서 찾을 수 있습니다(서비스 관리자에서 Apache 서비스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 로그인 탭 확인).

Apache 서비스가 실행되는 계정(여기에서는 이를 호출함)을 식별하고 icacls 명령을 사용하여 해당 계정에 특정 파일 또는 디렉터리에 대한 액세스 권한을 부여하려는 경우 다음 단계를 수행할 수 있습니다.

명령 프롬프트를 엽니다(관리자 권한으로).
icacls 명령을 사용하여 권한을 부여합니다. C:pathtoyourdatabasefiles 디렉터리에 대한 읽기 권한을 부여하려는 경우 다음 명령을 사용할 수 있습니다.
cmd
icacls “C:데이터베이스 파일 경로” /grant “”:R
여기서 /grant 매개변수는 권한을 부여하는 데 사용되며, ""는 Apache 서비스의 실행 계정 이름(실제 계정 이름으로 바꾸십시오), :R은 읽기 권한을 나타냅니다.

하위 디렉터리와 파일에도 동일한 권한을 부여하려면 /T 매개변수를 추가하면 됩니다(디렉터리 트리의 모든 파일과 디렉터리를 재귀적으로 처리함을 의미함).
cmd
icacls “C:데이터베이스 파일 경로” /grant “”:R /T
계정이 디렉터리 트리를 통과할 수 있도록 하려면(특정 디렉터리에 대한 액세스 권한이 명시적으로 부여되지 않은 경우에도) /I(상속) 옵션을 추가하는 것을 고려할 수도 있지만 일반적으로 이는 필요하지 않습니다. /grant 상속은 이미 암시적으로 처리되었습니다. 그러나 권한이 상속 가능으로 명시적으로 설정되었는지 확인하려면 다음을 수행할 수 있습니다.
cmd
icacls “C:데이터베이스 파일 경로” /grant “”:(OI)(CI)R
여기서 (OI)는 개체 상속을 의미하고, (CI)는 컨테이너 상속을 의미하며, R은 여전히 ​​읽기 권한을 의미합니다.

Apache 서비스에서 실제로 사용하는 계정 이름으로 바꿔야 한다는 점에 유의하세요. 확실하지 않은 경우 서비스 관리자로 돌아가서 Apache 서비스의 속성을 볼 수 있습니다.

또한 ODBC를 통해 데이터베이스 파일에 액세스하고 파일이 네트워크 위치에 있거나 다른 보안 메커니즘(예: 파일 암호화)으로 보호되는 경우 Apache가 해당 파일에 성공적으로 액세스할 수 있도록 다른 요소를 고려해야 할 수도 있습니다. 그러나 대부분의 파일 기반 데이터베이스(예: dBASE)의 경우 위 단계만으로 충분합니다.