chroot 서브루틴
용도
유효 루트 디렉터리를 변경합니다.
라이브러리
표준 C 라이브러리(libc.a)
구문
#include <unistd.h> char *Path;
설명
루트 서브루틴은 Path 매개변수로 지정된 디렉터리가 유효한 루트 디렉터리가 되도록 합니다. Path 매개변수가 심볼릭 링크를 참조하는 경우 chroot 서브루틴은 유효 루트 디렉터리를 심볼릭 링크가 가리키는 디렉터리로 설정합니다. 시스템에NFS네트워크 파일 시스템)가 설치되어 있는 경우 이 경로는 다른 노드로 넘어갈 수 있습니다.
(슬래시)로 시작하는 파일 경로 이름을 검색할 때 유효 루트 디렉터리가 시작점이 됩니다. 현재 디렉토리는 루트 하위 루틴의 영향을 받지 않습니다.
유효 루트 디렉터리를 변경하려면 호출 프로세스에 루트 사용자 권한이 있어야 합니다. 호출 프로세스에는 새 유효 루트 디렉터리에 대한 검색 액세스 권한도 있어야 합니다.
... (마침표 두 개) 항목은 유효 루트 디렉터리 자체를 의미하는 것으로 해석됩니다. 따라서 이 디렉터리는 유효 루트 디렉터리에 루팅된 하위 트리 외부의 파일에 액세스하는 데 사용할 수 없습니다.
매개변수
| 항목 | 설명 |
|---|---|
| 경로 | 새 유효 루트 디렉터리를 가리키는 포인터입니다. |
리턴 값
성공적인 완료 시 0 값이 리턴됩니다. 그렇지 않으면 -1 값이 반환되고 errno 전역 변수가 오류를 나타내도록 설정됩니다.
오류 코드
다음 중 하나 이상에 해당하면 루트 서 브루틴이 실패하고 유효 루트 디렉터리는 변경되지 않습니다:
| 항목 | 설명 |
|---|---|
| ENOENT | 명명된 디렉터리가 존재하지 않습니다. |
| EACCES | 명명된 디렉토리는 검색 액세스를 거부합니다. |
| EPERM | 이 프로세스에는 루트 사용자 권한이 없습니다. |
다른 이유로 인해 루트 서브루틴이 실패할 수 있습니다. 추가 오류 목록은 경로 이름 확인이 필요한 ' 부록 A. 서비스용 기본 운영 체제 오류 코드 '을 참조하세요.
시스템에 NFS 설치되어 있는 경우 다음과 같은 경우에도 루트 서브루틴이 실패할 수 있습니다:
| 항목 | 설명 |
|---|---|
| ETIMEDOUT | 연결 시간이 초과되었습니다. |