<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
		"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<refentry id='pwconv.8'>
  <!-- $Id: pwconv.8.xml,v 1.7 2005/06/15 12:39:27 kloczek Exp $ -->
  <refentryinfo>
    <date>26 Sep 1997</date>
  </refentryinfo>
  <refmeta>
    <refentrytitle>PWCONV</refentrytitle>
    <manvolnum>8</manvolnum>
    <refmiscinfo class='date'>26 Sep 1997</refmiscinfo>
  </refmeta>
  <refnamediv id='name'>
    <refname>pwconv</refname>
    <refname>pwunconv</refname>
    <refname>grpconv</refname>
    <refname>grpunconv</refname>
    <refpurpose>convert to and from shadow passwords and groups.</refpurpose>
  </refnamediv>

  <refsynopsisdiv id='synopsis'>
    <cmdsynopsis>
      <command>pwconv</command>    
    </cmdsynopsis>
    <cmdsynopsis>
      <command>pwunconv</command>    
    </cmdsynopsis>
    <cmdsynopsis>
      <command>grpconv</command>    
    </cmdsynopsis>
    <cmdsynopsis>
      <command>grpunconv</command>    
    </cmdsynopsis>
  </refsynopsisdiv>
  
  <refsect1 id='description'>
    <title>DESCRIPTION</title>
    <para><command>pwconv</command> creates <emphasis
      remap='I'>shadow</emphasis> from <emphasis remap='I'>passwd</emphasis>
      and an optionally existing <emphasis remap='I'>shadow</emphasis>.
    </para>
    
    <para><command>pwunconv</command> creates <emphasis
      remap='I'>passwd</emphasis> from <emphasis remap='I'>passwd</emphasis>
      and <emphasis remap='I'>shadow</emphasis> and then removes <emphasis
      remap='I'>shadow</emphasis>.
    </para>
    
    <para><command>grpconv</command> creates <emphasis
      remap='I'>gshadow</emphasis> from <emphasis remap='I'>group</emphasis>
      and an optionally existing <emphasis remap='I'>gshadow</emphasis>.
    </para>
    
    <para><command>grpunconv</command> creates <emphasis
      remap='I'>group</emphasis> from <emphasis remap='I'>group</emphasis>
      and <emphasis remap='I'>gshadow</emphasis> and then removes <emphasis
      remap='I'>gshadow</emphasis>.
    </para>
    
    <para>These four programs all operate on the normal and shadow password
      and group files: <filename>/etc/passwd</filename>,
      <filename>/etc/group</filename>, <filename>/etc/shadow</filename>, and
      <filename>/etc/gshadow</filename>.
    </para>
    
    <para> Each program acquires the necessary locks before conversion.
      <command>pwconv</command> and <command>grpconv</command> are similar.
      First, entries in the shadowed file which don't exist in the main file
      are removed. Then, shadowed entries which don't have `x' as the
      password in the main file are updated. Any missing shadowed entries
      are added. Finally, passwords in the main file are replaced with `x'.
      These programs can be used for initial conversion as well to update
      the shadowed file if the main file is edited by hand.
    </para>
    
    <para><command>pwconv</command> will use the values of <emphasis
      remap='I'>PASS_MIN_DAYS</emphasis>, <emphasis
      remap='I'>PASS_MAX_DAYS</emphasis>, and <emphasis
      remap='I'>PASS_WARN_AGE</emphasis> from
      <filename>/etc/login.defs</filename> when adding new entries to
      <filename>/etc/shadow</filename>.
    </para>
    
    <para>Likewise <command>pwunconv</command> and
      <command>grpunconv</command> are similar. Passwords in the main file
      are updated from the shadowed file. Entries which exist in the main
      file but not in the shadowed file are left alone. Finally, the
      shadowed file is removed. Some password aging information is lost by
      <command>pwunconv</command>. It will convert what it can.
    </para>
  </refsect1>
  
  <refsect1 id='bugs'>
    <title>BUGS</title>
    <para>Errors in the password or group files (such as invalid or
      duplicate entries) may cause these programs to loop forever or fail in
      other strange ways. Please run <command>pwck</command> and
      <command>grpck</command> to correct any such errors before converting
      to or from shadow passwords or groups.
    </para>
  </refsect1>
  
  <refsect1 id='see_also'>
    <title>SEE ALSO</title>
    <para><citerefentry>
        <refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>grpck</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry>,
      <citerefentry>
        <refentrytitle>pwck</refentrytitle><manvolnum>8</manvolnum>
      </citerefentry></para>
  </refsect1>
</refentry>
