diff options
| author | Alejandro Colomar <alx@kernel.org> | 2023-03-17 17:08:01 +0100 |
|---|---|---|
| committer | Alejandro Colomar <alx@kernel.org> | 2023-03-30 15:14:55 +0200 |
| commit | 4131356cdab8d37fc395ca5466a0401c8573380c (patch) | |
| tree | 8c4c6f1c3172358b735b481cbbfdd9cc04b00ed9 /man2/access.2 | |
| parent | fd00f831b52d61a91d59cb3b46182869145d9700 (diff) | |
| download | man-pages-4131356cdab8.tar.gz | |
man*/, man-pages.7: VERSIONS, STANDARDS, HISTORY: Reorganize sections
- Add a new HISTORY section that covers the history of an API, both
regarding implementations and regarding old standards. This was
previously covered in VERSIONS, and in some cases in STANDARDS.
- Repurpose VERSIONS to cover differing implementations in _current_
systems.
- STANDARDS is reduced to only cover current versions of standards.
That basically means only C11 (C99 has been superseeded by C11; C17
is just a bugfix of C11, so not really a new version), and
POSIX.1-2008 (*-2001 was superseeded by *-2008; *-2017 was just a
bugfix for *-2008). The section also mentions for example 'Linux',
'GNU' or 'BSD' when a non-standard API is Linux- or GNU-only or if
it's (de-facto) standard in the BSDs.
- In some cases content that should go into one of these sections was
in NOTES. Move it from there to where it corresponds.
- In the SYNOPSIS, I added [[deprecated]] in some functions that I
found are deprecated by the relevant standards.
- A few other related changes...
Cc: Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Diffstat (limited to 'man2/access.2')
| -rw-r--r-- | man2/access.2 | 108 |
1 files changed, 56 insertions, 52 deletions
diff --git a/man2/access.2 b/man2/access.2 index d3deeecba0..b80b201d87 100644 --- a/man2/access.2 +++ b/man2/access.2 @@ -275,21 +275,65 @@ Write permission was requested for a file on a read-only filesystem. Write access was requested to an executable which is being executed. .SH VERSIONS +If the calling process has appropriate privileges (i.e., is superuser), +POSIX.1-2001 permits an implementation to indicate success for an +.B X_OK +check even if none of the execute file permission bits are set. +.\" HPU-UX 11 and Tru64 5.1 do this. +Linux does not do this. +.\" +.SS C library/kernel differences +The raw .BR faccessat () -was added in Linux 2.6.16; -library support was added in glibc 2.4. -.PP -.BR faccessat2 () -was added in Linux 5.8. +system call takes only the first three arguments. +The +.B AT_EACCESS +and +.B AT_SYMLINK_NOFOLLOW +flags are actually implemented within the glibc wrapper function for +.BR faccessat (). +If either of these flags is specified, then the wrapper function employs +.BR fstatat (2) +to determine access permissions, but see BUGS. +.\" +.SS glibc notes +On older kernels where +.BR faccessat () +is unavailable (and when the +.B AT_EACCESS +and +.B AT_SYMLINK_NOFOLLOW +flags are not specified), +the glibc wrapper function falls back to the use of +.BR access (). +When +.I pathname +is a relative pathname, +glibc constructs a pathname based on the symbolic link in +.I /proc/self/fd +that corresponds to the +.I dirfd +argument. .SH STANDARDS -.BR access (): -SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008. -.PP -.BR faccessat (): +.TP +.BR access () +.TQ +.BR faccessat () POSIX.1-2008. -.PP -.BR faccessat2 (): -Linux-specific. +.TP +.BR faccessat2 () +Linux. +.SH HISTORY +.TP +.BR access () +SVr4, 4.3BSD, POSIX.1-2001. +.TP +.BR faccessat () +Linux 2.6.16, +glibc 2.4. +.TP +.BR faccessat2 () +Linux 5.8. .SH NOTES .BR Warning : Using these calls to check if a user is authorized to, for example, @@ -316,13 +360,6 @@ is denied, even if some of the other access types in .I mode are permitted. .PP -If the calling process has appropriate privileges (i.e., is superuser), -POSIX.1-2001 permits an implementation to indicate success for an -.B X_OK -check even if none of the execute file permission bits are set. -.\" HPU-UX 11 and Tru64 5.1 do this. -Linux does not do this. -.PP A file is accessible only if the permissions on each of the directories in the path prefix of .I pathname @@ -346,39 +383,6 @@ which checks permissions. (NFS versions 3 and higher perform the check on the server.) Similar problems can occur to FUSE mounts. .\" -.\" -.SS C library/kernel differences -The raw -.BR faccessat () -system call takes only the first three arguments. -The -.B AT_EACCESS -and -.B AT_SYMLINK_NOFOLLOW -flags are actually implemented within the glibc wrapper function for -.BR faccessat (). -If either of these flags is specified, then the wrapper function employs -.BR fstatat (2) -to determine access permissions, but see BUGS. -.\" -.SS glibc notes -On older kernels where -.BR faccessat () -is unavailable (and when the -.B AT_EACCESS -and -.B AT_SYMLINK_NOFOLLOW -flags are not specified), -the glibc wrapper function falls back to the use of -.BR access (). -When -.I pathname -is a relative pathname, -glibc constructs a pathname based on the symbolic link in -.I /proc/self/fd -that corresponds to the -.I dirfd -argument. .SH BUGS Because the Linux kernel's .BR faccessat () |
