This commit is contained in:
Michael Kerrisk 2007-07-08 16:21:19 +00:00
parent 22399250c3
commit 8c4f34f89b
7 changed files with 105 additions and 37 deletions

View File

@ -88,7 +88,8 @@ or the saved set-user-ID (saved set-group-ID).
Setting the effective user (group) ID to the
saved set-user-ID (saved set-group-ID) is
possible since Linux 1.1.37 (1.1.38).
On an arbitrary system one should check _POSIX_SAVED_IDS.
On an arbitrary system one should check
.BR _POSIX_SAVED_IDS .
.LP
Under libc4, libc5 and glibc 2.0
.BI seteuid( euid )

View File

@ -41,7 +41,9 @@ superuser, the real GID and saved set-group-ID are also set.
Under Linux,
.BR setgid ()
is implemented like the POSIX version with the _POSIX_SAVED_IDS feature.
is implemented like the POSIX version with the
.B _POSIX_SAVED_IDS
feature.
This allows a set-group-ID program that is not set-user-ID-root
to drop all of its group
privileges, do some un-privileged work, and then re-engage the original

View File

@ -42,7 +42,9 @@ the real UID and saved set-user-ID are also set.
.PP
Under Linux,
.BR setuid ()
is implemented like the POSIX version with the _POSIX_SAVED_IDS feature.
is implemented like the POSIX version with the
.B _POSIX_SAVED_IDS
feature.
This allows a set-user-ID (other than root) program to drop all of its user
privileges, do some un-privileged work, and then re-engage the original
effective user ID in a secure manner.

View File

@ -116,7 +116,8 @@ None.
.SH "CONFORMING TO"
POSIX.1-2001.
.SH AVAILABILITY
These functions are available when _POSIX_THREAD_SAFE_FUNCTIONS
These functions are available when
.B _POSIX_THREAD_SAFE_FUNCTIONS
is defined.
They are in libc since libc 5.1.1 and in glibc
since glibc 2.0.

View File

@ -128,21 +128,29 @@ First, the POSIX.1 compatible values.
The maximum length of the arguments to the
.BR exec (3)
family of functions.
Must not be less than _POSIX_ARG_MAX (4096).
Must not be less than
.B _POSIX_ARG_MAX
(4096).
.TP
.BR CHILD_MAX " - " _SC_CHILD_MAX
The max number of simultaneous processes per user ID.
Must not be less than _POSIX_CHILD_MAX (25).
Must not be less than
.B _POSIX_CHILD_MAX
(25).
.TP
.BR HOST_NAME_MAX " - " _SC_HOST_NAME_MAX
Max length of a hostname, not including the terminating null byte,
as returned by
.BR gethostname (2).
Must not be less than _POSIX_HOST_NAME_MAX (255).
Must not be less than
.B _POSIX_HOST_NAME_MAX
(255).
.TP
.BR LOGIN_NAME_MAX " - " _SC_LOGIN_NAME_MAX
Maximum length of a login name, including the terminating null byte.
Must not be less than _POSIX_LOGIN_NAME_MAX (9).
Must not be less than
.B _POSIX_LOGIN_NAME_MAX
(9).
.TP
.BR "" "clock ticks - " _SC_CLK_TCK
The number of clock ticks per second.
@ -155,7 +163,9 @@ does not give information: it must equal 1000000.)
.TP
.BR OPEN_MAX " - " _SC_OPEN_MAX
The maximum number of files that a process can have open at any time.
Must not be less than _POSIX_OPEN_MAX (20).
Must not be less than
.B _POSIX_OPEN_MAX
(20).
.TP
.BR PAGESIZE " - " _SC_PAGESIZE
Size of a page in bytes.
@ -167,29 +177,39 @@ The number of repeated occurrences of a BRE permitted by
.BR regexec (3)
and
.BR regcomp (3).
Must not be less than _POSIX2_RE_DUP_MAX (255).
Must not be less than
.B _POSIX2_RE_DUP_MAX
(255).
.TP
.BR STREAM_MAX " - " _SC_STREAM_MAX
The maximum number of streams that a process can have open at any
time.
If defined, it has the same value as the standard C macro
.BR FOPEN_MAX .
Must not be less than _POSIX_STREAM_MAX (8).
Must not be less than
.B _POSIX_STREAM_MAX
(8).
.TP
.BR SYMLOOP_MAX
The maximum number of symbolic links seen in a pathname before resolution
returns
.BR ELOOP .
Must not be less than _POSIX_SYMLOOP_MAX (8).
Must not be less than
.B _POSIX_SYMLOOP_MAX
(8).
.TP
.BR TTY_NAME_MAX " - " _SC_TTY_NAME_MAX
The maximum length of terminal device name,
including the terminating null byte.
Must not be less than _POSIX_TTY_NAME_MAX (9).
Must not be less than
.BR _POSIX_TTY_NAME_MAX
(9).
.TP
.BR TZNAME_MAX " - " _SC_TZNAME_MAX
The maximum number of bytes in a timezone name.
Must not be less than _POSIX_TZNAME_MAX (6).
Must not be less than
.BR _POSIX_TZNAME_MAX
(6).
.TP
.BR _POSIX_VERSION " - " _SC_VERSION
indicates the year and month the POSIX.1 standard was approved in the

