shadow/man/login.defs.5.xml
nekral-guest e15fbb905c * NEWS, lib/getdef.c, man/login.defs.5.xml: New login.defs
variable: MAX_MEMBERS_PER_GROUP. Used for the split groups support.
* lib/commonio.c, lib/commonio.h: Add an open_hook and close_hook
  operation. They are called after the database is actually opened
  and parse, or before it is closed.
* lib/groupio.c: Add an open_hook to merge split groups, and an
  close group to split groups if MAX_MEMBERS_PER_GROUP is set.
  This fixes gpasswd and chgpasswd when split groups are used.
* lib/sgroupio.c, lib/shadowio.c, lib/pwio.c: No open or close
  hooks for these databases. (unsure about what should be the gshadow
  behavior for split groups)
2007-11-23 00:07:59 +00:00

387 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<refentry id='login.defs.5'>
<!-- $Id$ -->
<refmeta>
<refentrytitle>login.defs</refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo class="sectdesc">File Formats and Conversions</refmiscinfo>
</refmeta>
<refnamediv id='name'>
<refname>login.defs</refname>
<refpurpose>shadow password suite configuration</refpurpose>
</refnamediv>
<refsect1 id='description'>
<title>DESCRIPTION</title>
<para>
The <filename>/etc/login.defs</filename> file defines the
site-specific configuration for the shadow password suite. This file
is required. Absence of this file will not prevent system operation,
but will probably result in undesirable operation.
</para>
<para>
This file is a readable text file, each line of the file describing
one configuration parameter. The lines consist of a configuration name
and value, separated by whitespace. Blank lines and comment lines are
ignored. Comments are introduced with a "#" pound sign and the pound
sign must be the first non-white character of the line.
</para>
<para>
Parameter values may be of four types: strings, booleans, numbers, and
long numbers. A string is comprised of any printable characters. A
boolean should be either the value "yes" or "no". An undefined boolean
parameter or one with a value other than these will be given a "no"
value. Numbers (both regular and long) may be either decimal values,
octal values (precede the value with "0") or hexadecimal values
(precede the value with "0x"). The maximum value of the regular and
long numeric parameters is machine-dependent.
</para>
<para>The following configuration items are provided:</para>
<variablelist remap='IP'>
<varlistentry>
<term>CHFN_AUTH (boolean)</term>
<listitem>
<para>
If <emphasis remap='I'>yes</emphasis>, the
<command>chfn</command> and <command>chsh</command> programs
will require authentication before making any changes, unless
run by the superuser.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CHFN_RESTRICT (string)</term>
<listitem>
<para>
This parameter specifies which values in the <emphasis
remap='I'>gecos</emphasis> field of the
<filename>/etc/passwd</filename> file may be changed by regular
users using the <command>chfn</command> program. It can be any
combination of letters <emphasis remap='I'>f</emphasis>
,<emphasis remap='I'>r</emphasis>, <emphasis remap='I'>w</emphasis>,
<emphasis remap='I'>h</emphasis>, for Full name, Room number,
Work phone, and Home phone, respectively. For backward
compatibility, "yes" is equivalent to "rwh" and "no" is
equivalent to "frwh". If not specified, only the superuser can
make any changes. The most restrictive setting is better
achieved by not installing <filename>chfn</filename> SUID.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ENCRYPT_METHOD (string)</term>
<listitem>
<para>
If set to MD5, the MD5-based algorithm will be used for
encrypting passwords.
</para>
<para>
If set to SHA256, the SHA256-based algorithm will be used for
encrypting passwords.
</para>
<para>
If set to SHA512, the SHA512-based algorithm will be used for
encrypting passwords.
</para>
<para>
If set to DES, the DES-based algorithm will be used for
encrypting passwords. It is the default algorithm.
</para>
<para>
Note: this parameter overrides the MD5_CRYPT_ENAB option.
</para>
<para>
Note: if you use PAM, it is recommended to set this variable
consistently with the PAM modules configuration.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>GID_MAX (number)</term>
<term>GID_MIN (number)</term>
<listitem>
<para>
Range of group IDs to choose from for the
<command>useradd</command> and <command>groupadd</command>
programs.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MAIL_DIR (string)</term>
<listitem>
<para>
The mail spool directory. This is needed to manipulate the
mailbox when its corresponding user account is modified or
deleted. If not specified, a compile-time default is used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MAX_MEMBERS_PER_GROUP (number)</term>
<listitem>
<para>
Maximum members per group entry. When the maximum is reached,
a new group entry (line) is started is
<filename>/etc/group</filename> (with the same name, same
password, and same GID).
</para>
<para>
The default value is 0, meaning that there are no limits in
the number of members in a group.
</para>
<!-- Note: on HP, split groups have the same ID, but different
names. -->
<para>
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.
</para>
<para>
If you need to enforce such limit, you can use 25.
</para>
<para>
Note: split groups may not be supported by all tools (even in
the Shadow toolsuite. Yous hould not use this variable unless
you really need it.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>MD5_CRYPT_ENAB (boolean)</term>
<listitem>
<para>
Indicate if passwords must be encrypted using the MD5-based
algorithm. If set to "yes", new passwords will be encrypted
using the MD5-based algorithm compatible with the one used by
recent releases of FreeBSD. It supports passwords of
unlimited length and longer salt strings. Set to "no" if you
need to copy encrypted passwords to other systems which don't
understand the new algorithm. Default is "no".
</para>
<para>
This variable is deprecated. You should use ENCRYPT_METHOD.
</para>
<para>
Note: if you use PAM, it is recommended to set this variable
consistently with the PAM modules configuration.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_MAX_DAYS (number)</term>
<listitem>
<para>
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).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_MIN_DAYS (number)</term>
<listitem>
<para>
The minimum number of days allowed between password changes.
Any password changes attempted sooner than this will be
rejected. If not specified, -1 will be assumed (which disables
the restriction).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>PASS_WARN_AGE (number)</term>
<listitem>
<para>
The number of days warning given before a password expires. A
zero means warning is given only upon the day of expiration, a
negative value means no warning is given. If not specified, no
warning will be provided.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
PASS_MAX_DAYS, PASS_MIN_DAYS and PASS_WARN_AGE are only used at the
time of account creation. Any changes to these settings won't affect
existing accounts.
</para>
<variablelist remap='IP'>
<varlistentry>
<term>SHA_CRYPT_MIN_ROUNDS (number)</term>
<term>SHA_CRYPT_MAX_ROUNDS (number)</term>
<listitem>
<para>
When ENCRYPT_METHOD is set to SHA256 or SHA512, this defines
the number of SHA rounds used by the encryption algorithm.
</para>
<para>
With a lot of rounds, it is more difficult to brute forcing
the password. But note also that more CPU resources will be
needed to authenticate users.
</para>
<para>
If not specified, the libc will choose the default number of rounds
(5000).
</para>
<para>
The values must be inside the 1000-999999999 range.
</para>
<para>
If only one of the MIN or MAX values is set, then this value will be
used.
</para>
<para>
If MIN &gt; MAX, the highest value will be used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UID_MAX (number)</term>
<term>UID_MIN (number)</term>
<listitem>
<para>
Range of user IDs to choose from for the
<command>useradd</command> program.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>UMASK (number)</term>
<listitem>
<para>
The permission mask is initialized to this value. If not
specified, the permission mask will be initialized to 022.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>USERDEL_CMD (string)</term>
<listitem>
<para>
If defined, this command is run when removing a user. It should
remove any at/cron/print jobs etc. owned by the user to be
removed (passed as the first argument).
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='cross_reference'>
<title>CROSS REFERENCE</title>
<para>
The following cross reference shows which programs in the shadow
password suite use which parameters.
</para>
<!-- .na -->
<variablelist remap='IP'>
<varlistentry>
<term>chfn</term>
<listitem>
<para>CHFN_AUTH CHFN_RESTRICT</para>
</listitem>
</varlistentry>
<varlistentry>
<term>chsh</term>
<listitem>
<para>CHFN_AUTH</para>
</listitem>
</varlistentry>
<varlistentry>
<term>groupadd</term>
<listitem>
<para>GID_MAX GID_MIN</para>
</listitem>
</varlistentry>
<varlistentry>
<term>newusers</term>
<listitem>
<para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
UMASK
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>pwconv</term>
<listitem>
<para>PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE</para>
</listitem>
</varlistentry>
<varlistentry>
<term>useradd</term>
<listitem>
<para>
GID_MAX GID_MIN
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
UID_MAX UID_MIN
UMASK
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>userdel</term>
<listitem>
<para>MAIL_DIR
USERDEL_CMD
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>usermod</term>
<listitem>
<para>MAIL_DIR</para>
<!-- .ad -->
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id='bugs'>
<title>BUGS</title>
<para>
Much of the functionality that used to be provided by the shadow
password suite is now handled by PAM. Thus,
<filename>/etc/login.defs</filename> is no longer used by programs
such as: <citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>, <citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>. Please refer to the corresponding PAM configuration
files instead.
</para>
</refsect1>
<refsect1 id='see_also'>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>login</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>su</refentrytitle><manvolnum>1</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>.
</para>
</refsect1>
</refentry>