Serveur HTTP Apache Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_authz_owner

Description: | Autorisation basée sur l'appartenance des fichiers
Statut: | Extension
Identificateur de Module: | authz_owner_module
Fichier Source: | mod_authz_owner.c
Compatibilité: | Disponible depuis les versions 2.1 et supérieures d'Apache

### Sommaire

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 `mod_auth_basic` ou `mod_auth_digest`. `mod_authz_owner` reconnaît deux arguments pour la directive `Require` : `file-owner` et `file-group` :

`file-owner`
  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 `jones` comme propriétaire du fichier demandé, le nom d'utilisateur fourni pour l'authentification HTTP doit aussi être `jones`.
`file-group`
  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 `mod_authz_groupfile` ou `mod_authz_dbm`, 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 `accounts`, le groupe `accounts` 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.

### Note

Si le module `mod_authz_owner` 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.

En particulier, il n'accordera jamais l'accès à une ressource du type "Vues multiples" (MultiViews) d'un contenu négocié.

### Sujets

- Exemples de configuration

### Directives

Ce module ne fournit aucune directive.

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

### Voir aussi

- `Require`

## Exemples de configuration

### Require file-owner

Considérons un serveur Web Apache fonctionnant sous un système multi-utilisateurs, où les fichiers de chaque utilisateur sont stockés dans `~/public_html/private`. 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 `jones` ne sera pas autorisé à accéder aux fichiers situés dans `/home/smith/public_html/private`, à moins que leur propriétaire ne soit `jones` au lieu de `smith`.

    <Directory "/home/*/public_html/private">
        AuthType Basic
        AuthName MyPrivateFiles
        AuthBasicProvider dbm
        AuthDBMUserFile "/usr/local/apache2/etc/.htdbm-all"
        Require file-owner
    </Directory>

### Require file-group

Considérons un système similaire à celui décrit ci-dessus, mais où certains utilisateurs partagent leurs fichiers de projets dans `~/public_html/project-foo`. Le groupe système des fichiers est `foo`, et il n'existe qu'une seule base de données `AuthDBMGroupFile` 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 `foo`. En d'autres termes, si `jones` et `smith` sont tous deux membres du groupe `foo`, ils seront autorisés à accéder aux répertoires `project-foo` de chacun d'entre eux.

    <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>