View File

@ -107,8 +107,11 @@ or
.LP
Portable applications that use threads cannot call
.BR tmpnam ()
with NULL parameter if either _POSIX_THREADS or
_POSIX_THREAD_SAFE_FUNCTIONS is defined.
with NULL parameter if either
.B _POSIX_THREADS
or
.B _POSIX_THREAD_SAFE_FUNCTIONS
is defined.
.LP
A POSIX draft proposed to use a function
.BR tmpnam_r ()

View File

@ -78,8 +78,11 @@ The functions
.fi
are present.
.SS "BAR - _POSIX_BARRIERS - _SC_BARRIERS"
This option implies the _POSIX_THREADS and
_POSIX_THREAD_SAFE_FUNCTIONS options.
This option implies the
.B _POSIX_THREADS
and
.B _POSIX_THREAD_SAFE_FUNCTIONS
options.
The functions
.br
.nf
@ -106,7 +109,9 @@ This affects the functions
.IR fchown ().
.\" What about lchown() ?
.SS "CS - _POSIX_CLOCK_SELECTION - _SC_CLOCK_SELECTION"
This option implies the _POSIX_TIMERS option.
This option implies the
.B _POSIX_TIMERS
option.
The functions
.br
.nf
@ -124,7 +129,9 @@ then this affects all timers set for an absolute time.
.SS "CPT - _POSIX_CPUTIME - _SC_CPUTIME"
The clockID CLOCK_PROCESS_CPUTIME_ID is supported.
The initial value of this clock is 0 for each process.
This option implies the _POSIX_TIMERS option.
This option implies the
.B _POSIX_TIMERS
option.
The function
.IR clock_getcpuclockid ()
is present.
@ -205,8 +212,11 @@ The functions
are present.
.SS "MON - _POSIX_MONOTONIC_CLOCK - _SC_MONOTONIC_CLOCK"
.nf
CLOCK_MONOTONIC is supported.
This option implies the _POSIX_TIMERS option.
.B CLOCK_MONOTONIC
is supported.
This option implies the
.B _POSIX_TIMERS
option.
Affected functions are
.in +4
.IR aio_suspend (),
@ -223,7 +233,9 @@ Not in final XPG6.
.\" IEC 60559 Floating-Point Option.
.SS "--- - _POSIX_NO_TRUNC"
If this option is in effect (as it always is under POSIX.1-2001)
then pathname components longer than NAME_MAX are not truncated,
then pathname components longer than
.B NAME_MAX
are not truncated,
but give an error.
This property may be dependent on the path prefix of the component.
.SS "PIO - _POSIX_PRIORITIZED_IO - _SC_PRIORITIZED_IO"
@ -256,7 +268,9 @@ The functions
.br
.fi
are present.
If also _POSIX_SPAWN is in effect, then the functions
If also
.B _POSIX_SPAWN
is in effect, then the functions
.br
.nf
.in +4
@ -273,9 +287,13 @@ Affected functions are
.IR getsockopt (),
.IR setsockopt ().
.SS "--- - _POSIX_READER_WRITER_LOCKS - _SC_READER_WRITER_LOCKS"
This option implies the _POSIX_THREADS option.
This option implies the
.B _POSIX_THREADS
option.
Conversely,
under POSIX.1-2001 the _POSIX_THREADS option implies this option.
under POSIX.1-2001 the
.B _POSIX_THREADS
option implies this option.
.nf
The functions
.in +4
@ -380,7 +398,9 @@ This option describes support for process creation in a context where
it is difficult or impossible to use
.IR fork (),
for example, because no MMU is present.
If _POSIX_SPAWN is in effect, then the include file
If
.B _POSIX_SPAWN
is in effect, then the include file
.I <spawn.h>
and the functions
.br
@ -407,7 +427,9 @@ and the functions
.br
.fi
are present.
If also _POSIX_PRIORITY_SCHEDULING is in effect, then
If also
.B _POSIX_PRIORITY_SCHEDULING
is in effect, then
the functions
.br
.nf
@ -420,8 +442,11 @@ the functions
are present.
.fi
.SS "SPI - _POSIX_SPIN_LOCKS - _SC_SPIN_LOCKS"
This option implies the _POSIX_THREADS and
_POSIX_THREAD_SAFE_FUNCTIONS options.
This option implies the
.B _POSIX_THREADS
and
.B _POSIX_THREAD_SAFE_FUNCTIONS
options.
The functions
.br
.nf
@ -436,8 +461,12 @@ The functions
.fi
are present.
.SS "SS - _POSIX_SPORADIC_SERVER - _SC_SPORADIC_SERVER"
The scheduling policy SCHED_SPORADIC is supported.
This option implies the _POSIX_PRIORITY_SCHEDULING option.
The scheduling policy
.B SCHED_SPORADIC
is supported.
This option implies the
.B _POSIX_PRIORITY_SCHEDULING
option.
Affected functions are
.br
.nf
@ -479,7 +508,9 @@ Affected functions are
.fi
.SS "TCT - _POSIX_THREAD_CPUTIME - _SC_THREAD_CPUTIME"
The clockID CLOCK_THREAD_CPUTIME_ID is supported.
This option implies the _POSIX_TIMERS option.
This option implies the
.B _POSIX_TIMERS
option.
Affected functions are
.br
.nf
@ -579,7 +610,9 @@ Affected functions are
.br
.fi
.SS "TSP - _POSIX_THREAD_SPORADIC_SERVER - _SC_THREAD_SPORADIC_SERVER"
This option implies the _POSIX_THREAD_PRIORITY_SCHEDULING option.
This option implies the
.B _POSIX_THREAD_PRIORITY_SCHEDULING
option.
Affected functions are
.br
.nf
@ -724,7 +757,9 @@ The functions
.fi
are present.
.SS "TEF - _POSIX_TRACE_EVENT_FILTER - _SC_TRACE_EVENT_FILTER"
This option implies the _POSIX_TRACE option.
This option implies the
.B _POSIX_TRACE
option.
The functions
.br
.nf
@ -743,7 +778,9 @@ The functions
are present.
.SS "TRI - _POSIX_TRACE_INHERIT - _SC_TRACE_INHERIT"
Tracing children of the traced process is supported.
This option implies the _POSIX_TRACE option.
This option implies the
.B _POSIX_TRACE
option.
The functions
.br
.nf
@ -755,7 +792,9 @@ The functions
.fi
are present.
.SS "TRL - _POSIX_TRACE_LOG - _SC_TRACE_LOG"
This option implies the _POSIX_TRACE option.
This option implies the
.B _POSIX_TRACE
option.
The functions
.br
.nf