<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>dbmmanage - Gestion des fichiers d'authentification des
utilisateurs au format DBM - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Programmes</a></div><div id="page-content"><div id="preamble"><h1>dbmmanage - Gestion des fichiers d'authentification des
utilisateurs au format DBM</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/programs/dbmmanage.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/dbmmanage.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/dbmmanage.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/dbmmanage.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>

    <p><code>dbmmanage</code> permet de créer et de maintenir les
    fichiers au format DBM où sont stockés les noms d'utilisateurs et
    mots de passe à des fins d'authentification de base des utilisateurs
    HTTP via le module <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>. Il est possible
    de restreindre l'accès aux ressources disponibles sur le serveur
    HTTP Apache aux seuls utilisateurs spécifiés dans les fichiers créés
    par <code>dbmmanage</code>. Ce programme ne peut être utilisé
    qu'avec des fichiers d'utilisateurs au format DBM. Pour
    l'utilisation de fichiers textes, voir le programme
    <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>.</p>

    <p>Le programme <code class="program"><a href="../programs/htdbm.html">htdbm</a></code> est aussi un utilitaire
    permettant de maintenir une base de données de mots de passe DBM.</p>

    <p>Cette page de manuel ne décrit que les arguments de la ligne de
    commande. Pour plus de détails à propos des directives nécessaires
    pour configurer l'authentification des utilisateurs dans
    <code class="program"><a href="../programs/httpd.html">httpd</a></code>, voir le manuel httpd qui est fourni avec
    la distribution d'Apache, ou peut être consulté à <a href="http://httpd.apache.org/">http://httpd.apache.org/</a>.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Syntaxe</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#bugs">Bogues</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="../programs/htdbm.html">htdbm</a></code></li><li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li><li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="synopsis" id="synopsis">Syntaxe</a></h2>
    <p><code><strong>dbmmanage</strong> [ <var>codage</var> ]
    <var>nom-fichier</var> add|adduser|check|delete|update
    <var>nom-utilisateur</var>
    [ <var>mot-de-passe-haché</var>
      [ <var>groupe</var>[,<var>groupe</var>...]
        [ <var>commentaire</var> ] ] ]</code></p>

    <p><code><strong>dbmmanage</strong> <var>nom-fichier</var>
    view [ <var>nom-utilisateur</var> ]</code></p>

    <p><code><strong>dbmmanage</strong> <var>nom-fichier</var>import</code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="options" id="options">Options</a></h2>
    <dl>
    <dt><code><var>nom-fichier</var></code></dt>
    <dd>Le nom du fichier au format DBM, en général sans l'extension
    <code>.db</code>, <code>.pag</code>, ou <code>.dir</code>.</dd>

    <dt><code><var>nom-utilisateur</var></code></dt>
    <dd>L'utilisateur concerné par l'opération effectuée. Le
    <var>nom-utilisateur</var> ne doit pas contenir de caractère
    <code>:</code>.</dd>

    <dt><code><var>mot-de-passe-haché</var></code></dt>
    <dd>C'est le mot de passe sous sa forme hachée à utiliser avec les
    commandes <code>update</code> et <code>add</code>. Vous pouvez
    utiliser un tiret (<code>-</code>) si vous voulez que le mot de
    passe vous soit demandé, mais remplissez les champs par la suite. En
    outre, avec la commande <code>update</code>, un point
    (<code>.</code>) permet de conserver le mot de passe original.</dd>

    <dt><code><var>groupe</var></code></dt>
    <dd>Un groupe dont l'utilisateur est membre. Un nom de groupe ne
    doit pas contenir de caractère (<code>:</code>). Vous pouvez
    utiliser un tiret (<code>-</code>) si vous ne voulez pas associer
    l'utilisateur à un groupe, mais remplissez le champ commentaire. En
    outre, avec la commande <code>update</code>, un point
    (<code>.</code>) permet de conserver le groupe original.</dd>

    <dt><code><var>commentaire</var></code></dt>
    <dd>C'est l'endroit où vous pouvez enregistrer diverses informations
    à propos de l'utilisateur telles que son nom réel, sont e-mail,
    etc... Le serveur ignore ce champ.</dd>
    </dl>

    <h3><a name="options.encodings" id="options.encodings">Codages</a></h3>
      <dl>
      <dt><code>-d</code></dt>
      <dd>hachage crypt (hachage par défaut sauf sous Win32,
      Netware)</dd>

      <dt><code>-m</code></dt>
      <dd>hachage MD5 (hachage par défaut sous Win32,
      Netware)</dd>

      <dt><code>-s</code></dt>
      <dd>hachage SHA1</dd>

      <dt><code>-p</code></dt>
      <dd>en clair (<em>déconseillé</em>)</dd>
      </dl>
    

    <h3><a name="options.commands" id="options.commands">Commandes</a></h3>
      <dl>
      <dt><code>add</code></dt>
      <dd>Ajoute une entrée pour <var>nom-utilisateur</var> à
      <var>nom-fichier</var> en utilisant le mot de passe haché
      <var>mot-de-passe-haché</var>.

      <div class="example"><p><code>dbmmanage passwords.dat add rbowen foKntnEF3KSXA</code></p></div>
      </dd>

      <dt><code>adduser</code></dt>
      <dd>Demande un mot de passe puis ajoute une entrée pour
      <var>nom-utilisateur</var> à <var>nom-fichier</var>.

      <div class="example"><p><code>dbmmanage passwords.dat adduser krietz</code></p></div>
      </dd>

      <dt><code>check</code></dt>
      <dd>Demande un mot de passe puis vérifie si
      <var>nom-utilisateur</var> est présent dans <var>nom-fichier</var>
      et si son mot de passe correspond au mot de passe fourni.

      <div class="example"><p><code>dbmmanage passwords.dat check rbowen</code></p></div>
      </dd>

      <dt><code>delete</code></dt>
      <dd>Supprime l'entrée <var>nom-utilisateur</var> de
      <var>nom-fichier</var>.

      <div class="example"><p><code>dbmmanage passwords.dat delete rbowen</code></p></div>
      </dd>

      <dt><code>import</code></dt>
      <dd>Lit les entrées
      <code><var>nom-utilisateur</var>:<var>mot-de-passe</var></code>
      (une par ligne) depuis <code>STDIN</code>, et les ajoute à
      <var>nom-fichier</var>. Les mots de passe doivent être déjà
      chiffrés.</dd>

      <dt><code>update</code></dt>
      <dd>Identique à la commande <code>adduser</code>, à l'exception
      que la présence de <var>nom-utilisateur</var> dans
      <var>nom-fichier</var> est vérifiée.

      <div class="example"><p><code>dbmmanage passwords.dat update rbowen</code></p></div>
      </dd>

      <dt><code>view</code></dt>
      <dd>Affiche le contenu du fichier DBM. Si vous spécifiez un
      <var>nom-utilisateur</var>, seule l'entrée correspondante est
      affichée.

      <div class="example"><p><code>dbmmanage passwords.dat view</code></p></div>
      </dd>
      </dl>
    
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="bugs" id="bugs">Bogues</a></h2>
    <p>Vous devez garder à l'esprit qu'il existe de nombreux formats de
    fichiers DBM différents, et que selon toute vraisemblance, des
    bibliothèques pour plus d'un format sont présentes sur votre
    système. Les trois exemples de base sont SDBM, NDBM, le projet GNU
    GDBM, et Berkeley DB 2. Malheureusement, toutes ces bibliothèques
    utilisent des formats de fichiers différents, et vous devez vous
    assurer que le format de fichier utilisé par <var>nom-fichier</var>
    correspond au format attendu par <code>dbmmanage</code>.
    Actuellement, <code>dbmmanage</code> n'a aucun moyen de savoir à
    quel type de fichier DBM il a à faire. S'il est utilisé avec un
    format inapproprié, il ne renverra rien, ou pourra créer un fichier
    DBM différent avec un nom différent, ou au pire, va corrompre le
    fichier DBM si vous avez tenté de le modifier.</p>

    <p><code>dbmmanage</code> possède une liste de préférences en
    matière de formats DBM, définies dans le tableau
    <code>@AnyDBM::ISA</code> au début du programme. Comme nous
    préférons le format de fichier Berkeley DB 2, l'ordre dans lequel
    <code>dbmmanage</code> va rechercher les bibliothèques système est
    Berkeley DB 2, puis NDBM, GDBM et enfin SDBM. La première
    bibliothèque trouvée sera celle que <code>dbmmanage</code> tentera
    d'utiliser pour toutes les opérations sur les fichiers DBM. Cette
    ordre est sensiblement différent de l'ordre standard de Perl
    <code>@AnyDBM::ISA</code>, et de l'ordre utilisé par l'appel
    <code>dbmopen()</code> de Perl ; si vous utilisez un autre
    utilitaire pour gérer vos fichiers DBM, il doit donc se conformer à
    l'ordre de préférence indiqué précédemment. Vous devez prêter la
    même attention si vous utilisez des programmes écrits dans d'autres
    langages, comme C, pour accéder à ces fichiers.</p>

    <p>Vous pouvez utiliser le programme <code>file</code> fourni par la
    plupart des systèmes Unix pour déterminer le format d'un fichier
    DBM.</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/programs/dbmmanage.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/dbmmanage.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/dbmmanage.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/dbmmanage.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/programs/dbmmanage.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2025 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>