SUA(UNIX 기반 응용 프로그램용 하위 시스템)는 기본적으로 Microsoft® Windows® 응용 프로그램과 함께 UNIX 셸, 유틸리티 및 응용 프로그램을 실행하는 POSIX 규격(Portable Operating System Interface 규격) 하위 시스템을 제공합니다. 이 항목에서는 POSIX 규격 운영 체제가 필요한 사용자의 몇 가지 작업 고려 사항에 대해 설명합니다.
POSIX 셸 호환성
SUA Korn 셸은 POSIX 동작과 거의 동일한 일반 Korn 셸 동작을 수행합니다. 일부 작업 환경에 엄격한 POSIX 규칙이 필요하면 UNIX 기반 응용 프로그램용 하위 시스템을 위한 유틸리티 및 SDK(소프트웨어 개발 키트) 다운로드 패키지에 있는 도움말 파일의 ksh(1) 설명서에서 Korn 셸과 POSIX의 차이점을 참조하십시오.
Korn 셸에서 전체 POSIX.2 규칙을 가져오려면 POSIX 모드에서 Korn 셸을 실행해야 합니다. POSIX 모드에서 Korn 셸을 실행하려면 다음 중 하나를 수행하십시오.
-
-o posix 옵션으로 Korn 셸을 엽니다.
-
셸 내에서 명령 집합 -o posix를 실행합니다.
-
POSIXLY_CORRECT 셸 매개 변수를 설정합니다.
POSIX 규칙은 C 셸에서 지원되지 않습니다. Korn 셸과 달리 C 셸에는 POSIX 모드 명령 옵션이 없습니다.
디렉터리 사용 권한의 트래버스 검사
기본적으로 Windows 사용자에게는 경로의 각 디렉터리에 액세스할 수 있는 권한이 없어도 디렉터리 트리를 이동할 수 있는 권한이 부여됩니다. POSIX 시스템에서는 디렉터리에 대한 경로의 모든 디렉터리에 액세스할 수 있는 권한이 없으면 디렉터리에 액세스할 수 없습니다. 이 POSIX 동작을 트래버스 검사라고 합니다. 예를 들어 디렉터리에 액세스할 수 있는 권한이 없으면 하위 디렉터리에 액세스할 수 있는 권한이 있어도 현재 디렉터리를 하위 디렉터리로 변경할 수 없습니다. 기본적으로 Windows에서는 사용 권한이 있는 모든 하위 디렉터리로 현재 디렉터리를 변경할 수 있습니다.
Windows에는 사용자 또는 그룹에 대해 설정할 수 있는 폴더 트래버스/파일 실행 사용 권한이라는 특수한 사용 권한이 있습니다. 디렉터리 트리 이동을 허용하거나 거부하도록 이 사용 권한을 구성할 수 있습니다. 폴더 트래버스 사용 권한은 그룹이나 사용자에게 그룹 정책 스냅인에서 트래버스 검사 무시 사용자 권한이 부여되지 않은 경우에만 적용됩니다. 기본적으로 Microsoft Windows 2000에서는 Everyone 그룹에 트래버스 검사 무사 사용자 권한이 부여됩니다. Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 및 Windows XP 운영 체제에서는 Administrators, Backup Operators, Everyone, Power Users 및 Users 그룹에 모두 이 권한이 부여됩니다. POSIX 표준의 엄격한 준수를 위해 Backup Operators 그룹을 제외한 모든 사용자 및 그룹에서 트래버스 검사 무시 사용자 권한을 제거하십시오. 다른 많은 UNIX 구현에서 루트 사용자에게 부여된 권한을 준수하려면 Administrators 및 Backup Operators 그룹을 제외한 모든 사용자에서 트래버스 검사 무시 사용자 권한을 제거하십시오.
su 및 setuid에 대한 트래버스 검사 동작 이탈
su 명령을 사용하여 다른 사용자로 실행하는 루트 사용자와 setuid 프로세스 및 setuid 관련 호출을 포함하는 프로세스를 사용하는 사용자는 일부 디렉터리 트래버스 권한을 보유하므로 위에 설명된 기본 동작에서 벗어납니다.
사용자 계정에서 트래버스 검사 무시 권한을 제거하면 POSIX 호환 동작이 발생합니다. 그러나 루트 사용자가 암호를 제공하지 않은 상태로 다른 사용자에 대해 su를 실행하려고 하면 결과 세션에 위에 설명한 동작이 나타나지 않습니다. 루트 사용자가 암호를 제공하지 않은 상태로 다른 사용자에 대해 su를 실행한 후에 시작되는 프로세스는 해당 경로의 모든 디렉터리에 액세스할 수 있는 권한이 없더라도 디렉터리 트리를 통해 액세스하고 이동할 수 있습니다.
Setuid 프로세스 및 setuid, seteuid 또는 setreuid를 호출하는 프로세스도 같은 동작을 나타냅니다. 이러한 프로세스를 실행하는 사용자의 계정에서 트래버스 검사 무시 권한을 제거한 후에는 해당 경로의 각 디렉터리에 액세스할 수 있는 권한이 없더라도 디렉터리 트리를 통해 이러한 프로세스가 진행될 수 있습니다.