1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1421821 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<!--
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>Autorisation basée sur l'appartenance des
fichiers</description>
<status>Extension</status>
<sourcefile>mod_authz_owner.c</sourcefile>
<identifier>authz_owner_module</identifier>
<summary>
<p>Ce module permet de contrôler l'accès aux fichiers en comparant
l'identifiant utilisateur ayant servi à l'authentification HTTP
(l'identifiant utilisateur web) avec le propriétaire ou le groupe
du fichier demandé du point de vue du système de fichiers. Le nom
d'utilisateur et le mot de passe doivent déjà avoir été vérifiés par
un module d'authentification comme <module>mod_auth_basic</module>
ou <module>mod_auth_digest</module>.
<module>mod_authz_owner</module> reconnaît deux arguments pour la
directive <directive module="core">Require</directive> :
<code>file-owner</code> et <code>file-group</code> :</p>
<dl>
<dt><code>file-owner</code></dt>
<dd>Le nom d'utilisateur web utilisé pour l'authentification doit
correspondre au nom système du propriétaire du fichier demandé. En
d'autres termes, si le système indique <code>jones</code> comme
propriétaire du fichier demandé, le nom d'utilisateur fourni pour
l'authentification HTTP doit aussi être <code>jones</code>.</dd>
<dt><code>file-group</code></dt>
<dd>Le nom du groupe système du fichier demandé doit être présent
dans une base de données de groupes fournie, par exemple, par
<module>mod_authz_groupfile</module> ou
<module>mod_authz_dbm</module>, et le nom d'utilisateur web fourni
pour l'authentification doit être un membre de ce groupe. Par
exemple, si le système indique que le groupe (système) du fichier
demandé est <code>accounts</code>, le groupe <code>accounts</code>
doit apparaître dans la base de données des groupes, et le nom
d'utilisateur web utilisé pour l'authentification doit être un
membre de ce groupe.</dd>
</dl>
<note><title>Note</title>
<p>Si le module <module>mod_authz_owner</module> est utilisé pour
vérifier l'autorisation d'accès à une ressource qui n'est pas
vraiment présente dans le système de fichiers (en d'autres termes
une ressource virtuelle), il refusera l'accès.</p>
<p>En particulier, il n'accordera jamais l'accès à une ressource
du type <a href="../content-negotiation.html#multiviews">"Vues
multiples" (MultiViews) d'un contenu négocié</a>.</p>
</note>
</summary>
<seealso><directive module="mod_authz_core">Require</directive></seealso>
<section id="examples"><title>Exemples de configuration</title>
<section id="examples.file-owner"><title>Require file-owner</title>
<p>Considérons un serveur Web Apache fonctionnant sous un système
multi-utilisateurs, où les fichiers de chaque utilisateur sont
stockés dans <code>~/public_html/private</code>. En supposant
qu'il n'existe qu'une seule base de données contenant les noms
d'utilisateurs web, et que ces noms d'utilisateurs correspondent
aux noms d'utilisateurs système qui sont les propriétaires
effectifs des fichiers, la configuration de l'exemple suivant
n'accordera l'autorisation d'accès aux fichiers qu'à leur
propriétaire. L'utilisateur <code>jones</code> ne sera pas
autorisé à accéder aux fichiers situés dans
<code>/home/smith/public_html/private</code>, à moins que leur
propriétaire ne soit <code>jones</code> au lieu de
<code>smith</code>.</p>
<highlight language="config">
<Directory /home/*/public_html/private>
AuthType Basic
AuthName MyPrivateFiles
AuthBasicProvider dbm
AuthDBMUserFile /usr/local/apache2/etc/.htdbm-all
Require file-owner
</Directory>
</highlight>
</section>
<section id="examples.file-group"><title>Require file-group</title>
<p>Considérons un système similaire à celui décrit ci-dessus, mais
où certains utilisateurs partagent leurs fichiers de projets dans
<code>~/public_html/project-foo</code>. Le groupe système des
fichiers est <code>foo</code>, et il n'existe qu'une seule base de
données <directive
module="mod_authz_dbm">AuthDBMGroupFile</directive> qui contient
tous les noms d'utilisateurs web et leurs groupes d'appartenance.
Ces noms d'utilisateurs web doivent alors appartenir au moins au
groupe <code>foo</code>. En d'autres termes, si <code>jones</code>
et <code>smith</code> sont tous deux membres du groupe
<code>foo</code>, ils seront autorisés à accéder aux
répertoires <code>project-foo</code> de chacun d'entre eux.</p>
<highlight language="config">
<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>
</highlight>
</section>
</section>
</modulesynopsis>
|