_SECURE_PATH(3)

명칭
_secure_path - 파일이 안전하도록 보이는지 어떤지를 판정한다

프로그램 라이브러리
libutil

서식
<sys/types.h> <libutil.h> int _secure_path(const char *path, uid_t uid, gid_t gid)

해설
이 함수는, 지정의 패스에 대해 기본적인 보안 체크를 실시합니다. 이것은 root 특권으로 실행중의 프로세스가 사용하는 것을 의도하고 있습니다. 지정의 파일의 내용을 신뢰하는지 어떤지를 판정하기 (위해)때문입니다. 이 함수는, 시스템의 위험성을 검출하기 위해서 사용되는 방법으로서 잘 사용됩니다. 파일은, 다음의 조건을 채우는 경우에 ‘안전하다’ (이)라고 생각됩니다.

1.  파일이 존재해, 그것이 통상의 파일이다 (기호 연결, 파일, 디바이스에 고유의 파일, 또는 이름 첨부의 파이프 파일 (이)가 아니다).

2.  누구나가 기입해 가능한 속성을 가지고 있지 않다.

3.  uid 가 -1 나오지 않는 경우는, 지정된 uid 또는 uid 0 의 유저에 의해 소유되고 있다.

4.  그룹의 기입 속성이 없는, 또는 gid 가 -1 나오지 않는 경우는 지정의 gid 에 의한 그룹 소유권이 있다.

반환값
이 함수는, 파일이 존재해, 안전이라고 생각되는 경우는 0 을 돌려줍니다. 파일이 존재하지 않는 경우는 -2 을 돌려줍니다. 보안 장해를 나타내는 경우에는 -1 을 돌려줍니다. syslog(3) 하지만, 이 함수의 처리 실패를 이유를 포함해 LOG_ERR 우선 순위의 로그에 기입하기 위해서 사용됩니다.

버그
실행되는 체크는 기본적인 것이며, 이 함수의 사용과 참조 파일에의 액세스의 사이의 경쟁 상황을 제거하려고 하는 시도 하행 깨지지 않습니다.

관련 항목
lstat(2), syslog(3)

역사
이 함수의 유래인 코드는, Berkeley Software Design, Inc. 에 의해 FreeBSD 프로젝트에 기여된 것입니다.