NAME

libuser.conf - configuration for libuser and libuser utilities

FILEFORMAT

libuser.conf is a text file. Leading and trailing white space on each
line is ignored. Lines starting with # are ignored.
The file defines variables grouped into sections. Each section starts
with a section header:
[sectionname]
A single section header can appear more than once in the file.
The lines following a section header define variables from that
section:
variable=value
The value can be empty.
A variable can have more than one value, specified by using more than
one line defining that variable. All currently defined variables
accept only the first value and ignore the others, if any.

[defaults]

create_modules
A list of module names to use when creating user or group
entries, unless the application specifies a different list. The
module names in the list can be separated using space, tab or
comma. Default value is filesshadow.
crypt_style
The algorithm to use for password encryption when creating new
passwords. The current algorithm may be retained when changing
a password of an existing user, depending on the application.
Possible values are des, md5, blowfish, sha256 and sha512, all
case-insensitive. Unrecognized values are treated as des.
Default value is des.
hash_rounds_min, hash_rounds_max
These variables specify an inclusive range of hash rounds used
when crypt_style is sha256 or sha512. A number of hash rounds
is choosen from this interval randomly. A larger number of
rounds makes password checking, and brute-force attempts to
guess the password by reversing the hash, more CPU-intensive.
The number of rounds is restricted to the interval [1000,
999999999].
If only one of the above variables is specified, the number of
rounds used is specified by the other variable. If neither
variable is specified, the number of rounds is chosen by libc.
mailspooldir
The directory containing user’s mail spool files. Default value
is /var/mail.
moduledir
The directory containing libuser modules. Default value uses
the modules installed with libuser, corresponding to the
architecture of the libuser library, e.g. /usr/lib/libuser or
/usr/lib64/libuser (assuming libuser was configured with
--prefix=/usr).
modules
A list of module names to use when not creating user or group
entries, unless the application specifies a different list. The
module names in the list can be separated using space, tab or
comma. Default value is filesshadow.
skeleton
The directory containing files to copy to newly created home
directories. Default value is /etc/skel.

[import]

login_defs
A path to the login.defs file from shadow. If this variable is
defined, the variables from the named file are used in place of
some libuser variables. Variables explicitly defined in
libuser.conf are not affected by contents of login.defs.
The following variables are imported:
|
Variable | Imported as
---------------------+-------------------------------
ENCRYPT_METHOD | defaults/crypt_styleGID_MIN | groupdefaults/LU_GIDNUMBERMAIL_DIR | defaults/mailspooldirMD5_CRYPT_ENAB | defaults/crypt_stylePASS_MAX_DAYS | userdefaults/LU_SHADOWMAXPASS_MIN_DAYS | userdefaults/LU_SHADOWMINPASS_WARN_AGE | userdefaults/LU_SHADOWWARNINGSHA_CRYPT_MIN_ROUNDS | defaults/hash_rounds_minSHA_CRYPT_MAX_ROUNDS | defaults/hash_rounds_maxUID_MIN | userdefaults/LU_UIDNUMBER
The following variables are not imported: CREATE_HOME, GID_MAX,
MAIL_FILE, SYSLOG_SG_ENAB, UID_MAX, UMASK, USERDEL_CMD,
USERGROUPS_ENABdefault_useradd
A path to the default/useradd file from useradd in shadow. If
this variable is defined, the variables from the named file are
used in place of some libuser variables. Variables explicitly
defined in libuser.conf are not affected by contents of
default/useradd.
The following variables are imported:
|
Variable | Imported as
---------+--------------------------------
EXPIRE | userdefaults/LU_SHADOWEXPIREGROUP | userdefaults/LU_GIDNUMBERHOME | userdefaults/LU_HOMEDIRECTORYINACTIVE | userdefaults/LU_SHADOWINACTIVESHELL | userdefaults/LU_LOGINSHELLSKEL | defaults/skeleton
The HOME variable value has /%n appended to it before importing.

[userdefaults]

This section defines attribute values of newly created user entities.
There is one special variable:
LU_UIDNUMBER
A decimal number, the first allowed UID value for regular users
(not system users). Default value is 500.
All other variables have the same names as the attribute names from
<libuser/entity.h> and define attribute values. Either the macro name
(e.g. LU_GECOS) or the macro content (e.g. pw_gecos) can be used; if
both are used, the one appearing later in the configuration file is
used.
The % character in the value of the variable introduces an escape
sequence: %n is replaced by the user name, %d is replaced by current
date in days since the epoch, %u is replaced by the user’s UID. There
is no way to escape the % character and avoid this substitution.
After the userdefaults section is processed, modules may define
additional attributes or even override the attributes defined in this
section.

[groupdefaults]

The groupdefaults section is similar to userdefaults. There is one
special variable:
LU_GIDNUMBER
A decimal number, the first allowed GID value for regular groups
(not system groups). Default value is 500.
The other variables follow the same rules as in the userdefaults
section, except that %n and %u are replaced by the group name and
group’s GID, respectively.
After the groupdefaults section is processed, modules may define
additional attributes or even override the attributes defined in this
section.

[files]

Configures the files module, which manages /etc/group and /etc/passwd.
The configuration variables are probably useful only for libuser
development.
directory
The directory containing the group and passwd files. Default
value is /etc.
nonroot
Allow module initialization when not invoked as the root user if
the value is yes.

[shadow]

Configures the files module, which manages /etc/gshadow and
/etc/shadow. The configuration variables are probably useful only for
libuser development.
directory
The directory containing the gshadow and shadow files. Default
value is /etc.
nonroot
Allow module initialization when not invoked as the root user if
the value is yes.

[ldap]

Configures the ldap module, which manages an user database accessible
using LDAP.
userBranch
The LDAP suffix for user entities. Default value is ou=People.
groupBranch
The LDAP suffix for group entities. Default value is ou=Group.
server A domain name or an URI of the LDAP server. The URI can use the
ldap or the ldaps protocol. When a simple domain name is used,
the connection fails if TLS can not be used; an URI using the
ldap protocol allows connection without TLS. Default value is
ldap.
basedn The base DN of the server. Default value is dc=example,dc=com.
binddn A DN for binding to the server. If the value is empty or
binding using this DN fails, a DN of uid=user,userBranch,basedn
is used, where userBranch and basedn are variables from this
section and user is the user name of the invoking user, unless
overridden by the user variable from this section. Default
value is cn=manager,dc=example,dc=com.
user The SASLv2 identity for authenticating to the LDAP server, also
overrides the user name for generating a bind DN. Default value
is the name of the invoking user.
authuser
The SASLv2 authorization user, if non-empty. Default value is
empty.
bindtype
The list of bind types to use, separated by commas. Allowed
bind types are simple, sasl, and sasl/mechanism, where mechanism
is a SASL mechanism. The bind types (but not necessarily
mechanism) are case-insensitive. If more than one bind type is
specified, their relative order is ignored. Default value is
simple,sasl.

[sasl]

Configures the sasl module, which manages a SASLv2 user database.
appname
Name of the SASLv2 application. Default value is empty.
domain Domain used by libuser for the SASLv2 authentication object.
Default value is empty.