environ.7: Document valid values of pathnames for SHELL, PAGER and EDITOR/VISUAL

The environ(7) man page says:

       SHELL  The pathname of the user's login shell.

       PAGER  The user's preferred utility to display text files.

       EDITOR/VISUAL
              The user's preferred utility to edit text files.

but doesn't say whether the pathnames must be absolute or they can
be resolved using $PATH, or whether they can have options.

Note that at least for SHELL, this is not specified by POSIX.
This issue was raised in the Austin Group mailing-list, and the
answer is that "what constitutes a valid value for a platform
should be documented" [1].

Since OpenSSH assumes that $SHELL is an absolute pathname (when
set), it is supposed that the documentation should be:

       SHELL  The absolute pathname of the user's login shell.

For PAGER, POSIX says: "Any string acceptable as a command_string
operand to the sh -c command shall be valid."

For EDITOR, it does not need to be an absolute pathname since
POSIX gives the example:

  EDITOR=vi fc

and since it is specified as "the name of a utility", It assumes
that arguments (options) must not be provided. Page 3013 about
"more", it is said: "If the last pathname component in EDITOR is
either vi or ex, [...]", thus again, it is assumed to be a
pathname.

For VISUAL, POSIX says: "Determine a pathname of a utility to
invoke when the visual command [...]", thus it is also a pathname.
It is not clear whether the pathname must be absolute, but for
consistency with EDITOR, it will be resolved using $PATH.

[1] https://www.mail-archive.com/austin-group-l@opengroup.org/msg01399.html

Reported-by: Vincent Lefevre <vincent@vinc17.net>
Signed-off-by: Bastien Roucaries <rouca@debian.org>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Bastien Roucariès 2021-01-19 21:45:00 +01:00 committed by Michael Kerrisk
parent cb7cb64877
commit 67d876899e
1 changed files with 7 additions and 1 deletions

View File

@ -113,16 +113,22 @@ The current working directory.
Set by some shells.
.TP
.B SHELL
The pathname of the user's login shell.
The absolute pathname of the user's login shell.
.TP
.B TERM
The terminal type for which output is to be prepared.
.TP
.B PAGER
The user's preferred utility to display text files.
Any string acceptable as a command_string operand to the
.I sh -c
command shall be valid.
.TP
.BR EDITOR / VISUAL
The user's preferred utility to edit text files.
Any string acceptable as a command_string operand to the
.I sh -c
command shall be valid.
.\" .TP
.\" .B BROWSER
.\" The user's preferred utility to browse URLs. Sequence of colon-separated