Yes, you are right.

Le jeu. 28 janv. 2021 à 09:25, Michael Kerrisk (man-pages)
<mtk.manpa...@gmail.com> a écrit :
>
> Hello Bastien,
>
> On 1/27/21 4:48 PM, roucaries.bast...@gmail.com wrote:
> > From: Bastien Roucariès <ro...@debian.org>
> >
> > Document PATH resolution, particularly null sequence and empty PATH
> >
> > Signed-off-by: Bastien Roucariès <ro...@debian.org>
> > ---
> >  man7/environ.7 | 42 ++++++++++++++++++++++++++++++++++--------
> >  1 file changed, 34 insertions(+), 8 deletions(-)
> >
> > diff --git a/man7/environ.7 b/man7/environ.7
> > index 8fc26bb92..11f30c332 100644
> > --- a/man7/environ.7
> > +++ b/man7/environ.7
> > @@ -68,7 +68,8 @@ The name of the logged-in user (used by some BSD-derived 
> > programs).
> >  Set at login time, see section NOTES below.
> >  .TP
> >  .B LOGNAME
> > -The name of the logged-in user (used by some System-V derived programs).
> > +The name of the logged-in user (used by some System-V derived programs
> > +and POSIX.1-2017).
>
> Please don't include unrelated changes in the same patch.
>
> >  Set at login time, see section NOTES below.
> >  .TP
> >  .B HOME
> > @@ -94,19 +95,27 @@ for further details of the
> >  environment variables).
> >  .TP
> >  .B PATH
> > -The sequence of directory prefixes that
> > -.BR sh (1)
> > -and many other
> > -programs apply in searching for a file known by an incomplete pathname.
> > -The prefixes are separated by \(aq\fB:\fP\(aq.
> > -(Similarly one has
> > +The list of places that shells and other programs look in to find
> > +a command when given an incomplete pathname. Elements on this
> > +colon-separated  (\(aq\fB:\fP\(aq) list may be absolute or relative 
> > directory
> > +names or the zero-length string (interpreted as meaning the
> > +current directory, see section BUGS below).
> > +.B PATH
> > +is checked element by element (left to right), applying that directory
> > +name as a prefix to the pathname (if it does not already
> > +end in a slash, the expansion will insert one between
> > +the prefix and the filename),
> > +until a file is found with the appropriate name and execution
> > +permissions.
> > +.IP
> > +Similarly one has
> >  .B CDPATH
> >  used by some shells to find the target
> >  of a change directory command,
> >  .B MANPATH
> >  used by
> >  .BR man (1)
> > -to find manual pages, and so on)
> > +to find manual pages, and so on.
> >  .TP
> >  .B PWD
> >  The current working directory.
> > @@ -254,6 +263,9 @@ and
> >  are specified by
> >  POSIX.1-1996
> >  and should be reasonably portable.
> > +.PP
> > +.B PATH
> > +behavior is specified by  POSIX.1-2017.
>
> When you write this, it implies that the behavior was not specified
> in earlier in earlier versions of POSIX. Is that true?
>
> >  .SH NOTES
> >  The
> >  .BR prctl (2)
> > @@ -292,6 +304,12 @@ preserves all the variables from the existing shell, 
> > and
> >  or
> >  .I su -l
> >  is the recommended way of getting a full root environment.
> > +.PP
> > +The default search path (used when the environment
> > +does not contain the variable \fBPATH\fR)
> > +shows some variation across systems. See
> > +.B execlp (3)
> > +for documentation of the exact behavior.
> >  .SH BUGS
> >  Clearly there is a security risk here.
> >  Many a system command has been
> > @@ -330,6 +348,13 @@ The authors of
> >  .I gzip
> >  should consider renaming their option to
> >  .BR GZIP_OPT .
> > +.PP
> > +A zero-length element in
> > +.B PATH,
> > +which appears as two adjacent colons \(aq\fB::\fP\(aq or as a leading
> > +or trailing colon on the list, is replaced by implicit \(aq\fB.\fP\(aq.
> > +In order to be portable and strictly conformant to POSIX.1-2017, a user
> > +should use instead an explicit \(aq\fB.\fP\(aq.
> >  .SH SEE ALSO
> >  .BR bash (1),
> >  .BR csh (1),
> > @@ -343,6 +368,7 @@ should consider renaming their option to
> >  .BR execve (2),
> >  .BR clearenv (3),
> >  .BR exec (3),
> > +.BR execlp (3),
>
> I think this line isn't needed. You mention execlp(3) already above.
>
> >  .BR getenv (3),
> >  .BR putenv (3),
> >  .BR setenv (3),
>
> I generally like the idea of this patch, but I can't apply it
> because of
> (a) My first comment above
> (b) It depends on earlier patches that I havne't applied.
>
> Thanks,
>
> Michael
>
>
> --
> Michael Kerrisk
> Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
> Linux/UNIX System Programming Training: http://man7.org/training/

Reply via email to