mirror of
https://github.com/apache/httpd.git
synced 2025-05-30 01:07:09 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@421136 13f79535-47bb-0310-9956-ffa450edef68
167 lines
6.5 KiB
XML
167 lines
6.5 KiB
XML
<?xml version="1.0" encoding="EUC-KR" ?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
|
|
<!-- English Revision: 151408:420993 (outdated) -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<modulesynopsis metafile="mod_authz_owner.xml.meta">
|
|
|
|
<name>mod_authz_owner</name>
|
|
<description>파일 소유자를 이용한 권한부여</description>
|
|
<status>Extension</status>
|
|
<sourcefile>mod_authz_owner.c</sourcefile>
|
|
<identifier>authz_owner_module</identifier>
|
|
<compatibility>아파치 2.1 이후부터</compatibility>
|
|
|
|
<summary>
|
|
<p>이 모듈은 HTTP 인증에 사용한 사용자 아이디(웹 사용자
|
|
아이디)를 요청한 파일의 파일시스템 소유자/그룹과 비교하여
|
|
파일의 접근권한을 부여한다. 여기서 사용자명과 암호는 이미
|
|
<module>mod_auth_basic</module>이나
|
|
<module>mod_auth_digest</module> 같은 인증모듈의 확인을
|
|
거쳤다. <module>mod_authz_owner</module>는 <directive
|
|
module="core">Require</directive> 지시어의 다음 두 아규먼트,
|
|
<code>file-owner</code>와 <code>file-group</code>을 처리한다:</p>
|
|
|
|
<dl>
|
|
<dt><code>file-owner</code></dt>
|
|
<dd>웹 사용자명이 요청한 파일 소유자의 시스템 이름과 같아야
|
|
한다. 즉, 운영체제가 요청한 파일의 소유자가
|
|
<code>jones</code>라면, 웹을 통해 파일에 접근하는 사용자도
|
|
마찬가지로 <code>jones</code>이어야 한다.</dd>
|
|
|
|
<dt><code>file-group</code></dt>
|
|
<dd>파일을 소유한 시스템 그룹명이
|
|
<module>mod_authz_groupfile</module>이나
|
|
<module>mod_authz_dbm</module>과 같은 그룹 데이터베이스에
|
|
있고, 웹 사용자명이 해당 그룹에 속해야 한다. 예를 들어,
|
|
운영체제가 요청한 파일을 <code>accounts</code> (시스템)
|
|
그룹이 소유하고 있다면, 그룹 데이터베이스에
|
|
<code>accounts</code>라는 그룹이 있고 요청에 사용한 웹
|
|
사용자명이 그 그룹에 속해야 한다.</dd>
|
|
</dl>
|
|
|
|
<note><title>주의</title>
|
|
<p><module>mod_authz_owner</module>가 실제로 파일시스템에
|
|
있지 않는 자원을 (<em>즉,</em> 가상 자원) 권한부여한다면,
|
|
접근을 거부한다.</p>
|
|
|
|
<p>특히 <a
|
|
href="../content-negotiation.html#multiviews">내용협상한
|
|
"MultiViews"</a> 자원을 권한부여하지 않는다.</p>
|
|
</note>
|
|
</summary>
|
|
<seealso><directive module="core">Require</directive></seealso>
|
|
<seealso><directive module="core">Satisfy</directive></seealso>
|
|
|
|
<section id="examples"><title>설정 예제</title>
|
|
|
|
<section id="examples.file-owner"><title>Require file-owner</title>
|
|
<p>아파치 웹서버를 운영하는 다중사용자 시스템에서 각 사용자가
|
|
<code>~/public_html/private</code>에 자신의 파일을 저장한다고
|
|
가정하자. 모든 웹 사용자명을 저장하는 <directive
|
|
module="mod_authn_dbm">AuthDBMUserFile</directive>
|
|
데이터베이스가 있고, 여기에 저장된 사용자명은 서버에서
|
|
실제 파일을 소유하는 시스템 사용자명과 동일하다. 이 경우
|
|
아래 설정은 파일 소유자에게만 접근을 허용한다. 사용자
|
|
<code>jones</code>는 파일을 <code>jones</code>가 아닌
|
|
<code>smith</code>가 소유하고 있는 한
|
|
<code>/home/smith/public_html/private</code>에 있는 파일에
|
|
접근할 수 없다.</p>
|
|
|
|
<example>
|
|
<Directory /home/*/public_html/private><br />
|
|
<indent>
|
|
AuthType Basic<br />
|
|
AuthName MyPrivateFiles<br />
|
|
AuthBasicProvider dbm<br />
|
|
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
Satisfy All<br />
|
|
Require file-owner<br />
|
|
</indent>
|
|
</Directory>
|
|
</example>
|
|
</section>
|
|
|
|
<section id="examples.file-group"><title>Require file-group</title>
|
|
<p>위와 상황이 비슷하지만 여러명이
|
|
<code>~/public_html/project-foo</code>에 프로젝트 파일을
|
|
공유한다고 가정하자. 파일들은 시스템 그룹 <code>foo</code>가
|
|
소유하며, 모든 웹 사용자명과 사용자 그룹을 기록하는 <directive
|
|
module="mod_authz_dbm">AuthDBMGroupFile</directive>
|
|
데이터베이스가 있다. <em>즉,</em> 최소한 <code>foo</code>라는
|
|
그룹에 구성원이 있다. <code>jones</code>와
|
|
<code>smith</code>가 모두 그룹 <code>foo</code>의
|
|
구성원이라면, 둘 모두 <code>project-foo</code> 디렉토리에
|
|
접근할 수 있다.</p>
|
|
|
|
<example>
|
|
<Directory /home/*/public_html/project-foo><br />
|
|
<indent>
|
|
AuthType Basic<br />
|
|
AuthName "Project Foo Files"<br />
|
|
AuthBasicProvider dbm<br />
|
|
<br />
|
|
# combined user/group database<br />
|
|
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
AuthDBMGroupFile /usr/local/apache2/etc/.htdbm-all<br />
|
|
<br />
|
|
Satisfy All<br />
|
|
Require file-group<br />
|
|
</indent>
|
|
</Directory>
|
|
</example>
|
|
</section>
|
|
</section>
|
|
|
|
<directivesynopsis>
|
|
<name>AuthzOwnerAuthoritative</name>
|
|
<description>권한부여를 저수준 모듈로 넘겨줄지 여부</description>
|
|
<syntax>AuthzOwnerAuthoritative On|Off</syntax>
|
|
<default>AuthzOwnerAuthoritative On</default>
|
|
<contextlist><context>directory</context><context>.htaccess</context>
|
|
</contextlist>
|
|
<override>AuthConfig</override>
|
|
|
|
<usage>
|
|
<p><directive>AuthzOwnerAuthoritative</directive> 지시어를
|
|
직접 <code>Off</code>로 설정하면 다음과 같은 경우 사용자
|
|
권한부여를 (<code>modules.c</code> 파일에서 정의한) 저수준
|
|
모듈로 넘겨준다.</p>
|
|
|
|
<ul>
|
|
<li><code>file-owner</code>를 사용하면 파일시스템 소유자를
|
|
알 수 없거나 주어진 웹 사용자명과 다른 경우</li>
|
|
|
|
<li><code>file-group</code>을 사용하면 파일시스템 그룹을
|
|
알 수 없거나 주어진 웹 사용자명이 구성원이 아닌 경우.</li>
|
|
</ul>
|
|
|
|
<p>또, 값을 <code>Off</code>로 설정하면
|
|
<code>file-owner</code>와 <code>file-group</code>을 결합하여,
|
|
둘 중 하나만 만족해도 접근을 허가한다.</p>
|
|
|
|
<p>기본적으로 제어를 넘기지않고, 모르는 그룹의 경우 인증
|
|
필요 응답을 한다. 이 지시어를 <code>Off</code>로 설정하지않으면
|
|
시스템이 안전하게 유지되며, NCSA 웹서버와 같이 동작한다.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|