---
name: "pwunconv"
section: "8"
platform: "linux"
package: "shadow"
version: "4.20.0.arch1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pwconv"
---

# pwunconv(8)

convert between the system's shadowed and plain account files

Part of [pwconv(8)](/pwconv/8.md).

## NAME

pwconv, pwunconv, grpconv, grpunconv - convert between the system's shadowed and plain account files

## SYNOPSIS

**pwconv** \[*options*\]

**pwunconv** \[*options*\]

**grpconv** \[*options*\]

**grpunconv** \[*options*\]

## DESCRIPTION

The **pwconv** command creates shadow from passwd and an optionally existing shadow.

The **pwunconv** command creates a plain passwd from shadowed passwd and shadow and then removes shadow.

The **grpconv** command creates gshadow from group and an optionally existing gshadow.

The **grpunconv** command creates plain group from shadowed group and gshadow and then removes gshadow.

These four programs all operate on the normal and shadow password and group files: /etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow.

Each program acquires the necessary locks before conversion. **pwconv** and **grpconv** are similar. First, entries in the shadowed file which don't exist in the plain file are removed. Then, entries in the shadowed file which don't have \`x' as the password in plain file are updated. Any missing shadowed entries are added. Finally, passwords in the plain file are replaced with \`x'. These programs can be used for initial conversion as well to update the shadowed file if the plain file has been edited by hand.

**pwconv** will use the values of *PASS\_MAX\_DAYS*, and *PASS\_WARN\_AGE* from /etc/login.defs when adding new entries to /etc/shadow.

Likewise **pwunconv** and **grpunconv** are similar. Passwords in the plain file are updated from the shadowed file. Entries which exist in the plain file but not in the shadowed file are left alone. Finally, the shadowed file is removed. Some password aging information is lost by **pwunconv**. It will convert what it can.

## OPTIONS

The options which apply to the **pwconv**, **pwunconv**, **grpconv**, and **grpunconv** commands are:

- **-h**, **--help**

  Display help message and exit.

- **-R**, **--root** *CHROOT\_DIR*

  Apply changes in the *CHROOT\_DIR* directory and use the configuration files from the *CHROOT\_DIR* directory. Only absolute paths are supported. No SELINUX support.

## BUGS

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 **pwck** and **grpck** to correct any such errors before converting to or from shadowed files.

## CONFIGURATION

The following configuration variable in /etc/login.defs changes the behavior of **grpconv** and **grpunconv**:

**MAX\_MEMBERS\_PER\_GROUP** (number)

Maximum members per group entry. When the maximum is reached, a new group entry (line) is started in /etc/group (with the same name, same password, and same GID).

The default value is 0, meaning that there are no limits in the number of members in a group.

This feature (split group) permits to limit the length of lines in the group file. This is useful to make sure that lines for NIS groups are not larger than 1024 characters.

If you need to enforce such limit, you can use 25.

Note: split groups may not be supported by all tools (even in the Shadow toolsuite). You should not use this variable unless you really need it.

The following configuration variables in /etc/login.defs change the behavior of **pwconv**:

**PASS\_MAX\_DAYS** (number)

The maximum number of days a password may be used. If the password is older than this, a password change will be forced. If not specified, -1 will be assumed (which disables the restriction).

**PASS\_WARN\_AGE** (number)

The number of days warning given before a password expires. A zero means warning is given only upon the day of expiration, a value of -1 means no warning is given. If not specified, no warning will be provided.

## FILES

/etc/login.defs

Shadow password suite configuration.

## SEE ALSO

[**grpck**(8)](/grpck/8.md), [**login.defs**(5)](/login.defs/5.md), [**pwck**(8)](/pwck/8.md).
