<?xml version="1.0" encoding="ISO-8859-1"?>
<!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="en" xml:lang="en"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>htdbm - Manipulate DBM password databases - Apache HTTP Server</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 href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/programs/htdbm.html" rel="canonical" /></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="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</p>
<img alt="" src="../images/feather.gif" /></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/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Programs</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
            <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
        <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/programs/htdbm.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>htdbm - Manipulate DBM password databases</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/programs/htdbm.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../tr/programs/htdbm.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>

    <p><code>htdbm</code> is used to manipulate the DBM format files used to
    store usernames and password for basic authentication of HTTP users via
    <code class="module"><a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a></code>.  See the <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code>
    documentation for more information about these DBM files.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</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">Bugs</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#exit">Exit Status</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#security">Security Considerations</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#restrictions">Restrictions</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code></li><li><code class="module"><a href="../mod/mod_auth_dbm.html">mod_auth_dbm</a></code></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">Synopsis</a></h2>
    <p><code><strong>htdbm</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    [ -<strong>x</strong> ]
    <var>filename</var> <var>username</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>b</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    <var>filename</var> <var>username</var> <var>password</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>n</strong>
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    <var>username</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>nb</strong>
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    <var>username</var> <var>password</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>v</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    <var>filename</var> <var>username</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>vb</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    [ -<strong>c</strong> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    [ -<strong>t</strong> ]
    [ -<strong>v</strong> ]
    <var>filename</var> <var>username</var> <var>password</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>x</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    [ -<strong>m</strong> |
      -<strong>d</strong> |
      -<strong>p</strong> |
      -<strong>s</strong> ]
    <var>filename</var> <var>username</var></code></p>

    <p><code><strong>htdbm</strong> -<strong>l</strong>
    [ -<strong>T</strong><var>DBTYPE</var> ]
    </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>-b</code></dt>
    <dd>Use batch mode; <em>i.e.</em>, get the password from the command line
    rather than prompting for it. This option should be used with extreme care,
    since <strong>the password is clearly visible</strong> on the command
    line.</dd>

    <dt><code>-c</code></dt>
    <dd>Create the <var>passwdfile</var>. If <var>passwdfile</var> already
    exists, it is rewritten and truncated. This option cannot be combined with
    the <code>-n</code> option.</dd>

    <dt><code>-n</code></dt>
    <dd>Display the results on standard output rather than updating a
    database.  This option changes the syntax of the command line, since the
    <var>passwdfile</var> argument (usually the first one) is omitted. It
    cannot be combined with the <code>-c</code> option.</dd>

    <dt><code>-m</code></dt>
    <dd>Use MD5 encryption for passwords. On Windows, Netware and TPF, this is
    the default.</dd>

    <dt><code>-d</code></dt>
    <dd>Use <code>crypt()</code> encryption for passwords. The default on all
    platforms but Windows, Netware and TPF. Though possibly supported by
    <code>htdbm</code> on all platforms, it is not supported by the
    <code class="program"><a href="../programs/httpd.html">httpd</a></code> server on Windows, Netware and TPF.</dd>

    <dt><code>-s</code></dt>
    <dd>Use SHA encryption for passwords. Facilitates migration from/to Netscape
    servers using the LDAP Directory Interchange Format (ldif).</dd>

    <dt><code>-p</code></dt>
    <dd>Use plaintext passwords. Though <code>htdbm</code> will support
    creation on all platforms, the <code class="program"><a href="../programs/httpd.html">httpd</a></code> daemon will
    only accept plain text passwords on Windows, Netware and TPF.</dd>

    <dt><code>-l</code></dt>
    <dd>Print each of the usernames and comments from the database on
    stdout.</dd>

    <dt><code>-t</code></dt>
    <dd>Interpret the final parameter as a comment.  When this option is
    specified, an additional string can be appended to the command line; this
    string will be stored in the "Comment" field of the database, associated
    with the specified username.</dd>

    <dt><code>-v</code></dt>
    <dd>Verify the username and password.  The program will print a message
    indicating whether the supplied password is valid.  If the password is
    invalid, the program exits with error code 3.</dd>

    <dt><code>-x</code></dt>
    <dd>Delete user. If the username exists in the specified DBM file, it
    will be deleted.</dd>

    <dt><code><var>filename</var></code></dt>
    <dd>The filename of the DBM format file. Usually without the extension
    <code>.db</code>, <code>.pag</code>, or <code>.dir</code>.  If
    <code>-c</code> is given, the DBM file is created if it does not already
    exist, or updated if it does exist.</dd>

    <dt><code><var>username</var></code></dt>
    <dd>The username to create or update in <var>passwdfile</var>. If
    <var>username</var> does not exist in this file, an entry is added. If it
    does exist, the password is changed.</dd>

    <dt><code><var>password</var></code></dt>
    <dd>The plaintext password to be encrypted and stored in the DBM file.
    Used only with the <code>-b</code> flag.</dd>

    <dt><code>-T<var>DBTYPE</var></code></dt>
    <dd>Type of DBM file (SDBM, GDBM, DB, or "default").</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">Bugs</a></h2>
    <p>One should be aware that there are a number of different DBM file
    formats in existence, and with all likelihood, libraries for more than
    one format may exist on your system. The three primary examples are
    SDBM, NDBM, GNU GDBM, and Berkeley/Sleepycat DB 2/3/4. Unfortunately,
    all these libraries use different file formats, and you must make sure
    that the file format used by <var>filename</var> is the same format that
    <code>htdbm</code> expects to see. <code>htdbm</code> currently has
    no way of determining what type of DBM file it is looking at. If used
    against the wrong format, will simply return nothing, or may create a
    different DBM file with a different name, or at worst, it may corrupt
    the DBM file if you were attempting to write to it.</p>

    <p>One can usually use the <code>file</code> program supplied with most
    Unix systems to see what format a DBM file is in.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="exit" id="exit">Exit Status</a></h2>
    <p><code>htdbm</code> returns a zero status ("true") if the username and
    password have been successfully added or updated in the DBM File.
    <code>htdbm</code> returns <code>1</code> if it encounters some problem
    accessing files, <code>2</code> if there was a syntax problem with the
    command line, <code>3</code> if the password was entered interactively and
    the verification entry didn't match, <code>4</code> if its operation was
    interrupted, <code>5</code> if a value is too long (username, filename,
    password, or final computed record), <code>6</code> if the username
    contains illegal characters (see the <a href="#restrictions">Restrictions
    section</a>), and <code>7</code> if the file is not a valid DBM password
    file.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Examples</a></h2>
    <div class="example"><p><code>
      htdbm /usr/local/etc/apache/.htdbm-users jsmith
    </code></p></div>

    <p>Adds or modifies the password for user <code>jsmith</code>. The user
    is prompted for the password. If executed on a Windows system, the password
    will be encrypted using the  modified Apache MD5 algorithm; otherwise, the
    system's <code>crypt()</code> routine will be used. If the file does not
    exist, <code>htdbm</code> will do nothing except return an error.</p>

    <div class="example"><p><code>
      htdbm -c /home/doe/public_html/.htdbm jane
    </code></p></div>

    <p>Creates a new file and stores a record in it for user <code>jane</code>.
    The user is prompted for the password. If the file exists and cannot be
    read, or cannot be written, it is not altered and <code>htdbm</code>
    will display a message and return an error status.</p>

    <div class="example"><p><code>
      htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve
    </code></p></div>

    <p>Encrypts the password from the command line (<code>Pwd4Steve</code>)
    using the MD5 algorithm, and stores it in the specified file.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="security" id="security">Security Considerations</a></h2>
    <p>Web password files such as those managed by <code>htdbm</code> should
    <em>not</em> be within the Web server's URI space -- that is, they should
    not be fetchable with a browser.</p>

    <p>The use of the <code>-b</code> option is discouraged, since when it is
    used the unencrypted password appears on the command line.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="restrictions" id="restrictions">Restrictions</a></h2>
    <p>On the Windows and MPE platforms, passwords encrypted with
    <code>htdbm</code> are limited to no more than <code>255</code>
    characters in length. Longer passwords will be truncated to 255
    characters.</p>

    <p>The MD5 algorithm used by <code>htdbm</code> is specific to the Apache
    software; passwords encrypted using it will not be usable with other Web
    servers.</p>

    <p>Usernames are limited to <code>255</code> bytes and may not include the
    character <code>:</code>.</p>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/programs/htdbm.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../tr/programs/htdbm.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Licensed under the <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="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
</body></html>