--- /dev/null
+////
+chfn.1 -- change your finger information
+(c) 1994 by salvatore valente <svalente@athena.mit.edu>
+
+This program is free software. You can redistribute it and
+modify it under the terms of the GNU General Public License.
+There is no warranty.
+////
+= chfn(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: chfn
+
+== NAME
+
+chfn - change your finger information
+
+== SYNOPSIS
+
+*chfn* [*-f* _full-name_] [*-o* _office_] [*-p* _office-phone_] [*-h* _home-phone_] [*-u*] [*-v*] [_username_]
+
+== DESCRIPTION
+
+*chfn* is used to change your finger information. This information is stored in the _/etc/passwd_ file, and is displayed by the *finger* program. The Linux *finger* command will display four pieces of information that can be changed by *chfn*: your real name, your work room and phone, and your home phone.
+
+Any of the four pieces of information can be specified on the command line. If no information is given on the command line, *chfn* enters interactive mode.
+
+In interactive mode, *chfn* will prompt for each field. At a prompt, you can enter the new information, or just press return to leave the field unchanged. Enter the keyword "none" to make the field blank.
+
+*chfn* supports non-local entries (kerberos, LDAP, etc.) if linked with libuser, otherwise use *ypchfn*(1), *lchfn*(1) or any other implementation for non-local entries.
+
+== OPTIONS
+
+*-f*, *--full-name* _full-name_::
+ Specify your real name.
+
+*-o*, *--office* _office_::
+ Specify your office room number.
+
+*-p*, *--office-phone* _office-phone_::
+ Specify your office phone number.
+
+*-h*, *--home-phone* _home-phone_::
+ Specify your home phone number.
+
+*-u*, *--help*::
+ Display help text and exit.
+
+*-v*, *--version*::
+ Display version information and exit.
+
+== CONFIG FILE ITEMS
+
+*chfn* reads the _/etc/login.defs_ configuration file (see *login.defs*(5)). Note that the configuration file could be distributed with another package (e.g., shadow-utils). The following configuration items are relevant for *chfn*:
+
+*CHFN_RESTRICT* _string_
+
+____
+Indicate which fields are changeable by *chfn*.
+
+The boolean setting *"yes"* means that only the Office, Office Phone and Home Phone fields are changeable, and boolean setting *"no"* means that also the Full Name is changeable.
+
+Another way to specify changeable fields is by abbreviations: f = Full Name, r = Office (room), w = Office (work) Phone, h = Home Phone. For example, *CHFN_RESTRICT "wh"* allows changing work and home phone numbers.
+
+If *CHFN_RESTRICT* is undefined, then all finger information is read-only. This is the default.
+____
+
+== EXIT STATUS
+
+Returns 0 if operation was successful, 1 if operation failed or command syntax was not valid.
+
+== AUTHORS
+
+mailto:svalente@mit.edu[Salvatore Valente]
+
+== SEE ALSO
+
+*chsh*(1),
+*finger*(1),
+*login.defs*(5),
+*passwd*(5)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+chsh.1 -- change your login shell
+(c) 1994 by salvatore valente <svalente@athena.mit.edu>
+
+This program is free software. You can redistribute it and
+modify it under the terms of the GNU General Public License.
+There is no warranty.
+////
+= chsh(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: chsh
+
+== NAME
+
+chsh - change your login shell
+
+== SYNOPSIS
+
+*chsh* [*-s* _shell_] [*-l*] [*-h*] [*-v*] [_username_]
+
+== DESCRIPTION
+
+*chsh* is used to change your login shell. If a shell is not given on the command line, *chsh* prompts for one.
+
+*chsh* supports non-local entries (kerberos, LDAP, etc.) if linked with libuser, otherwise use *ypchsh*(1), *lchsh*(1) or any other implementation for non-local entries.
+
+== OPTIONS
+
+*-s*, *--shell* _shell_::
+ Specify your login shell.
+
+*-l*, *--list-shells*::
+ Print the list of shells listed in _/etc/shells_ and exit.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+*-v*, *--version*::
+ Display version information and exit.
+
+== VALID SHELLS
+
+*chsh* will accept the full pathname of any executable file on the system.
+
+The default behavior for non-root users is to accept only shells listed in the _/etc/shells_ file, and issue a warning for root user. It can also be configured at compile-time to only issue a warning for all users.
+
+== EXIT STATUS
+
+Returns 0 if operation was successful, 1 if operation failed or command syntax was not valid.
+
+== AUTHORS
+
+mailto:svalente@mit.edu[Salvatore Valente]
+
+== SEE ALSO
+
+*login*(1),
+*login.defs*(5),
+*passwd*(5),
+*shells*(5)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+Copyright (C) 1998-2004 Miquel van Smoorenburg.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+////
+= last(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: last
+
+== NAME
+
+last, lastb - show a listing of last logged in users
+
+== SYNOPSIS
+
+*last* [options] [_username_...] [_tty_...]
+
+*lastb* [options] [_username_...] [_tty_...]
+
+== DESCRIPTION
+
+*last* searches back through the _/var/log/wtmp_ file (or the file designated by the *-f* option) and displays a list of all users logged in (and out) since that file was created. One or more _usernames_ and/or _ttys_ can be given, in which case *last* will show only the entries matching those arguments. Names of _ttys_ can be abbreviated, thus *last 0* is the same as *last tty0*.
+
+When catching a *SIGINT* signal (generated by the interrupt key, usually control-C) or a SIGQUIT signal, *last* will show how far it has searched through the file; in the case of the *SIGINT* signal *last* will then terminate.
+
+The pseudo user *reboot* logs in each time the system is rebooted. Thus *last reboot* will show a log of all the reboots since the log file was created.
+
+*lastb* is the same as *last*, except that by default it shows a log of the _/var/log/btmp_ file, which contains all the bad login attempts.
+
+== OPTIONS
+
+*-a*, *--hostlast*::
+ Display the hostname in the last column. Useful in combination with the *--dns* option.
+
+*-d*, *--dns*::
+ For non-local logins, Linux stores not only the host name of the remote host, but its IP number as well. This option translates the IP number back into a hostname.
+
+*-f*, *--file* _file_::
+ Tell *last* to use a specific _file_ instead of _/var/log/wtmp_. The *--file* option can be given multiple times, and all of the specified files will be processed.
+
+*-F*, *--fulltimes*::
+ Print full login and logout times and dates.
+
+*-i*, *--ip*::
+ Like *--dns ,* but displays the host's IP number instead of the name.
+
+**-**__number__; *-n*, *--limit* _number_::
+ Tell *last* how many lines to show.
+
+*-p*, *--present* _time_::
+ Display the users who were present at the specified time. This is like using the options *--since* and *--until* together with the same _time_.
+
+*-R*, *--nohostname*::
+ Suppresses the display of the hostname field.
+
+*-s*, *--since* _time_::
+ Display the state of logins since the specified _time_. This is useful, e.g., to easily determine who was logged in at a particular time. The option is often combined with *--until*.
+
+*-t*, *--until* _time_::
+ Display the state of logins until the specified _time_.
+
+*--time-format* _format_::
+ Define the output timestamp _format_ to be one of _notime_, _short_, _full_, or _iso_. The _notime_ variant will not print any timestamps at all, _short_ is the default, and _full_ is the same as the *--fulltimes* option. The _iso_ variant will display the timestamp in ISO-8601 format. The ISO format contains timezone information, making it preferable when printouts are investigated outside of the system.
+
+*-w*, *--fullnames*::
+ Display full user names and domain names in the output.
+
+*-x*, *--system*::
+ Display the system shutdown entries and run level changes.
+
+== TIME FORMATS
+
+The options that take the _time_ argument understand the following formats:
+
+[cols=",",]
+|===
+|YYYYMMDDhhmmss |
+|YYYY-MM-DD hh:mm:ss |
+|YYYY-MM-DD hh:mm |(seconds will be set to 00)
+|YYYY-MM-DD |(time will be set to 00:00:00)
+|hh:mm:ss |(date will be set to today)
+|hh:mm |(date will be set to today, seconds to 00)
+|now |
+|yesterday |(time is set to 00:00:00)
+|today |(time is set to 00:00:00)
+|tomorrow |(time is set to 00:00:00)
+|+5min |
+|-5days |
+|===
+
+== FILES
+
+_/var/log/wtmp_ +
+_/var/log/btmp_
+
+== NOTES
+
+The files _wtmp_ and _btmp_ might not be found. The system only logs information in these files if they are present. This is a local configuration issue. If you want the files to be used, they can be created with a simple *touch*(1) command (for example, _touch /var/log/wtmp_).
+
+== AUTHORS
+
+mailto:miquels@cistron.nl[Miquel van Smoorenburg]
+
+== SEE ALSO
+
+*login*(1),
+*wtmp*(5),
+*init*(8),
+*shutdown*(8)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
+May be distributed under the GNU General Public License
+////
+= login(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: login
+
+== NAME
+
+login - begin session on the system
+
+== SYNOPSIS
+
+*login* [*-p*] [*-h* _host_] [*-H*] [*-f* _username_|_username_]
+
+== DESCRIPTION
+
+*login* is used when signing onto a system. If no argument is given, *login* prompts for the username.
+
+The user is then prompted for a password, where appropriate. Echoing is disabled to prevent revealing the password. Only a number of password failures are permitted before *login* exits and the communications link is severed. See *LOGIN_RETRIES* in CONFIG FILE ITEMS section.
+
+If password aging has been enabled for the account, the user may be prompted for a new password before proceeding. In such case old password must be provided and the new password entered before continuing. Please refer to *passwd*(1) for more information.
+
+The user and group ID will be set according to their values in the _/etc/passwd_ file. There is one exception if the user ID is zero. In this case, only the primary group ID of the account is set. This should allow the system administrator to login even in case of network problems. The environment variable values for *$HOME*, *$USER*, *$SHELL*, *$PATH*, *$LOGNAME*, and *$MAIL* are set according to the appropriate fields in the password entry. *$PATH* defaults to _/usr/local/bin:/bin:/usr/bin_ for normal users, and to _/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin_ for root, if not otherwise configured.
+
+The environment variable *$TERM* will be preserved, if it exists, else it will be initialized to the terminal type on your tty. Other environment variables are preserved if the *-p* option is given.
+
+Then the user's shell is started. If no shell is specified for the user in _/etc/passwd_, then _/bin/sh_ is used. If there is no home directory specified in _/etc/passwd_, then _/_ is used, followed by _.hushlogin_ check as described below.
+
+If the file _.hushlogin_ exists, then a "quiet" login is performed. This disables the checking of mail and the printing of the last login time and message of the day. Otherwise, if _/var/log/lastlog_ exists, the last login time is printed, and the current login is recorded.
+
+== OPTIONS
+
+*-p*::
+ Used by *getty*(8) to tell *login* to preserve the environment.
+
+*-f*::
+ Used to skip a login authentication. This option is usually used by the *getty*(8) autologin feature.
+
+*-h*::
+ Used by other servers (such as *telnetd*(8) to pass the name of the remote host to *login* so that it can be placed in utmp and wtmp. Only the superuser is allowed use this option. +
+ Note that the *-h* option has an impact on the *PAM service* *name*. The standard service name is _login_, but with the *-h* option, the name is _remote_. It is necessary to create proper PAM config files (for example, _/etc/pam.d/login_ and _/etc/pam.d/remote_).
+
+*-H*::
+ Used by other servers (for example, *telnetd*(8)) to tell *login* that printing the hostname should be suppressed in the login: prompt. See also *LOGIN_PLAIN_PROMPT* below.
+
+*--help*::
+ Display help text and exit.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+== CONFIG FILE ITEMS
+
+*login* reads the _/etc/login.defs_ configuration file (see login.defs(5)). Note that the configuration file could be distributed with another package (usually shadow-utils). The following configuration items are relevant for *login*:
+
+*MOTD_FILE* (string)
+
+____
+Specifies a ":" delimited list of "message of the day" files and directories to be displayed upon login. If the specified path is a directory then displays all files with .motd file extension in version-sort order from the directory.
+
+The default value is _/usr/share/misc/motd:/run/motd:/etc/motd_. If the *MOTD_FILE* item is empty or a quiet login is enabled, then the message of the day is not displayed. Note that the same functionality is also provided by the *pam_motd*(8) PAM module.
+
+The directories in the *MOTD_FILE* are supported since version 2.36.
+
+Note that *login* does not implement any filenames overriding behavior like pam_motd (see also *MOTD_FIRSTONLY*), but all content from all files is displayed. It is recommended to keep extra logic in content generators and use _/run/motd.d_ rather than rely on overriding behavior hardcoded in system tools.
+____
+
+*MOTD_FIRSTONLY* (boolean)
+
+____
+Forces *login* to stop display content specified by *MOTD_FILE* after the first accessible item in the list. Note that a directory is one item in this case. This option allows *login* semantics to be configured to be more compatible with pam_motd. The default value is _no_.
+____
+
+*LOGIN_PLAIN_PROMPT* (boolean)
+
+____
+Tell *login* that printing the hostname should be suppressed in the login: prompt. This is an alternative to the *-H* command line option. The default value is _no_.
+____
+
+*LOGIN_TIMEOUT* (number)
+
+____
+Maximum time in seconds for login. The default value is _60_.
+____
+
+*LOGIN_RETRIES* (number)
+
+____
+Maximum number of login retries in case of a bad password. The default value is _3_.
+____
+
+*LOGIN_KEEP_USERNAME* (boolean)
+
+____
+Tell *login* to only re-prompt for the password if authentication failed, but the username is valid. The default value is _no_.
+____
+
+*FAIL_DELAY* (number)
+
+____
+Delay in seconds before being allowed another three tries after a login failure. The default value is _5_.
+____
+
+*TTYPERM* (string)
+
+____
+The terminal permissions. The default value is _0600_ or _0620_ if tty group is used.
+____
+
+*TTYGROUP* (string)
+
+____
+The login tty will be owned by the *TTYGROUP*. The default value is _tty_. If the *TTYGROUP* does not exist, then the ownership of the terminal is set to the user´s primary group.
+
+The *TTYGROUP* can be either the name of a group or a numeric group identifier.
+____
+
+*HUSHLOGIN_FILE* (string)
+
+____
+If defined, this file can inhibit all the usual chatter during the login sequence. If a full pathname (for example, _/etc/hushlogins_) is specified, then hushed mode will be enabled if the user´s name or shell are found in the file. If this global hush login file is empty then the hushed mode will be enabled for all users.
+
+If a full pathname is not specified, then hushed mode will be enabled if the file exists in the user´s home directory.
+
+The default is to check _/etc/hushlogins_ and if it does not exist then _~/.hushlogin_.
+
+If the *HUSHLOGIN_FILE* item is empty, then all the checks are disabled.
+____
+
+*DEFAULT_HOME* (boolean)
+
+____
+Indicate if login is allowed if we cannot change directory to the home directory. If set to _yes_, the user will login in the root (/) directory if it is not possible to change directory to their home. The default value is _yes_.
+____
+
+*LASTLOG_UID_MAX* (unsigned number)
+
+____
+Highest user ID number for which the _lastlog_ entries should be updated. As higher user IDs are usually tracked by remote user identity and authentication services there is no need to create a huge sparse _lastlog_ file for them. No LASTLOG_UID_MAX option present in the configuration means that there is no user ID limit for writing _lastlog_ entries. The default value is _ULONG_MAX_.
+____
+
+*LOG_UNKFAIL_ENAB* (boolean)
+
+____
+Enable display of unknown usernames when login failures are recorded. The default value is _no_.
+
+Note that logging unknown usernames may be a security issue if a user enters their password instead of their login name.
+____
+
+*ENV_PATH* (string)
+
+____
+If set, it will be used to define the *PATH* environment variable when a regular user logs in. The default value is _/usr/local/bin:/bin:/usr/bin_.
+____
+
+*ENV_ROOTPATH* (string) *ENV_SUPATH* (string)
+
+____
+If set, it will be used to define the PATH environment variable when the superuser logs in. *ENV_ROOTPATH* takes precedence. The default value is _/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin_.
+____
+
+== FILES
+
+_/var/run/utmp_ +
+_/var/log/wtmp_ +
+_/var/log/lastlog_ +
+_/var/spool/mail/*_ +
+_/etc/motd_ +
+_/etc/passwd_ +
+_/etc/nologin_ +
+_/etc/pam.d/login_ +
+_/etc/pam.d/remote_ +
+_/etc/hushlogins_ +
+_$HOME/.hushlogin_
+
+== BUGS
+
+The undocumented BSD *-r* option is not supported. This may be required by some *rlogind*(8) programs.
+
+A recursive login, as used to be possible in the good old days, no longer works; for most purposes *su*(1) is a satisfactory substitute. Indeed, for security reasons, *login* does a *vhangup*(2) system call to remove any possible listening processes on the tty. This is to avoid password sniffing. If one uses the command *login*, then the surrounding shell gets killed by *vhangup*(2) because it's no longer the true owner of the tty. This can be avoided by using *exec login* in a top-level shell or xterm.
+
+== AUTHORS
+
+Derived from BSD login 5.40 (5/9/89) by mailto:glad@daimi.dk[Michael Glad] for HP-UX. Ported to Linux 0.12: mailto:poe@daimi.aau.dk[Peter Orbaek]. Rewritten to a PAM-only version by mailto:kzak@redhat.com[Karel Zak]
+
+== SEE ALSO
+
+*mail*(1),
+*passwd*(1),
+*passwd*(5),
+*utmp*(5),
+*environ*(7),
+*getty*(8),
+*init*(8),
+*lastlog*(8),
+*shutdown*(8)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+// Copyright 2014 Ondrej Oprala (ondrej.oprala@gmail.com)
+// May be distributed under the GNU General Public License
+= lslogins(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: lslogins
+
+== NAME
+
+lslogins - display information about known users in the system
+
+== SYNOPSIS
+
+*lslogins* [options] [*-s*|*-u*[**=**_UID_]] [*-g* _groups_] [*-l* _logins_] [_username_]
+
+== DESCRIPTION
+
+Examine the wtmp and btmp logs, _/etc/shadow_ (if necessary) and _/passwd_ and output the desired data.
+
+The optional argument _username_ forces *lslogins* to print all available details about the specified user only. In this case the output format is different than in case of *-l* or *-g* and unknown is _username_ reported as an error.
+
+The default action is to list info about all the users in the system.
+
+== OPTIONS
+
+Mandatory arguments to long options are mandatory for short options too.
+
+*-a*, *--acc-expiration*::
+ Display data about the date of last password change and the account expiration date (see *shadow*(5) for more info). (Requires root privileges.)
+
+*--btmp-file* __path__****::
+ Alternate path for btmp.
+
+*-c*, *--colon-separate*::
+ Separate info about each user with a colon instead of a newline.
+
+*-e*, *--export*::
+ Output data in the format of NAME=VALUE.
+
+*-f*, *--failed*::
+ Display data about the users' last failed login attempts.
+
+*-G*, *--supp-groups*::
+ Show information about supplementary groups.
+
+*-g*, **--groups**=_groups_::
+ Only show data of users belonging to _groups_. More than one group may be specified; the list has to be comma-separated. Unknown group names are ignored. +
+ Note that relation between user and group may be invisible for primary group if the user is not explicitly specify as group member (e.g., in _/etc/group_). If the command *lslogins* scans for groups than it uses groups database only, and user database with primary GID is not used at all.
+
+*-h*, *--help*::
+ Display help information and exit.
+
+*-L*, *--last*::
+ Display data containing information about the users' last login sessions.
+
+*-l*, **--logins**=_logins_::
+ Only show data of users with a login specified in _logins_ (user names or user IDS). More than one login may be specified; the list has to be comma-separated. Unknown login names are ignored.
+
+*-n*, *--newline*::
+ Display each piece of information on a separate line.
+
+*--noheadings*::
+ Do not print a header line.
+
+*--notruncate*::
+ Don't truncate output.
+
+*-o*, *--output* _list_::
+ Specify which output columns to print. The default list of columns may be extended if _list_ is specified in the format _+list_.
+
+*--output-all*::
+ Output all available columns. *--help* to get a list of all supported columns.
+
+*-p*, *--pwd*::
+ Display information related to login by password (see also *-afL).*
+
+*-r*, *--raw*::
+ Raw output (no columnation).
+
+*-s*, *--system-accs*::
+ Show system accounts. These are by default all accounts with a UID between 101 and 999 (inclusive), with the exception of either nobody or nfsnobody (UID 65534). This hardcoded default may be overwritten by parameters SYS_UID_MIN and SYS_UID_MAX in the file _/etc/login.defs_.
+
+*--time-format* _type_::
+ Display dates in short, full or iso format. The default is short, this time format is designed to be space efficient and human readable.
+
+*-u*, *--user-accs*::
+ Show user accounts. These are by default all accounts with UID above 1000 (inclusive), with the exception of either nobody or nfsnobody (UID 65534). This hardcoded default maybe overwritten by parameters UID_MIN and UID_MAX in the file _/etc/login.defs_.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+*--wtmp-file* _path_::
+ Alternate path for wtmp.
+
+*--lastlog* _path_::
+ Alternate path for lastlog.
+
+*-Z*, *--context*::
+ Display the users' security context.
+
+*-z*, *--print0*::
+ Delimit user entries with a nul character, instead of a newline.
+
+== EXIT STATUS
+
+0::
+ if OK,
+
+1::
+ if incorrect arguments specified,
+
+2::
+ if a serious error occurs (e.g., a corrupt log).
+
+== NOTES
+
+The default UID thresholds are read from _/etc/login.defs_.
+
+== HISTORY
+
+The *lslogins* utility is inspired by the *logins* utility, which first appeared in FreeBSD 4.10.
+
+== AUTHORS
+
+mailto:ooprala@redhat.com[Ondrej Oprala] +
+mailto:kzak@redhat.com[Karel Zak]
+
+== SEE ALSO
+
+*group*(5),
+*passwd*(5),
+*shadow*(5),
+*utmp*(5)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+// Original author unknown. This man page is in the public domain.
+// Modified Sat Oct 9 17:46:48 1993 by faith@cs.unc.edu
+= newgrp(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: newgrp
+
+== NAME
+
+newgrp - log in to a new group
+
+== SYNOPSIS
+
+newgrp [_group_]
+
+== DESCRIPTION
+
+*newgrp* changes the group identification of its caller, analogously to *login*(1). The same person remains logged in, and the current directory is unchanged, but calculations of access permissions to files are performed with respect to the new group ID.
+
+If no group is specified, the GID is changed to the login GID.
+
+== FILES
+
+_/etc/group_ +
+_/etc/passwd_
+
+== AUTHORS
+
+Originally by Michael Haardt. Currently maintained by mailto:poe@daimi.aau.dk[Peter Orbaek].
+
+== SEE ALSO
+
+*login*(1),
+*group*(5)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+= nologin(8)
+:doctype: manpage
+:man manual: System Administration
+:man source: util-linux {release-version}
+:page-layout: base
+:command: nologin
+
+== NAME
+
+nologin - politely refuse a login
+
+== SYNOPSIS
+
+*nologin* [*-V*] [*-h*]
+
+== DESCRIPTION
+
+*nologin* displays a message that an account is not available and exits non-zero. It is intended as a replacement shell field to deny login access to an account.
+
+If the file _/etc/nologin.txt_ exists, *nologin* displays its contents to the user instead of the default message.
+
+The exit status returned by *nologin* is always 1.
+
+== OPTIONS
+
+*-c*, *--command* _command_ +
+*--init-file* +
+*-i* *--interactive* +
+*--init-file* _file_ +
+*-i*, *--interactive* +
+*-l*, *--login* +
+*--noprofile* +
+*--norc* +
+*--posix* +
+*--rcfile* _file_ +
+*-r*, *--restricted*
+
+These shell command-line options are ignored to avoid *nologin* error.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+== NOTES
+
+*nologin* is a per-account way to disable login (usually used for system accounts like http or ftp). *nologin* uses _/etc/nologin.txt_ as an optional source for a non-default message, the login access is always refused independently of the file.
+
+*pam_nologin*(8) PAM module usually prevents all non-root users from logging into the system. *pam_nologin*(8) functionality is controlled by _/var/run/nologin_ or the _/etc/nologin_ file.
+
+== HISTORY
+
+The *nologin* command appeared in 4.4BSD.
+
+== AUTHORS
+
+mailto:kzak@redhat.com[Karel Zak]
+
+== SEE ALSO
+
+*login*(1),
+*passwd*(5),
+*pam_nologin*(8)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+= runuser(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: runuser
+
+== NAME
+
+runuser - run a command with substitute user and group ID
+
+== SYNOPSIS
+
+*runuser* [options] *-u* _user_ [[--] _command_ [_argument_...]]
+
+*runuser* [options] [*-*] [_user_ [_argument_...]]
+
+== DESCRIPTION
+
+*runuser* can be used to run commands with a substitute user and group ID. If the option *-u* is not given, *runuser* falls back to *su*-compatible semantics and a shell is executed. The difference between the commands *runuser* and *su* is that *runuser* does not ask for a password (because it may be executed by the root user only) and it uses a different PAM configuration. The command *runuser* does not have to be installed with set-user-ID permissions.
+
+If the PAM session is not required, then the recommended solution is to use the *setpriv*(1) command.
+
+When called without arguments, *runuser* defaults to running an interactive shell as _root_.
+
+For backward compatibility, *runuser* defaults to not changing the current directory and to setting only the environment variables *HOME* and *SHELL* (plus *USER* and *LOGNAME* if the target _user_ is not root). This version of *runuser* uses PAM for session management.
+
+Note that *runuser* in all cases use PAM (pam_getenvlist()) to do the final environment modification. Command-line options such as *--login* and *--preserve-environment* affect the environment before it is modified by PAM.
+
+== OPTIONS
+
+*-c*, *--command*=_command_::
+ Pass _command_ to the shell with the *-c* option.
+
+*-f*, *--fast*::
+ Pass *-f* to the shell, which may or may not be useful, depending on the shell.
+
+*-g*, *--group*=_group_::
+ The primary group to be used. This option is allowed for the root user only.
+
+*-G*, *--supp-group*=_group_::
+ Specify a supplementary group. This option is available to the root user only. The first specified supplementary group is also used as a primary group if the option *--group* is not specified.
+
+*-*, *-l*, *--login*::
+ Start the shell as a login shell with an environment similar to a real login: +
+ * clears all the environment variables except for *TERM* and variables specified by *--whitelist-environment*
+ * initializes the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, and *PATH*
+ * changes to the target user's home directory
+ * sets argv[0] of the shell to '*-*' in order to make the shell a login shell
+
+*-P*, *--pty*::
+ Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., *runuser --pty -u username -- command &*). If the pseudo-terminal is enabled, then *runuser* works as a proxy between the sessions (copy stdin and stdout). +
+ This feature is mostly designed for interactive sessions. If the standard input is not a terminal, but for example a pipe (e.g., *echo "date" | runuser --pty -u user*), then the ECHO flag for the pseudo-terminal is disabled to avoid messy output.
+
+*-m*, *-p*, *--preserve-environment*::
+ Preserve the entire environment, i.e., do not set *HOME*, *SHELL*, *USER* or *LOGNAME*. The option is ignored if the option *--login* is specified.
+
+*-s*, *--shell*=_shell_::
+ Run the specified _shell_ instead of the default. The shell to run is selected according to the following rules, in order: +
+ * the shell specified with *--shell*
+ * the shell specified in the environment variable *SHELL* if the *--preserve-environment* option is used
+ * the shell listed in the passwd entry of the target user
+ * /bin/sh +
+ If the target user has a restricted shell (i.e., not listed in _/etc/shells_), then the *--shell* option and the *SHELL* environment variables are ignored unless the calling user is root.
+
+**--session-command=**__command__::
+ Same as *-c*, but do not create a new session. (Discouraged.)
+
+*-w*, *--whitelist-environment*=_list_::
+ Don't reset the environment variables specified in the comma-separated _list_ when clearing the environment for *--login*. The whitelist is ignored for the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, and *PATH*.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+== CONFIG FILES
+
+*runuser* reads the _/etc/default/runuser_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *runuser*:
+
+*ENV_PATH* (string)
+
+____
+Defines the PATH environment variable for a regular user. The default value is _/usr/local/bin:/bin:/usr/bin_.
+____
+
+*ENV_ROOTPATH* (string) *ENV_SUPATH* (string)
+
+____
+Defines the *PATH* environment variable for root. *ENV_SUPATH* takes precedence. The default value is _/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin_.
+____
+
+*ALWAYS_SET_PATH* (boolean)
+
+____
+If set to _yes_ and --login and --preserve-environment were not specified *runuser* initializes *PATH*.
+____
+
+The environment variable *PATH* may be different on systems where _/bin_ and _/sbin_ are merged into _/usr_; this variable is also affected by the *--login* command-line option and the PAM system setting (e.g., *pam_env*(8)).
+
+== EXIT STATUS
+
+*runuser* normally returns the exit status of the command it executed. If the command was killed by a signal, *runuser* returns the number of the signal plus 128.
+
+Exit status generated by *runuser* itself:
+
+____
+1::
+ Generic error before executing the requested command
+126::
+ The requested command could not be executed
+127::
+ The requested command was not found
+____
+
+== FILES
+
+_/etc/pam.d/runuser_::
+ default PAM configuration file
+
+_/etc/pam.d/runuser-l_::
+ PAM configuration file if *--login* is specified
+
+_/etc/default/runuser_::
+ runuser specific logindef config file
+
+_/etc/login.defs_::
+ global logindef config file
+
+== HISTORY
+
+This *runuser* command was derived from coreutils' *su*, which was based on an implementation by David MacKenzie, and the Fedora *runuser* command by Dan Walsh.
+
+== SEE ALSO
+
+*setpriv*(1),
+*su*(1),
+*login.defs*(5),
+*shells*(5),
+*pam*(8)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+= su(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: su
+
+== NAME
+
+su - run a command with substitute user and group ID
+
+== SYNOPSIS
+
+*su* [options] [*-*] [_user_ [_argument_...]]
+
+== DESCRIPTION
+
+*su* allows commands to be run with a substitute user and group ID.
+
+When called with no _user_ specified, *su* defaults to running an interactive shell as _root_. When _user_ is specified, additional __argument__s can be supplied, in which case they are passed to the shell.
+
+For backward compatibility, *su* defaults to not change the current directory and to only set the environment variables *HOME* and *SHELL* (plus *USER* and *LOGNAME* if the target _user_ is not root). It is recommended to always use the *--login* option (instead of its shortcut *-*) to avoid side effects caused by mixing environments.
+
+This version of *su* uses PAM for authentication, account and session management. Some configuration options found in other *su* implementations, such as support for a wheel group, have to be configured via PAM.
+
+*su* is mostly designed for unprivileged users, the recommended solution for privileged users (e.g., scripts executed by root) is to use non-set-user-ID command *runuser*(1) that does not require authentication and provides separate PAM configuration. If the PAM session is not required at all then the recommended solution is to use command *setpriv*(1).
+
+Note that *su* in all cases uses PAM (*pam_getenvlist*(3)) to do the final environment modification. Command-line options such as *--login* and *--preserve-environment* affect the environment before it is modified by PAM.
+
+== OPTIONS
+
+*-c*, **--command**=__command__::
+ Pass _command_ to the shell with the *-c* option.
+
+*-f*, *--fast*::
+ Pass *-f* to the shell, which may or may not be useful, depending on the shell.
+
+*-g*, **--group**=__group__::
+ Specify the primary group. This option is available to the root user only.
+
+*-G*, **--supp-group**=__group__::
+ Specify a supplementary group. This option is available to the root user only. The first specified supplementary group is also used as a primary group if the option *--group* is not specified.
+
+*-*, *-l*, *--login*::
+ Start the shell as a login shell with an environment similar to a real login: +
+ * clears all the environment variables except *TERM* and variables specified by *--whitelist-environment*
+ * initializes the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, and *PATH*
+ * changes to the target user's home directory
+ * sets argv[0] of the shell to '*-*' in order to make the shell a login shell
+
+*-m*, *-p*, *--preserve-environment*::
+ Preserve the entire environment, i.e., do not set *HOME*, *SHELL*, *USER* or *LOGNAME*. This option is ignored if the option *--login* is specified.
+
+*-P*, *--pty*::
+ Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., "su --pty - username -c application &"). If the pseudo-terminal is enabled, then *su* works as a proxy between the sessions (copy stdin and stdout). +
+ This feature is mostly designed for interactive sessions. If the standard input is not a terminal, but for example a pipe (e.g., echo "date" | su --pty), then the ECHO flag for the pseudo-terminal is disabled to avoid messy output.
+
+*-s*, **--shell**=__shell__::
+ Run the specified _shell_ instead of the default. The shell to run is selected according to the following rules, in order: +
+ * the shell specified with *--shell*
+ * the shell specified in the environment variable *SHELL*, if the *--preserve-environment* option is used
+ * the shell listed in the passwd entry of the target user
+ * /bin/sh +
+ If the target user has a restricted shell (i.e., not listed in /etc/shells), the *--shell* option and the *SHELL* environment variables are ignored unless the calling user is root.
+
+**--session-command=**__command__::
+ Same as *-c*, but do not create a new session. (Discouraged.)
+
+*-w*, **--whitelist-environment**=__list__::
+ Don't reset the environment variables specified in the comma-separated _list_ when clearing the environment for *--login*. The whitelist is ignored for the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, and *PATH*.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+== SIGNALS
+
+Upon receiving either *SIGINT*, *SIGQUIT* or *SIGTERM*, *su* terminates its child and afterwards terminates itself with the received signal. The child is terminated by *SIGTERM*, after unsuccessful attempt and 2 seconds of delay the child is killed by *SIGKILL*.
+
+== CONFIG FILES
+
+*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *su:*
+
+*FAIL_DELAY* (number)
+
+____
+Delay in seconds in case of an authentication failure. The number must be a non-negative integer.
+____
+
+*ENV_PATH* (string)
+
+____
+Defines the *PATH* environment variable for a regular user. The default value is _/usr/local/bin:/bin:/usr/bin_.
+____
+
+*ENV_ROOTPATH* (string) *ENV_SUPATH* (string)
+
+____
+Defines the *PATH* environment variable for root. *ENV_SUPATH* takes precedence. The default value is _/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin_.
+____
+
+*ALWAYS_SET_PATH* (boolean)
+
+____
+If set to _yes_ and *--login* and *--preserve-environment* were not specified *su* initializes *PATH*.
+____
+
+The environment variable *PATH* may be different on systems where _/bin_ and _/sbin_ are merged into _/usr_; this variable is also affected by the *--login* command-line option and the PAM system setting (e.g., *pam_env*(8)).
+
+== EXIT STATUS
+
+*su* normally returns the exit status of the command it executed. If the command was killed by a signal, *su* returns the number of the signal plus 128.
+
+Exit status generated by *su* itself:
+
+____
+1::
+ Generic error before executing the requested command
+126::
+ The requested command could not be executed
+127::
+ The requested command was not found
+____
+
+== FILES
+
+_/etc/pam.d/su_::
+ default PAM configuration file
+
+_/etc/pam.d/su-l_::
+ PAM configuration file if *--login* is specified
+
+_/etc/default/su_::
+ command specific logindef config file
+
+_/etc/login.defs_::
+ global logindef config file
+
+== NOTES
+
+For security reasons, *su* always logs failed log-in attempts to the btmp file, but it does not write to the _lastlog_ file at all. This solution can be used to control *su* behavior by PAM configuration. If you want to use the *pam_lastlog*(8) module to print warning message about failed log-in attempts then *pam_lastlog*(8) has to be configured to update the _lastlog_ file as well. For example by:
+
+____
+session required pam_lastlog.so nowtmp
+____
+
+== HISTORY
+
+This *su* command was derived from coreutils' *su*, which was based on an implementation by David MacKenzie. The util-linux version has been refactored by Karel Zak.
+
+== SEE ALSO
+
+*setpriv*(1),
+*login.defs*(5),
+*shells*(5),
+*pam*(8),
+*runuser*(1)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+Copyright (C) 1998-2006 Miquel van Smoorenburg.
+Copyright (C) 2012 Karel Zak <kzak@redhat.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+////
+= sulogin(8)
+:doctype: manpage
+:man manual: System Administration
+:man source: util-linux {release-version}
+:page-layout: base
+:command: sulogin
+
+== NAME
+
+sulogin - single-user login
+
+== SYNOPSIS
+
+*sulogin* [options] [_tty_]
+
+== DESCRIPTION
+
+*sulogin* is invoked by *init* when the system goes into single-user mode.
+
+The user is prompted:
+
+Give root password for system maintenance (or type Control-D for normal startup):
+
+If the root account is locked and *--force* is specified, no password is required.
+
+*sulogin* will be connected to the current terminal, or to the optional _tty_ device that can be specified on the command line (typically */dev/console*).
+
+When the user exits from the single-user shell, or presses control-D at the prompt, the system will continue to boot.
+
+== OPTIONS
+
+*-e*, *--force*::
+ If the default method of obtaining the root password from the system via *getpwnam*(3) fails, then examine _/etc/passwd_ and _/etc/shadow_ to get the password. If these files are damaged or nonexistent, or when root account is locked by '!' or '+++*+++' at the begin of the password then *sulogin* will *start a root shell without asking for a password*. +
+ Only use the *-e* option if you are sure the console is physically protected against unauthorized access.
+
+*-p*, *--login-shell*::
+ Specifying this option causes *sulogin* to start the shell process as a login shell.
+
+*-t*, *--timeout* _seconds_::
+ Specify the maximum amount of time to wait for user input. By default, *sulogin* will wait forever.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+== ENVIRONMENT
+
+*sulogin* looks for the environment variable *SUSHELL* or *sushell* to determine what shell to start. If the environment variable is not set, it will try to execute root's shell from _/etc/passwd_. If that fails, it will fall back to _/bin/sh_.
+
+== AUTHORS
+
+*sulogin* was written by Miquel van Smoorenburg for sysvinit and later ported to util-linux by Dave Reisner and Karel Zak.
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+Copyright (C) 2010 Michael Krapp
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+////
+= utmpdump(1)
+:doctype: manpage
+:man manual: User commands
+:man source: util-linux {release-version}
+:page-layout: base
+:command: utmpdump
+
+== NAME
+
+utmpdump - dump UTMP and WTMP files in raw format
+
+== SYNOPSIS
+
+*utmpdump* [options] _filename_
+
+== DESCRIPTION
+
+*utmpdump* is a simple program to dump UTMP and WTMP files in raw format, so they can be examined. *utmpdump* reads from stdin unless a _filename_ is passed.
+
+== OPTIONS
+
+*-f*, *--follow*::
+ Output appended data as the file grows.
+
+*-o*, *--output* _file_::
+ Write command output to _file_ instead of standard output.
+
+*-r*, *--reverse*::
+ Undump, write back edited login information into the utmp or wtmp files.
+
+*-V*, *--version*::
+ Display version information and exit.
+
+*-h*, *--help*::
+ Display help text and exit.
+
+== NOTES
+
+*utmpdump* can be useful in cases of corrupted utmp or wtmp entries. It can dump out utmp/wtmp to an ASCII file, which can then be edited to remove bogus entries, and reintegrated using:
+
+____
+*utmpdump -r < ascii_file > wtmp*
+____
+
+But be warned, *utmpdump* was written for debugging purposes only.
+
+=== File formats
+
+Only the binary version of the *utmp*(5) is standardised. Textual dumps may become incompatible in future.
+
+The version 2.28 was the last one that printed text output using *ctime*(3) timestamp format. Newer dumps use millisecond precision ISO-8601 timestamp format in UTC-0 timezone. Conversion from former timestamp format can be made to binary, although attempt to do so can lead the timestamps to drift amount of timezone offset.
+
+== BUGS
+
+You may *not* use the *-r* option, as the format for the utmp/wtmp files strongly depends on the input format. This tool was *not* written for normal use, but for debugging only.
+
+== AUTHORS
+
+Michael Krapp
+
+== SEE ALSO
+
+*last*(1),
+*w*(1),
+*who*(1),
+*utmp*(5)
+
+include::../man-common/bugreports.adoc[]
+
+include::../man-common/footer.adoc[]
+
+ifdef::translation[]
+include::../man-common/translation.adoc[]
+endif::[]
--- /dev/null
+////
+Copyright (c) 1983, 1991 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+ @(#)vipw.8 6.7 (Berkeley) 3/16/91
+////
+= vipw(8)
+:doctype: manpage
+:man manual: System Administration
+:man source: util-linux {release-version}
+:page-layout: base
+:command: vipw
+
+== NAME
+
+vipw, vigr - edit the password or group file
+
+== SYNOPSIS
+
+*vipw* [_options_]
+
+*vigr* [_options_]
+
+== DESCRIPTION
+
+*vipw* edits the password file after setting the appropriate locks, and does any necessary processing after the password file is unlocked. If the password file is already locked for editing by another user, *vipw* will ask you to try again later. The default editor for *vipw* and *vigr* is *vi*(1). *vigr* edits the group file in the same manner as *vipw* does the passwd file.
+
+== ENVIRONMENT
+
+If the following environment variable exists, it will be utilized by *vipw* and *vigr*:
+
+*EDITOR*::
+ The editor specified by the string *EDITOR* will be invoked instead of the default editor *vi*(1).
+
+== HISTORY
+
+The *vipw* command appeared in 4.0BSD. The *vigr* command appeared in Util-Linux 2.6.
+
+== SEE ALSO
+
+*vi*(1),
+*passwd*(1),
+*flock*(2),
+*passwd*(5)
+
+== AVAILABILITY
+
+The *vigr* and *vipw* commands are part of the util-linux package and are available from https://www.kernel.org/pub/linux/utils/util-linux/[Linux Kernel Archive]