Apache HTTP Server Version 2.2
This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.
You may follow this link to go to the current version of this document.
설명: | 파일 소유자를 이용한 권한부여 |
---|---|
상태: | Extension |
모듈명: | authz_owner_module |
소스파일: | mod_authz_owner.c |
지원: | 아파치 2.1 이후부터 |
이 모듈은 HTTP 인증에 사용한 사용자 아이디(웹 사용자
아이디)를 요청한 파일의 파일시스템 소유자/그룹과 비교하여
파일의 접근권한을 부여한다. 여기서 사용자명과 암호는 이미
mod_auth_basic
이나
mod_auth_digest
같은 인증모듈의 확인을
거쳤다. mod_authz_owner
는 Require
지시어의 다음 두 아규먼트,
file-owner
와 file-group
을 처리한다:
file-owner
jones
라면, 웹을 통해 파일에 접근하는 사용자도
마찬가지로 jones
이어야 한다.file-group
mod_authz_groupfile
이나
mod_authz_dbm
과 같은 그룹 데이터베이스에
있고, 웹 사용자명이 해당 그룹에 속해야 한다. 예를 들어,
운영체제가 요청한 파일을 accounts
(시스템)
그룹이 소유하고 있다면, 그룹 데이터베이스에
accounts
라는 그룹이 있고 요청에 사용한 웹
사용자명이 그 그룹에 속해야 한다.mod_authz_owner
가 실제로 파일시스템에
있지 않는 자원을 (즉, 가상 자원) 권한부여한다면,
접근을 거부한다.
특히 내용협상한 "MultiViews" 자원을 권한부여하지 않는다.
아파치 웹서버를 운영하는 다중사용자 시스템에서 각 사용자가
~/public_html/private
에 자신의 파일을 저장한다고
가정하자. 모든 웹 사용자명을 저장하는 AuthDBMUserFile
데이터베이스가 있고, 여기에 저장된 사용자명은 서버에서
실제 파일을 소유하는 시스템 사용자명과 동일하다. 이 경우
아래 설정은 파일 소유자에게만 접근을 허용한다. 사용자
jones
는 파일을 jones
가 아닌
smith
가 소유하고 있는 한
/home/smith/public_html/private
에 있는 파일에
접근할 수 없다.
<Directory /home/*/public_html/private>
AuthType Basic
AuthName MyPrivateFiles
AuthBasicProvider dbm
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all
Satisfy All
Require file-owner
</Directory>
위와 상황이 비슷하지만 여러명이
~/public_html/project-foo
에 프로젝트 파일을
공유한다고 가정하자. 파일들은 시스템 그룹 foo
가
소유하며, 모든 웹 사용자명과 사용자 그룹을 기록하는 AuthDBMGroupFile
데이터베이스가 있다. 즉, 최소한 foo
라는
그룹에 구성원이 있다. jones
와
smith
가 모두 그룹 foo
의
구성원이라면, 둘 모두 project-foo
디렉토리에
접근할 수 있다.
<Directory /home/*/public_html/project-foo>
AuthType Basic
AuthName "Project Foo Files"
AuthBasicProvider dbm
# combined user/group database
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all
AuthDBMGroupFile /usr/local/apache2/etc/.htdbm-all
Satisfy All
Require file-group
</Directory>
설명: | 권한부여를 저수준 모듈로 넘겨줄지 여부 |
---|---|
문법: | AuthzOwnerAuthoritative On|Off |
기본값: | AuthzOwnerAuthoritative On |
사용장소: | directory, .htaccess |
Override 옵션: | AuthConfig |
상태: | Extension |
모듈: | mod_authz_owner |
AuthzOwnerAuthoritative
지시어를
직접 Off
로 설정하면 다음과 같은 경우 사용자
권한부여를 (modules.c
파일에서 정의한) 저수준
모듈로 넘겨준다.
file-owner
를 사용하면 파일시스템 소유자를
알 수 없거나 주어진 웹 사용자명과 다른 경우file-group
을 사용하면 파일시스템 그룹을
알 수 없거나 주어진 웹 사용자명이 구성원이 아닌 경우.또, 값을 Off
로 설정하면
file-owner
와 file-group
을 결합하여,
둘 중 하나만 만족해도 접근을 허가한다.
기본적으로 제어를 넘기지않고, 모르는 그룹의 경우 인증
필요 응답을 한다. 이 지시어를 Off
로 설정하지않으면
시스템이 안전하게 유지되며, NCSA 웹서버와 같이 동작한다.