Upstream debian-debian/adduser state of the touched files before ef9bdf9502
This commit is contained in:
commit
d562c66b08
2 files changed
+1318
No files matched your search
+990
@@ -0,0 +1,990 @@
|
||||
.\" Copyright: 1994 Ian A. Murdock <imurdock@debian.org>
|
||||
.\" 1995 Ted Hajek <tedhajek@boombox.micro.umn.edu>
|
||||
.\" 1997-1999 Guy Maor
|
||||
.\" 2000-2003 Roland Bauerschmidt <rb@debian.org>
|
||||
.\" 2004-2025 Marc Haber <mh+debian-packages@zugschlus.de
|
||||
.\" 2005-2009 Jörg Hoh <joerg@joerghoh.de
|
||||
.\" 2006-2011 Stephen Gran <sgran@debian.org>
|
||||
.\" 2011 Justin B Rye <jbr@edlug.org.uk>
|
||||
.\" 2016 Afif Elghraoui <afif@debian.org>
|
||||
.\" 2016 Helge Kreutzmann <debian@helgefjell.de>
|
||||
.\" 2021-2022 Jason Franklin <jason@oneway.dev>
|
||||
.\" 2022 Matt Barry <matt@hazelmollusc.org>
|
||||
.
|
||||
.\" This is free software; see the GNU General Public License version
|
||||
.\" 2 or later for copying conditions. There is NO warranty.
|
||||
.TH ADDUSER 8 "" "Debian GNU/Linux"
|
||||
.SH NAME
|
||||
adduser, addgroup \- add or manipulate users or groups
|
||||
.SH SYNOPSIS
|
||||
.SY adduser
|
||||
.OP \-\-add\-authorized\-key key
|
||||
.OP \-\-add\-extra\-groups
|
||||
.OP \-\-allow\-all\-names
|
||||
.OP \-\-allow\-bad\-names
|
||||
.OP \-\-comment comment
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-disabled\-login
|
||||
.OP \-\-disabled\-password
|
||||
.OP \-\-encrypt\-home
|
||||
.OP \-\-firstgid id
|
||||
.OP \-\-firstuid id
|
||||
.OP \-\-force-home
|
||||
.OP \-\-gid id
|
||||
.OP \-\-home dir
|
||||
.OP \-\-ingroup group
|
||||
.OP \-\-lastgid id
|
||||
.OP \-\-lastuid id
|
||||
.OP \-\-no\-create\-home
|
||||
.OP \-\-no\-copy\-skel
|
||||
.OP \-\-shell shell
|
||||
.OP \-\-quiet
|
||||
.OP \-\-uid id
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B user
|
||||
.YS
|
||||
.SY adduser
|
||||
.B \-\-system
|
||||
.OP \-\-comment comment
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-gid id
|
||||
.OP \-\-group
|
||||
.OP \-\-home dir
|
||||
.OP \-\-ingroup group
|
||||
.OP \-\-no\-create\-home
|
||||
.OP \-\-no\-copy\-skel
|
||||
.OP \-\-shell shell
|
||||
.OP \-\-uid id
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B user
|
||||
.YS
|
||||
.SY adduser
|
||||
.B \-\-unlock
|
||||
.OP \-\-system
|
||||
.B user
|
||||
.YS
|
||||
.SY adduser
|
||||
.B \-\-group
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-firstgid id
|
||||
.OP \-\-gid ID
|
||||
.OP \-\-lastgid id
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B group
|
||||
.YS
|
||||
.SY addgroup
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-firstgid id
|
||||
.OP \-\-gid ID
|
||||
.OP \-\-lastgid id
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B group
|
||||
.YS
|
||||
.SY addgroup
|
||||
.B \-\-system
|
||||
.OP \-\-gid id
|
||||
.OP \-\-conf file
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B group
|
||||
.YS
|
||||
.SY adduser
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B user
|
||||
.B group
|
||||
.YS
|
||||
.SY adduser
|
||||
.B \-\-help
|
||||
.YS
|
||||
.SY adduser
|
||||
.B \-\-version
|
||||
.YS
|
||||
.SH DESCRIPTION
|
||||
\fBadduser\fP and \fBaddgroup\fP add users and groups to the system
|
||||
according to command line options
|
||||
and configuration information in \fI/etc/adduser.conf\fP.
|
||||
They are more Debian specific front ends to the
|
||||
\fBuseradd\fP, \fBgroupadd\fP and \fBusermod\fP programs,
|
||||
which are more distribution agnostic.
|
||||
\fBadduser\fP and \fBaddgroup\fP
|
||||
by default choose Debian policy conformant UID and GID values,
|
||||
create a home directory with skeletal configuration,
|
||||
run a custom script,
|
||||
and have other features.
|
||||
.PP
|
||||
\fBadduser\fP and \fBaddgroup\fP are intended as a policy layer,
|
||||
making it easier for package maintainers and local administrators
|
||||
to create local system accounts
|
||||
in the way Debian expects them to be created,
|
||||
taking the burden to adapt to the probably changing specifications
|
||||
of Debian policy.
|
||||
\fBadduser \-\-system\fP takes special attention
|
||||
on just needing a single call in the package maintainer scripts
|
||||
without any conditional wrappers,
|
||||
error suppression or other scaffolding.
|
||||
.PP
|
||||
\fBadduser\fP honors the distinction between
|
||||
\fIdynamically allocated system users and groups\fP
|
||||
and
|
||||
\fIdynamically allocated user accounts\fP
|
||||
that is documented in Debian Policy, Chapter 9.2.2.
|
||||
.PP
|
||||
For a full list and explanations of all options,
|
||||
see the OPTIONS section.
|
||||
.PP
|
||||
\fBadduser\fP and \fBaddgroup\fP can be run in one of five modes:
|
||||
.SS "Add a regular (non-system) user"
|
||||
If called with one non-option argument and
|
||||
without the \fB\-\-system\fP or \fB\-\-group\fP options,
|
||||
\fBadduser\fP will add a regular user,
|
||||
that means a
|
||||
\fIdynamically allocated user account\fP
|
||||
in the sense of Debian Policy.
|
||||
This is commonly referred to in \fBadduser\fP as a \fInon-system user.\fP
|
||||
.PP
|
||||
If \fBadduser\fP is called with the \fB\-\-unlock\fP option, it will
|
||||
search for an existing account, and ensure it is unlocked.
|
||||
If the user is not found, \fBadduser\fP will return an error.
|
||||
See \fBUnlock an account\fP below for more details.
|
||||
.PP
|
||||
\fBadduser\fP will choose the first available UID
|
||||
from the range specified by
|
||||
\fBFIRST_UID\fP and \fBLAST_UID\fP
|
||||
in the configuration file.
|
||||
The range may be overridden with the
|
||||
\fB\-\-firstuid\fP and \fB\-\-lastuid\fP options.
|
||||
Finally, the UID can be set fully manually with the \fB\-\-uid\fP option.
|
||||
.PP
|
||||
By default, each user is given a corresponding group with the same name
|
||||
and the same numeric ID as the user,
|
||||
unless \fB\-\-ingroup\fP is used (see below).
|
||||
This is commonly called
|
||||
\fIUsergroups\fP
|
||||
and allows group writable directories to be easily maintained
|
||||
by placing the appropriate users in the new group,
|
||||
setting the set-group-ID bit in the directory,
|
||||
and ensuring that all users use a umask of 002.
|
||||
.PP
|
||||
For this usergroup case,
|
||||
\fBadduser\fP does not pick a UID and a GID independently.
|
||||
Instead, it searches for the first number that is simultaneously
|
||||
available as a UID and as a GID,
|
||||
and assigns that single number to both the new user and the new group.
|
||||
The range searched is the
|
||||
.I intersection
|
||||
of the UID range
|
||||
(\fBFIRST_UID\fP to \fBLAST_UID\fP,
|
||||
or \fB\-\-firstuid\fP / \fB\-\-lastuid\fP if given)
|
||||
and the GID range
|
||||
(\fBFIRST_GID\fP to \fBLAST_GID\fP,
|
||||
or \fB\-\-firstgid\fP / \fB\-\-lastgid\fP if given):
|
||||
that is, the search starts at the higher of the two range minimums
|
||||
and ends at the lower of the two range maximums.
|
||||
If the configured UID and GID ranges do not overlap at all,
|
||||
or no number free in both ranges can be found,
|
||||
\fBadduser\fP fails outright;
|
||||
it does not fall back to assigning the user and group different numbers.
|
||||
.PP
|
||||
If \fB\-\-ingroup\fP is given
|
||||
to add the new user to an already existing group
|
||||
instead of a new usergroup,
|
||||
this combined search does not apply.
|
||||
Instead,
|
||||
if the requested group's GID happens to also be free as a UID
|
||||
within the configured UID range,
|
||||
\fBadduser\fP prefers that number for the new user's UID,
|
||||
so the user still ends up with a UID matching the group's GID
|
||||
even though the group was not newly created as a usergroup.
|
||||
If the GID is not free as a UID,
|
||||
or falls outside the UID range,
|
||||
\fBadduser\fP falls back to choosing
|
||||
the first available UID from the UID range,
|
||||
as it always did.
|
||||
.PP
|
||||
Finally, the UID and/or GID can each be set fully manually
|
||||
with the \fB\-\-uid\fP and \fB\-\-gid\fP options,
|
||||
which bypass the search(es) above for the value(s) given.
|
||||
.PP
|
||||
The interaction between
|
||||
\fBUSERS_GID\fP, \fBUSERS_GROUP\fP, and \fBUSERGROUPS\fP
|
||||
is explained in detail in
|
||||
.BR adduser.conf (5).
|
||||
.PP
|
||||
The new user's primary group can also be overridden
|
||||
from the command line
|
||||
with the \fB\-\-gid\fP or \fB\-\-ingroup\fP options
|
||||
to set the group by id or name,
|
||||
respectively.
|
||||
Also,
|
||||
users can be added
|
||||
to one or more supplemental groups
|
||||
defined as \fBEXTRA_GROUPS\fP
|
||||
either by setting \fBADD_EXTRA_GROUPS\fP to 1
|
||||
in the configuration file,
|
||||
or by passing \fB\-\-add\-extra\-groups\fP on the command line.
|
||||
.PP
|
||||
\fBadduser\fP will copy files from \fI/etc/skel\fP
|
||||
into the home directory and
|
||||
prompt for the comment field and a password
|
||||
if those functions have not been turned off / overridden
|
||||
from the command line.
|
||||
.PP
|
||||
UID, comment, home directory and shell
|
||||
might be pre-determined with the \fBUID_POOL\fP and \fBGID_POOL\fP option,
|
||||
documented in
|
||||
.BR adduser.conf (5).
|
||||
|
||||
To set up an encrypted home directory for the new user, add the
|
||||
.B \-\-encrypt\-home
|
||||
option.
|
||||
For more information, refer to the \-b option of
|
||||
.BR ecryptfs-setup-private (1).
|
||||
|
||||
.SS "Add a system user"
|
||||
If called with one non-option argument and the \fB\-\-system\fP option,
|
||||
\fBadduser\fP will add a
|
||||
\fIdynamically allocated system user,\fP
|
||||
often abbreviated as
|
||||
\fIsystem user\fP
|
||||
in the context of the \fBadduser\fP package.
|
||||
.PP
|
||||
If the user already exists and is a system account, then
|
||||
\fBadduser\fP will ensure the account is unlocked and return
|
||||
successfully.
|
||||
See \fBUnlock a user account\fP below.
|
||||
.PP
|
||||
\fBadduser\fP will choose the first available UID
|
||||
from the range specified by
|
||||
\fBFIRST_SYSTEM_UID\fP and \fBLAST_SYSTEM_UID\fP
|
||||
in the configuration file.
|
||||
This can be overridden with the \fB\-\-uid\fP option.
|
||||
.PP
|
||||
By default, system users are assigned \fBnogroup\fP as primary group.
|
||||
To assign an already existing group as primary group,
|
||||
use the \fB\-\-gid\fP or \fB\-\-ingroup\fP options.
|
||||
.PP
|
||||
If the \fB\-\-group\fP option is given
|
||||
and the identically named group does not already exist,
|
||||
it is created with the same numeric ID as the user,
|
||||
following the same logic as for a non-system usergroup
|
||||
(see \fBAdd a regular (non-system) user\fP above):
|
||||
\fBadduser\fP searches for the first number that is simultaneously
|
||||
available as a UID and as a GID,
|
||||
within the intersection of the UID range
|
||||
(\fBFIRST_SYSTEM_UID\fP to \fBLAST_SYSTEM_UID\fP,
|
||||
or \fB\-\-firstuid\fP / \fB\-\-lastuid\fP if given)
|
||||
and the GID range
|
||||
(\fBFIRST_SYSTEM_GID\fP to \fBLAST_SYSTEM_GID\fP,
|
||||
or \fB\-\-firstgid\fP / \fB\-\-lastgid\fP if given).
|
||||
As with a regular usergroup,
|
||||
if the configured UID and GID ranges do not overlap at all,
|
||||
or no number free in both ranges can be found,
|
||||
\fBadduser\fP fails outright
|
||||
rather than assigning the user and group different numbers.
|
||||
.PP
|
||||
If instead \fB\-\-gid\fP or \fB\-\-ingroup\fP is used
|
||||
to assign an already existing group as primary group,
|
||||
this combined search does not apply.
|
||||
Instead,
|
||||
if that group's GID happens to also be free as a UID
|
||||
within the configured UID range,
|
||||
\fBadduser\fP prefers that number for the new system user's UID.
|
||||
Note that for a non-system user (see above),
|
||||
only \fB\-\-ingroup\fP triggers this preference;
|
||||
\fB\-\-gid\fP alone does not.
|
||||
If the GID is not free as a UID,
|
||||
or falls outside the UID range,
|
||||
\fBadduser\fP falls back to choosing
|
||||
the first available UID from the UID range,
|
||||
as it always did.
|
||||
.PP
|
||||
If no home directory is specified,
|
||||
the default home directory for a new system user
|
||||
is \fI\%/nonexistent\fP.
|
||||
This directory should never exist on any Debian system,
|
||||
and \fBadduser\fP will never create it automatically.
|
||||
.PP
|
||||
If a home directory is specified with the \fB\-\-home\fP option,
|
||||
and the directory does already exist
|
||||
(for example, if the package ships with files in that directory),
|
||||
\fBadduser\fP silently does not set the owner of the directory
|
||||
to the newly created user.
|
||||
Setting the owner might override a decision of the local admin,
|
||||
and reporting the fact would break \fBadduser\fP's silence
|
||||
during package installation.
|
||||
If you use \fBadduser \-\-home\fP in your package's maintainer scripts,
|
||||
you might want to issue an explicit recursive \fBchown\fP for the
|
||||
home directory after the call to \fBadduser\fP.
|
||||
.PP
|
||||
Unless a shell is explicitly set with the \fB\-\-shell\fP option,
|
||||
the new system user will have the shell set to
|
||||
\fI/usr/sbin/nologin\fP.
|
||||
\fBadduser \-\-system\fP does not set a password for the new account.
|
||||
It is an error if \fBadduser \-\-system\fP is called
|
||||
for an account that has a password.
|
||||
Skeletal configuration files are not copied.
|
||||
.PP
|
||||
Other options will behave as for the creation of a regular user.
|
||||
The files referenced by \fBUID_POOL\fP and \fBGID_POOL\fP are also honored.
|
||||
|
||||
.SS "Unlock a user account"
|
||||
If called with the \fB\-\-unlock\fP option, \fBadduser\fP will
|
||||
unlock an existing, previously locked account.
|
||||
If found, the user's password will be re-enabled,
|
||||
and expiry restrictions will be removed.
|
||||
Any previous expiry settings will have to be
|
||||
added manually after unlocking the account.
|
||||
|
||||
.SS "Add a group"
|
||||
If \fBadduser\fP is called with the \fB\-\-group\fP option and
|
||||
without the \fB\-\-system\fP option, or
|
||||
\fBaddgroup\fP is called respectively,
|
||||
a user group will be added.
|
||||
.PP
|
||||
A
|
||||
\fIdynamically allocated system group,\fP
|
||||
often abbreviated as \fIsystem group\fP
|
||||
in the context of the \fBadduser\fP package,
|
||||
will be created
|
||||
if \fBadduser \-\-group\fP or \fBaddgroup\fP
|
||||
are called with the \fB\-\-system\fP option.
|
||||
.PP
|
||||
A GID will be chosen from the respective range specified for GIDs
|
||||
in the configuration file
|
||||
(\fBFIRST_GID\fP, \fBLAST_GID\fP,
|
||||
\fBFIRST_SYSTEM_GID\fP, \fBLAST_SYSTEM_GID\fP).
|
||||
To override that mechanism,
|
||||
you can give the GID using the \fB\-\-gid\fP option.
|
||||
.PP
|
||||
For non-system groups,
|
||||
the range specified in the configuration file may be overridden
|
||||
with the \fB\-\-firstgid\fP and \fB\-\-lastgid\fP options.
|
||||
.PP
|
||||
The group is created with no members.
|
||||
|
||||
.SS "Add an existing user to an existing group"
|
||||
If called with two non-option arguments,
|
||||
\fBadduser\fP will add an existing user to an existing group.
|
||||
|
||||
.SH OPTIONS
|
||||
Different modes of \fBadduser\fP allow different options.
|
||||
If no valid modes are listed for a option,
|
||||
it is accepted in all modes.
|
||||
.PP
|
||||
Short versions for certain options may exist for historical reasons.
|
||||
They are going to stay supported, but are removed from the documentation.
|
||||
Users are advised to migrate to the long version of options.
|
||||
.TP
|
||||
.B \-\-add\-authorized\-key key
|
||||
Add
|
||||
.I key
|
||||
to the \fI\%~/.ssh/authorized_keys\fP file of the new user.
|
||||
If
|
||||
.I key
|
||||
is the name of an existing file,
|
||||
the contents of that file are added,
|
||||
which allows to add several keys at once.
|
||||
Otherwise,
|
||||
.I key
|
||||
is taken literally as a single key.
|
||||
The option can be given more than once.
|
||||
Keys are appended to \fI\%authorized_keys\fP,
|
||||
so that keys shipped in \fI\%/etc/skel\fP are kept.
|
||||
Keys are not checked for validity;
|
||||
an unusable key is going to be rejected by the SSH daemon later.
|
||||
No key is installed if the home directory has not been created by
|
||||
\fB\%adduser\fP,
|
||||
for example if \fB\-\-no\-create\-home\fP has been given,
|
||||
if the home directory is \fI\%/nonexistent\fP,
|
||||
or if the home directory does already exist.
|
||||
In that case,
|
||||
a warning is issued and the user is still created.
|
||||
Note that \fB\%sshd\fP with \fBStrictModes\fP enabled ignores
|
||||
\fI\%authorized_keys\fP if the home directory or \fI\%~/.ssh\fP
|
||||
is writable by group or other,
|
||||
which can happen with a permissive \fBDIR_MODE\fP setting.
|
||||
Valid modes: \fBadduser\fP.
|
||||
.TP
|
||||
.B \-\-add\-extra\-groups
|
||||
Add new user to extra groups defined in the configuration files'
|
||||
\fBEXTRA_GROUPS\fP setting.
|
||||
The old spelling \fB\-\-add_extra_groups\fP is deprecated and
|
||||
will be supported in Debian bookworm only.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-allow\-all\-names
|
||||
Allow any user- and groupname which is supported by the underlying
|
||||
\fBuseradd\fP(8).
|
||||
See VALID NAMES below.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP,
|
||||
\fBaddgroup\fP, \fBaddgroup \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-allow\-bad\-names
|
||||
Disable \fBNAME_REGEX\fP and \fBSYS_NAME_REGEX\fP check of names.
|
||||
Only a weaker check for validity of the name is applied.
|
||||
See VALID NAMES below.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP,
|
||||
\fBaddgroup\fP, \fBaddgroup \-\-system\fP.
|
||||
.TP
|
||||
.BI \-\-comment " comment"
|
||||
Set the comment field for the new entry generated.
|
||||
\fBadduser\fP will not ask for the information if this option is given.
|
||||
This field is also known under the name GECOS field
|
||||
and contains information that is used by the \fBfinger\fR(1) command.
|
||||
This used to be the \fB\-\-gecos\fR option,
|
||||
which is deprecated and will be removed after Debian bookworm.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.BI \-\-conf " file"
|
||||
Use \fIfile\fP instead of \fI/etc/adduser.conf\fP.
|
||||
Multiple \fB\-\-conf\fR options can be given.
|
||||
.TP
|
||||
.B \-\-debug
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=debug .
|
||||
Deprecated.
|
||||
.TP
|
||||
.B \-\-disabled\-login
|
||||
.TQ
|
||||
.B \-\-disabled\-password
|
||||
Do not run \fBpasswd\fP(1) to set a password.
|
||||
In most situations, logins are still possible though
|
||||
(for example using SSH keys or through PAM)
|
||||
for reasons that are beyond \fBadduser\fP's scope.
|
||||
\fB\-\-disabled\-login\fP will additionally set the shell to
|
||||
\fI/usr/sbin/nologin\fP.
|
||||
Valid mode: \fBadduser\fP.
|
||||
.TP
|
||||
.BI \-\-firstuid " ID"
|
||||
.TQ
|
||||
.BI \-\-lastuid " ID"
|
||||
.TQ
|
||||
.BI \-\-firstgid " ID"
|
||||
.TQ
|
||||
.BI \-\-lastgid " ID"
|
||||
Override the first UID / last UID / first GID / last GID
|
||||
in the range that the uid is chosen from
|
||||
(\fBFIRST_UID\fP, \fBLAST_UID\fP, \fBFIRST_GID\fP and \fBLAST_GID\fP,
|
||||
\fBFIRST_SYSTEM_UID\fP, \fBLAST_SYSTEM_UID\fP,
|
||||
\fBFIRST_SYSTEM_GID\fP and \fBLAST_SYSTEM_GID\fP
|
||||
in the configuration file).
|
||||
If a group is created as a usergroup
|
||||
(that is, for \fBadduser\fP without \fB\-\-ingroup\fP,
|
||||
or for \fBadduser \-\-system \-\-group\fP without \fB\-\-ingroup\fP),
|
||||
\fB\-\-firstgid\fP and \fB\-\-lastgid\fP are
|
||||
.B not
|
||||
ignored:
|
||||
they bound the GID side of the combined UID/GID search
|
||||
described under
|
||||
\fBAdd a regular (non-system) user\fP
|
||||
above,
|
||||
so a narrower or shifted \fB\-\-firstgid\fP\^/\fB\-\-lastgid\fP\^
|
||||
range can change which number is chosen,
|
||||
or cause the search to fail
|
||||
if it no longer overlaps the UID range at all.
|
||||
The resulting group always gets the same numeric ID as the user.
|
||||
If \fB\-\-ingroup\fP is used instead,
|
||||
\fB\-\-firstgid\fP and \fB\-\-lastgid\fP have no effect;
|
||||
\fB\-\-firstuid\fP and \fB\-\-lastuid\fP still bound
|
||||
whether the requested group's GID
|
||||
can be preferred as the new user's UID
|
||||
(see \fBAdd a regular (non-system) user\fP above).
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP,
|
||||
for \fP\-\-firstgid\fP and \fB\-\-lastgid\fR also
|
||||
\fBaddgroup\fP.
|
||||
.TP
|
||||
.B \-\-force\-badname
|
||||
.TQ
|
||||
.B \-\-allow\-badname
|
||||
These are the deprecated forms of \fB\-\-allow\-bad\-names\fR.
|
||||
They will be removed
|
||||
during the release cycle of Debian 13.
|
||||
.TP
|
||||
.BI \-\-gid " GID"
|
||||
When creating a group,
|
||||
this option sets the group ID number of the new group to \fIGID\fP.
|
||||
When creating a user,
|
||||
this option sets the primary group ID number of the new user
|
||||
to \fIGID\fP.
|
||||
For \fBadduser \-\-system\fP specifically,
|
||||
if the chosen UID is not also given explicitly with \fB\-\-uid\fP,
|
||||
and \fIGID\fP happens to also be free as a UID
|
||||
within the UID range in effect,
|
||||
\fBadduser\fP prefers that number for the new user's UID
|
||||
(see \fB\-\-ingroup\fP).
|
||||
This does not apply to a non-system \fBadduser\fP:
|
||||
there, \fB\-\-gid\fP alone never influences UID selection this way.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP,
|
||||
\fBaddgroup\fP, \fBaddgroup \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-group
|
||||
Using this option in \fBadduser \-\-system\fP
|
||||
indicates that the new user should get
|
||||
an identically named group as its primary group.
|
||||
If that identically named group is not already present, it is created.
|
||||
If not combined with \fB\-\-system\fP,
|
||||
a group with the given name is created.
|
||||
The latter is the default action if
|
||||
the program is invoked as \fBaddgroup\fP.
|
||||
Valid modes: \fBadduser \-\-system\fP,
|
||||
\fBaddgroup\fP, \fBaddgroup \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-help
|
||||
Display brief instructions.
|
||||
.TP
|
||||
.BI \-\-home " dir"
|
||||
Use \fIdir\fP as the user's home directory,
|
||||
rather than the default specified by the configuration file
|
||||
(or \fI/nonexistent\fP if \fBadduser \-\-system\fP is used).
|
||||
If the directory does not exist, it is created.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.BI \-\-ingroup " GROUP"
|
||||
When creating a user,
|
||||
this option sets the primary group ID number of the new user
|
||||
to the GID of the named group.
|
||||
Unlike with the \fB\-\-gid\fP option,
|
||||
the group is specified here by name rather than by numeric ID number.
|
||||
The group must already exist.
|
||||
If the chosen UID is not also given explicitly with \fB\-\-uid\fP,
|
||||
and \fIGROUP\fP's GID happens to also be free as a UID
|
||||
within the UID range in effect
|
||||
(see \fB\-\-firstuid\fP / \fB\-\-lastuid\fP),
|
||||
\fBadduser\fP prefers that number for the new user's UID,
|
||||
so the user ends up with a UID matching the group's GID
|
||||
even though the group itself was not newly created.
|
||||
Otherwise, the first available UID in range is used, as before.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.BI \-\-lastuid " ID"
|
||||
.TQ
|
||||
.BI \-\-lastgid " ID"
|
||||
Override the last UID / last GID.
|
||||
See \fB\-\-firstuid\fP.
|
||||
.TP
|
||||
.B \-\-no\-create\-home
|
||||
Do not create a home directory for the new user.
|
||||
Note that the pathname for the new user's home directory
|
||||
will still be entered in the appropriate field
|
||||
in the \fI\%/etc/passwd\fP file.
|
||||
The use of this option does not imply that this field should be empty.
|
||||
Rather, it indicates to \fB\%adduser\fP
|
||||
that some other mechanism will be responsible
|
||||
for initializing the new user's home directory.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-force\-home
|
||||
Assume the home directory does already exist
|
||||
and has been taken care of by the local administrator.
|
||||
\fIchown\fP the directory to the newly created user and
|
||||
populate it with the files from \fI\%/etc/skel\fP
|
||||
without double checking.
|
||||
This allows to put new home directories on an
|
||||
md, lvm, or dm-crypt device.
|
||||
Valid modes: \fBadduser\fP.
|
||||
.TP
|
||||
.B \-\-no\-copy\-skel
|
||||
Do not populate the home directory for the new user with
|
||||
files from \fI\%/etc/skel\fP.
|
||||
If the home directory is newly created, it will be empty.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-quiet
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=warn .
|
||||
Deprecated.
|
||||
.TP
|
||||
.BI \-\-shell " shell"
|
||||
Use \fIshell\fP as the user's login shell,
|
||||
rather than the default specified by the configuration file
|
||||
(or \fI/usr/sbin/nologin\fP if \fBadduser \-\-system\fP is used).
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-system
|
||||
Normally, \fBadduser\fP creates
|
||||
\fIdynamically allocated user accounts and groups\fP
|
||||
as defined in Debian Policy, Chapter 9.2.2.
|
||||
With this option, \fBadduser\fP creates a
|
||||
\fIdynamically allocated system user and group\fP
|
||||
and changes its mode respectively.
|
||||
Valid modes: \fBadduser\fP, \fBaddgroup\fP.
|
||||
.TP
|
||||
.BI \-\-uid " ID"
|
||||
Force the new userid to be the given number.
|
||||
\fBadduser\fP will fail if the userid is already taken.
|
||||
Valid modes: \fBadduser\fP, \fBadduser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-verbose
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=info .
|
||||
Deprecated.
|
||||
.TP
|
||||
.BI \-\-stdoutmsglevel " prio"
|
||||
.TQ
|
||||
.BI \-\-stderrmsglevel " prio"
|
||||
.TQ
|
||||
.BI \-\-logmsglevel " prio"
|
||||
Minimum priority for messages logged to syslog/journal and the console,
|
||||
respectively.
|
||||
Values are
|
||||
\fItrace\fP, \fIdebug\fP, \fIinfo\fP, \fIwarn\fP, \fIerr\fP, and \fIfatal\fP.
|
||||
Messages with the priority set here or higher get printed to the
|
||||
respective medium.
|
||||
Messages printed to stderr are not repeated on stdout.
|
||||
That allows the local admin to control \fBadduser\fP's chattiness
|
||||
on the console and in the log independently, keeping probably confusing
|
||||
information to itself while still leaving helpful information in the log.
|
||||
stdoutmsglevel, stderrmsglevel, and logmsglevel default to warn, warn, info,
|
||||
respectively.
|
||||
.TP
|
||||
.BR \-v " , " \-\-version
|
||||
Display version and copyright information.
|
||||
|
||||
.SH VALID NAMES
|
||||
Historically,
|
||||
\fBadduser\fP(8) and \fBaddgroup\fP(8) enforced
|
||||
conformity to IEEE Std 1003.1-2001,
|
||||
which allows only the following characters to appear
|
||||
in group- and usernames:
|
||||
letters, digits, underscores, periods, at signs (@) and dashes.
|
||||
The name may not start with a dash or @.
|
||||
The "$" sign is allowed at the end of usernames
|
||||
to allow typical Samba machine accounts.
|
||||
.PP
|
||||
The default settings for \fBNAME_REGEX\fP and \fBSYS_NAME_REGEX\fP
|
||||
allow usernames to contain letters and digits,
|
||||
plus dash (\-) and underscore (_);
|
||||
the name must begin with a letter
|
||||
(or an underscore for system users).
|
||||
.PP
|
||||
The least restrictive policy,
|
||||
available by using the \fB\-\-allow-all-names\fP option,
|
||||
simply makes the same checks as \fBuseradd\fP(8).
|
||||
Please note that useradd's checks have become quite a bit more restrictive
|
||||
in Debian 13.
|
||||
.PP
|
||||
Changing the default behavior can be used to create
|
||||
confusing or misleading names; use with caution.
|
||||
|
||||
.SH LOGGING
|
||||
|
||||
.B Adduser
|
||||
uses extensive and configurable logging to tailor its verbosity to
|
||||
the needs of the system administrator.
|
||||
|
||||
Every message that \fBadduser\fR prints has a priority value
|
||||
assigned by the authors.
|
||||
This priority can not be changed at run time.
|
||||
Available priority values are
|
||||
\fBfatal\fR,
|
||||
\fBerror\fR,
|
||||
\fBwarn\fR,
|
||||
\fBinfo\fR,
|
||||
\fBdebug\fR,
|
||||
and
|
||||
\fBtrace\fR.
|
||||
|
||||
If you find that a message has the wrong priority,
|
||||
please file a bug.
|
||||
|
||||
Every time a message is generated,
|
||||
the code decides whether to print the message to
|
||||
standard output,
|
||||
standard error,
|
||||
or
|
||||
syslog.
|
||||
This is mainly and independently controlled by the configuration settings
|
||||
\fBSTDOUTMSGLEVEL\fR,
|
||||
\fBSTDERRMSGLEVEL\fR,
|
||||
and
|
||||
\fBLOGMSGLEVEL\fR.
|
||||
For testing purposes,
|
||||
these settings can be overridden on the command line.
|
||||
|
||||
Only messages with a priority higher or equal to the respective
|
||||
message level are logged to the respective output medium.
|
||||
A message that was written to standard error is not written
|
||||
a second time to standard output.
|
||||
|
||||
.SH EXIT VALUES
|
||||
|
||||
.TP
|
||||
.B 0
|
||||
Success: The user or group exists as specified.
|
||||
This can have 2 causes:
|
||||
The user or group was created by this call to \fBadduser\fP
|
||||
or the user or group was already present on the system
|
||||
as specified before \fBadduser\fP was invoked.
|
||||
If \fBadduser \-\-system\fP is invoked for a user
|
||||
already existing with the requested or compatible attributes,
|
||||
it will also return 0.
|
||||
.TP
|
||||
.B 11
|
||||
The object that \fBadduser\fP was asked to create does already exist.
|
||||
.TP
|
||||
.B 12
|
||||
The object that \fBadduser\fP or \fBdeluser\fP was asked to operate on
|
||||
does not exist.
|
||||
.TP
|
||||
.B 13
|
||||
The object that \fBadduser\fP or \fBdeluser\fP was asked to operate on
|
||||
does not have the properties
|
||||
that are required to complete the operation:
|
||||
A user (a group) that was requested to be created
|
||||
as a system user (group)
|
||||
does already exist and
|
||||
is not a system user (group),
|
||||
or
|
||||
a user (group) that was requested to be created
|
||||
with a certain UID (GID)
|
||||
does already exist and
|
||||
has a different UID (GID),
|
||||
or
|
||||
a system user (group) that was requested to be deleted
|
||||
does exist, but is not a system user (group).
|
||||
.TP
|
||||
.B 21
|
||||
The UID (GID) that was explicitly requested for a new user (group)
|
||||
is already in use.
|
||||
.TP
|
||||
.B 22
|
||||
There is no available UID (GID) in the requested range.
|
||||
.TP
|
||||
.B 23
|
||||
There is no group with the requested GID for the primary group
|
||||
for a new user.
|
||||
.TP
|
||||
.B 31
|
||||
The chosen name or comment for a new user or a new group
|
||||
does not conform to the selected naming rules.
|
||||
.TP
|
||||
.B 32
|
||||
The home directory of a new user must be an absolute path.
|
||||
.TP
|
||||
.B 33
|
||||
useradd returned exit code 19 "invalid user or group name".
|
||||
That means the user or group name chosen does not fit useradd's restrictions
|
||||
and adduser cannot create the user.
|
||||
.TP
|
||||
.B 41
|
||||
The group that was requested to be deleted is not empty.
|
||||
.TP
|
||||
.B 42
|
||||
The user that was requested to be removed from a group is
|
||||
not a member in the first place.
|
||||
.TP
|
||||
.B 43
|
||||
It is not possible to remove a user from its primary group,
|
||||
or
|
||||
no primary group selected for a new user by any method.
|
||||
.TP
|
||||
.B 51
|
||||
Incorrect number or order of command line parameters detected.
|
||||
.TP
|
||||
.B 52
|
||||
Incompatible options set in configuration file.
|
||||
.TP
|
||||
.B 53
|
||||
Mutually incompatible command line options detected.
|
||||
.TP
|
||||
.B 54
|
||||
\fBadduser\fP and \fBdeluser\fP invoked as non-root and thus cannot work.
|
||||
.TP
|
||||
.B 55
|
||||
\fBdeluser\fP will refuse to delete the \fIroot\fP account.
|
||||
.TP
|
||||
.B 56
|
||||
A function was requested that needs more packages to be installed.
|
||||
See Recommends: and Suggests: of the adduser package.
|
||||
.TP
|
||||
.B 61
|
||||
.B Adduser
|
||||
was aborted for some reason and
|
||||
tried to roll back the changes that were done during execution.
|
||||
.TP
|
||||
.B 62
|
||||
Internal
|
||||
.B adduser
|
||||
error.
|
||||
This should not happen.
|
||||
Please try to reproduce the issue and file a bug report.
|
||||
.TP
|
||||
.B 71
|
||||
Error creating and handling the lock.
|
||||
.TP
|
||||
.B 72
|
||||
Error accessing the configuration file(s).
|
||||
.TP
|
||||
.B 73
|
||||
Error accessing a pool file.
|
||||
.TP
|
||||
.B 74
|
||||
Error reading a pool file, syntax error in file.
|
||||
.TP
|
||||
.B 75
|
||||
Error accessing auxiliary files.
|
||||
.TP
|
||||
.B 81
|
||||
An executable that is needed by \fBadduser\fP or \fBdeluser\fP
|
||||
cannot be found.
|
||||
Check your installation and dependencies.
|
||||
.TP
|
||||
.B 82
|
||||
Executing an external command returned some unexpected error.
|
||||
.TP
|
||||
.B 83
|
||||
An external command was terminated with a signal.
|
||||
.TP
|
||||
.B 84
|
||||
A syscall terminated with unexpected error.
|
||||
.PP
|
||||
Or for many other yet undocumented reasons which
|
||||
are printed to console then.
|
||||
You may then consider to increase a log level
|
||||
to make \fBadduser\fP more verbose.
|
||||
|
||||
.SH SECURITY
|
||||
\fBadduser\fP needs root privileges and offers,
|
||||
via the \fB\-\-conf\fP command line option
|
||||
to use different configuration files.
|
||||
Do not use \fBsudo\fP(8) or similar tools to
|
||||
give partial privileges to \fBadduser\fP
|
||||
with restricted command line parameters.
|
||||
This is easy to circumvent and might
|
||||
allow users to create arbitrary accounts.
|
||||
If you want this,
|
||||
consider writing your own wrapper script
|
||||
and giving privileges to execute that script.
|
||||
|
||||
.SH FILES
|
||||
.TP
|
||||
.I /etc/adduser.conf
|
||||
Default configuration file for \fBadduser\fP(8) and \fBaddgroup\fP(8)
|
||||
.TP
|
||||
.I /usr/local/sbin/adduser.local
|
||||
Optional custom add-ons, see
|
||||
.BR adduser.local (8)
|
||||
.
|
||||
|
||||
.SH NOTES
|
||||
Unfortunately, the term
|
||||
\fIsystem account\fP
|
||||
suffers from double use in Debian.
|
||||
It both means an account for the actual Debian system,
|
||||
distinguishing itself from an \fIapplication account\fP
|
||||
which might exist in the user database
|
||||
of some application running on Debian.
|
||||
A \fIsystem account\fP in this definition has the potential
|
||||
to log in to the actual system, has a UID,
|
||||
can be member in system groups,
|
||||
can own files and processes.
|
||||
Debian Policy, au contraire, in its Chapter 9.2.2,
|
||||
makes a distinguishment of
|
||||
\fIdynamically allocated system users and groups\fP and
|
||||
\fIdynamically allocated user accounts\fP,
|
||||
meaning in both cases special instances of \fIsystem accounts\fP.
|
||||
Care must be taken to not confuse this terminology.
|
||||
Since \fBadduser\fP and \fBdeluser\fP(8) never address
|
||||
\fIapplication accounts\fP and
|
||||
everything in this package concerns \fIsystem accounts\fP here,
|
||||
the usage of the terms \fIuser account\fP and \fIsystem account\fP
|
||||
is actually not ambiguous in the context of this package.
|
||||
For clarity, this document uses the definition
|
||||
\fIlocal system account or group\fP if the distinction to
|
||||
\fIapplication accounts\fP or
|
||||
accounts managed in a directory service is needed.
|
||||
.PP
|
||||
\fBadduser\fP used to have the vision to be the universal front end
|
||||
to the various directory services for
|
||||
creation and deletion of regular and system accounts in Debian
|
||||
since the 1990ies.
|
||||
This vision has been abandoned as of 2022.
|
||||
The rationale behind this includes:
|
||||
that in practice,
|
||||
a small server system is not going to have
|
||||
write access to an enterprise-wide directory service anyway,
|
||||
that locally installed packages are hard to manage with
|
||||
centrally controlled system accounts,
|
||||
that enterprise directory services have
|
||||
their own management processes anyway and
|
||||
that the personpower of the \fBadduser\fP team
|
||||
is unlikely to be ever strong enough to write and maintain support for
|
||||
the plethora of directory services that need support.
|
||||
.PP
|
||||
\fBadduser\fP will constrict itself to being a policy layer
|
||||
for the management of local system accounts,
|
||||
using the tools from the \fBpasswd\fP package for the actual work.
|
||||
.PP
|
||||
Group membership changes do not affect processes that are already running.
|
||||
When a user is added to a group, the new membership becomes effective only for
|
||||
sessions started after the change.
|
||||
This behavior is a common source of
|
||||
confusion for administrators who expect the results of \fBadduser user
|
||||
group\fP to apply immediately to existing sessions.
|
||||
|
||||
To make the new group membership available immediately, the user must
|
||||
start a new login session.
|
||||
Alternatively, the
|
||||
.BR newgrp (1)
|
||||
command can be used to start a new shell with the updated group
|
||||
membership.
|
||||
|
||||
This behavior is a fundamental property of Unix-like operating systems
|
||||
and cannot be altered by \fBadduser\fP.
|
||||
|
||||
.SH BUGS
|
||||
Inconsistent use of terminology around the term \fIsystem account\fP
|
||||
in docs and code is a bug.
|
||||
Please report this and allow us to improve our docs.
|
||||
.PP
|
||||
\fBadduser\fP takes special attention to be directly usable in
|
||||
Debian maintainer scripts without conditional wrappers,
|
||||
error suppression and other scaffolding.
|
||||
The only thing that the package maintainer should need to code
|
||||
is a check for the presence of the executable in the postrm script.
|
||||
The \fBadduser\fP maintainers consider the need
|
||||
for additional scaffolding a bug and
|
||||
encourage their fellow Debian package maintainers
|
||||
to file bugs against the \fBadduser\fP package in this case.
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR adduser.conf (5),
|
||||
.BR deluser (8),
|
||||
.BR groupadd (8),
|
||||
.BR useradd (8),
|
||||
.BR usermod (8),
|
||||
.B /usr/share/doc/base\-passwd/users\-and\-groups.html
|
||||
on any Debian system,
|
||||
Debian Policy 9.2.2,
|
||||
RFC8264 "PRECIS Framework: Preparation, Enforcement, and Comparison of
|
||||
Internationalized Strings in Application Protocols",
|
||||
RFC8265 "PRECIS Representing Usernames and Passwords",
|
||||
https://wiki.debian.org/UserAccounts.
|
||||
+328
@@ -0,0 +1,328 @@
|
||||
.\" Copyright: 1994 Ian A. Murdock <imurdock@debian.org>
|
||||
.\" 1995 Ted Hajek <tedhajek@boombox.micro.umn.edu>
|
||||
.\" 1997-1999 Guy Maor
|
||||
.\" 2000-2003 Roland Bauerschmidt <rb@debian.org>
|
||||
.\" 2004-2025 Marc Haber <mh+debian-packages@zugschlus.de>
|
||||
.\" 2006-2009 Jörg Hoh <joerg@joerghoh.de>
|
||||
.\" 2011 Justin B Rye <jbr@edlug.org.uk>
|
||||
.\" 2016 Helge Kreutzmann <debian@helgefjell.de>
|
||||
.\" 2021-2022 Jason Franklin <jason@oneway.dev>
|
||||
.\"
|
||||
.\" This is free software; see the GNU General Public License version
|
||||
.\" 2 or later for copying conditions. There is NO warranty.
|
||||
.TH DELUSER 8 "" "Debian GNU/Linux"
|
||||
.SH NAME
|
||||
deluser, delgroup \- remove a user or group from the system
|
||||
.SH SYNOPSIS
|
||||
.SY deluser
|
||||
.OP \-\-backup
|
||||
.OP \-\-backup\-suffix str
|
||||
.OP \-\-backup\-to dir
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-remove\-all\-files
|
||||
.OP \-\-remove\-home
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.OP \-\-lock
|
||||
.B user
|
||||
.YS
|
||||
|
||||
.SY deluser
|
||||
.OP \-\-system
|
||||
.OP \-\-backup
|
||||
.OP \-\-backup\-suffix str
|
||||
.OP \-\-backup\-to dir
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-remove\-all\-files
|
||||
.OP \-\-remove\-home
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.OP \-\-lock
|
||||
.OP \-\-force\-delete
|
||||
.B user
|
||||
.YS
|
||||
|
||||
.SY deluser
|
||||
.B \-\-group
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-only\-if\-empty
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B group
|
||||
.YS
|
||||
|
||||
.SY delgroup
|
||||
.OP \-\-system
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-only\-if\-empty
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B group
|
||||
.YS
|
||||
|
||||
.SY deluser
|
||||
.OP \-\-conf file
|
||||
.OP \-\-debug
|
||||
.OP \-\-quiet
|
||||
.OP \-\-verbose
|
||||
.OP \-\-stdoutmsglevel prio
|
||||
.OP \-\-stderrmsglevel prio
|
||||
.OP \-\-logmsglevel prio
|
||||
.B user
|
||||
.B group
|
||||
.YS
|
||||
|
||||
.SY deluser
|
||||
.B \-\-help
|
||||
.YS
|
||||
.SY deluser
|
||||
.B \-\-version
|
||||
.YS
|
||||
.SH DESCRIPTION
|
||||
\fBdeluser\fP and \fBdelgroup\fP remove users and groups
|
||||
from the system according to command line options
|
||||
and configuration information in
|
||||
\fI/etc/deluser.conf\fP and \fI/etc/adduser.conf\fP.
|
||||
.PP
|
||||
They are more Debian specific front ends to the
|
||||
\fBuserdel\fP and \fBgroupdel\fP programs,
|
||||
which are more distribution agnostic.
|
||||
\fBdeluser\fP and \fBdelgroup\fP can remove the home directory as option
|
||||
or even all files on the system owned by the user to be removed,
|
||||
run a custom script,
|
||||
and have other features.
|
||||
.PP
|
||||
For a full list and explanations of all options,
|
||||
see the OPTIONS section.
|
||||
.PP
|
||||
\fBdeluser\fP and \fBdelgroup\fP can be run in one of three modes:
|
||||
|
||||
.SS "Remove a user"
|
||||
If called with one non-option argument and
|
||||
without the \fB\-\-group\fP option,
|
||||
\fBdeluser\fP will remove a non-system user.
|
||||
.PP
|
||||
Note: If \fBdeluser\fP is called with the \fB\-\-lock\fP option,
|
||||
the user account will be locked rather than removed as described
|
||||
here; see \fB\-\-lock\fP, below.
|
||||
.PP
|
||||
By default,
|
||||
\fBdeluser\fP will remove the user
|
||||
without removing the home directory,
|
||||
the mail spool or
|
||||
any other files on the system owned by the user.
|
||||
Removing the home directory and mail spool
|
||||
can be achieved using the \fB\-\-remove\-home\fP option.
|
||||
.PP
|
||||
The \fB\-\-remove\-all\-files\fP option
|
||||
removes all files on the system owned by the user.
|
||||
Note that if you activate both options
|
||||
\fB\-\-remove\-home\fP will have no additional effect
|
||||
because all files including
|
||||
the home directory and mail spool
|
||||
are already covered by the \fB\-\-remove\-all\-files\fP option.
|
||||
.PP
|
||||
If you want to backup all files before deleting them
|
||||
you can activate the \fB\-\-backup\fP option
|
||||
which will create a file \fIusername.tar(.gz|.bz2)\fP
|
||||
in the directory specified by the \fB\-\-backup\-to\fP option.
|
||||
.PP
|
||||
By default,
|
||||
the backup archive is compressed with \fBgzip\fP(1).
|
||||
To change this,
|
||||
the \fB\-\-backup\-suffix\fP option can be set
|
||||
to any suffix supported by \fBtar \-\-auto\-compress\fP.
|
||||
.PP
|
||||
\fBdeluser\fP will refuse to remove the root account.
|
||||
.PP
|
||||
If the \fB\-\-system\fP option is given on the command line, the
|
||||
delete operation is actually executed only if the user is a system user.
|
||||
This avoids accidentally deleting non-system users.
|
||||
Additionally,
|
||||
if the user does not exist,
|
||||
no error value is returned.
|
||||
Debian package maintainer scripts
|
||||
may use this flag
|
||||
to remove system users or groups
|
||||
while ignoring the case where the removal already occurred.
|
||||
|
||||
.SS "Remove a group"
|
||||
If \fBdeluser\fP is called with the \fB\-\-group\fP option,
|
||||
or \fBdelgroup\fP is called,
|
||||
a group will be removed.
|
||||
The primary group of an existing user cannot be removed.
|
||||
If the option \fB\-\-only\-if\-empty\fP is given,
|
||||
the group won't be removed if it has any members left.
|
||||
.PP
|
||||
The \fB\-\-system\fP option adds the same functionality as for users,
|
||||
respectively.
|
||||
|
||||
.SS "Remove a user from a specific group"
|
||||
If called with two non-option arguments,
|
||||
\fBdeluser\fP will remove a user from a specific group.
|
||||
|
||||
.SH OPTIONS
|
||||
Different modes of \fBdeluser\fP allow different options.
|
||||
If no valid modes are listed for a option,
|
||||
it is accepted in all modes.
|
||||
.PP
|
||||
Short versions for certain options may exist for historical reasons.
|
||||
They are going to stay supported, but are removed from the documentation.
|
||||
Users are advised to migrate to the long version of options.
|
||||
.TP
|
||||
.B \-\-backup
|
||||
Backup all files contained in the userhome and the mailspool file
|
||||
to a file named \fIusername.tar.bz2\fP or \fIusername.tar.gz\fP.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.BR "\-\-backup\-suffix "str
|
||||
Select compression algorithm for a home directory backup.
|
||||
Can be set to any suffix recognized by \fBtar \-\-auto\-compress\fP.
|
||||
Defaults to \fI.gz\fP.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.BI "\-\-backup\-to "dir
|
||||
Place the backup files not in the current directory but in \fIdir\fP.
|
||||
This implicitly sets \fB\-\-backup\fP also.
|
||||
Defaults to the current working directory.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.BI \-\-conf " file"
|
||||
Use \fIfile\fP instead of the default files
|
||||
\fI/etc/deluser.conf\fP and \fI/etc/adduser.conf\fP.
|
||||
Multiple \-\-conf options may be given.
|
||||
.TP
|
||||
.B \-\-debug
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=debug .
|
||||
Deprecated.
|
||||
.TP
|
||||
.B \-\-group
|
||||
Remove a group.
|
||||
This is the default action if the program is
|
||||
invoked as \fIdelgroup\fP.
|
||||
Valid mode: \fBdeluser\fP.
|
||||
.TP
|
||||
.B \-\-help
|
||||
Display brief instructions.
|
||||
.TP
|
||||
.B \-\-only\-if\-empty
|
||||
Only remove if no members are left.
|
||||
Valid modes: \fBdeluser \-\-group\fP, \fBdelgroup\fP.
|
||||
.TP
|
||||
.B \-\-quiet
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=warn .
|
||||
Deprecated.
|
||||
.TP
|
||||
.B \-\-remove\-all\-files
|
||||
Remove all files from the system owned by this user.
|
||||
Note: \-\-remove\-home does not have an effect any more.
|
||||
If \fB\-\-backup\fP is specified,
|
||||
the files are deleted after having performed the backup.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-remove\-home
|
||||
Remove the home directory of the user and its mailspool.
|
||||
If \fB\-\-backup\fP is specified,
|
||||
the files are deleted after having performed the backup.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-system
|
||||
Only delete if user/group is a system user/group.
|
||||
If the user does not exist, no error value is returned.
|
||||
Valid modes: \fBdeluser\fP, \fBdeluser \-\-system\fP.
|
||||
.TP
|
||||
.B \-\-verbose
|
||||
Synonymous to
|
||||
.BR \-\-stdoutmsglevel=info .
|
||||
Deprecated.
|
||||
.TP
|
||||
.BI \-\-stdoutmsglevel " prio"
|
||||
.TQ
|
||||
.BI \-\-stderrmsglevel " prio"
|
||||
.TQ
|
||||
.BI \-\-logmsglevel " prio"
|
||||
Minimum priority for messages logged to syslog/journal and the console,
|
||||
respectively.
|
||||
Values are
|
||||
\fItrace\fP, \fIdebug\fP, \fIinfo\fP, \fIwarn\fP, \fIerr\fP, and \fIfatal\fP.
|
||||
Messages with the priority set here or higher get printed to the
|
||||
respective medium.
|
||||
Messages printed to stderr are not repeated on stdout.
|
||||
That allows the local admin to control \fBadduser\fP's chattiness
|
||||
on the console and in the log independently, keeping probably confusing
|
||||
information to itself while still leaving helpful information in the log.
|
||||
.TP
|
||||
.B \-\-lock
|
||||
If \fBdeluser\fP is called with the \fB\-\-lock\fP option,
|
||||
the user account will be locked rather than removed. In this
|
||||
case, the user's password is invalidated and the account is
|
||||
set to expired; no other action is taken. A locked account may be
|
||||
subsequently unlocked using \fBadduser\fP \fB\-\-unlock\fP.
|
||||
|
||||
System users may be set to lock upon delete by default by setting
|
||||
\fBSYS_DELETE_ACTION\fP=\fBlock\fP in \fB/etc/deluser.conf\fP.
|
||||
.B \-\-force\-delete
|
||||
If deleting a system user, and the default \fBSYS_DELETE_ACTION\fP
|
||||
would lock the account, instead delete it normally.
|
||||
.TP
|
||||
.B \-\-version
|
||||
Display version and copyright information.
|
||||
|
||||
.SH LOGGING
|
||||
|
||||
\fBdeluser\fR uses extensive and configurable logging to tailor its verbosity
|
||||
to the needs and wishes of the system administrator.
|
||||
|
||||
This works similar to \fBadduser\fR.
|
||||
See \fBadduser\fR(8) for all the details.
|
||||
|
||||
.SH EXIT VALUES
|
||||
|
||||
The exit values documented in adduser(8) also apply for \fBdeluser\fP.
|
||||
|
||||
.SH SECURITY
|
||||
\fBdeluser\fP needs root privileges and offers,
|
||||
via the \fB\-\-conf\fP command line option
|
||||
to use different configuration files.
|
||||
Do not use \fBsudo\fP(8) or similar tools to
|
||||
give partial privileges to \fBdeluser\fP
|
||||
with restricted command line parameters.
|
||||
This is easy to circumvent and might
|
||||
allow users to obtain privileges they are not supposed to have.
|
||||
If you want this,
|
||||
consider writing your own wrapper script
|
||||
and giving privileges to execute that script.
|
||||
|
||||
.SH FILES
|
||||
.I /etc/deluser.conf
|
||||
Default configuration file for \fBdeluser\fP(8) and \fBdelgroup\fP(8)
|
||||
.TP
|
||||
.I /usr/local/sbin/deluser.local
|
||||
Optional custom add-ons, see
|
||||
.BR deluser.local (8)
|
||||
.
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR adduser (8),
|
||||
.BR deluser.conf (5),
|
||||
.BR deluser.local.conf (8),
|
||||
.BR groupdel (8),
|
||||
.BR userdel (8)
|
||||
Reference in new issue
Block a user