2004-11-03 13:51:07 +00:00
|
|
|
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
|
_exit.2, access.2, alarm.2, close.2, link.2, mkdir.2, mknod.2, open.2, read.2, rename.2, rmdir.2, s390_runtime_instr.2, symlink.2, unlink.2, write.2, remove.3, charsets.7: srcfix: Tidy copyright notices
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-16 08:39:00 +00:00
|
|
|
.\" and Copyright (C) 1993 Michael Haardt, Ian Jackson.
|
2014-02-21 06:56:59 +00:00
|
|
|
.\" and Copyright (C) 2004, 2006, 2007, 2014 Michael Kerrisk <mtk.manpages@gmail.com>
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, close.2, connect.2, delete_module.2, dup.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, fork.2, fstatat.2, fsync.2, futimesat.2, get_robust_list.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getpagesize.2, getpid.2, getresuid.2, getrlimit.2, getrusage.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, idle.2, init_module.2, intro.2, iopl.2, kcmp.2, kexec_load.2, kill.2, link.2, linkat.2, llseek.2, lookup_dcookie.2, madvise.2, mincore.2, mkdirat.2, mknodat.2, mmap.2, mmap2.2, mount.2, mprotect.2, mq_getsetattr.2, msgctl.2, msgget.2, msgop.2, msync.2, nice.2, open.2, openat.2, pause.2, perfmonctl.2, personality.2, pipe.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, quotactl.2, read.2, readahead.2, readdir.2, readlinkat.2, readv.2, reboot.2, recvmmsg.2, remap_file_pages.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, sendmmsg.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setresuid.2, setuid.2, setup.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, sigaction.2, sigaltstack.2, signal.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, splice.2, stat.2, statfs.2, stime.2, subpage_prot.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, syscalls.2, sysctl.2, sysfs.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, times.2, tkill.2, umask.2, umount.2, uname.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, abort.3, abs.3, acos.3, acosh.3, adjtime.3, aio_init.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, byteorder.3, bzero.3, catgets.3, catopen.3, cbrt.3, ceil.3, clearenv.3, clock.3, clock_getcpuclockid.3, closedir.3, confstr.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, end.3, endian.3, erf.3, erfc.3, ether_aton.3, euidaccess.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fcloseall.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fmod.3, fnmatch.3, fopencookie.3, fpathconf.3, fpurge.3, frexp.3, fseeko.3, ftok.3, futimes.3, gcvt.3, get_nprocs_conf.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getlogin.3, getmntent.3, getnetent.3, getnetent_r.3, getopt.3, getprotoent.3, getprotoent_r.3, getpw.3, getpwent.3, getpwnam.3, getrpcent_r.3, gets.3, getservent.3, getservent_r.3, getumask.3, getusershell.3, getutmp.3, getw.3, glob.3, gnu_get_libc_version.3, gsignal.3, hypot.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, j0.3, ldexp.3, localeconv.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, on_exit.3, opendir.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, profil.3, psignal.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, putenv.3, putpwent.3, puts.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, re_comp.3, readdir.3, realpath.3, regex.3, remainder.3, remove.3, resolver.3, rewinddir.3, rint.3, round.3, scalb.3, scalbln.3, scandir.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setenv.3, setlocale.3, setlogmask.3, shm_open.3, siginterrupt.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdio_ext.3, stpcpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfry.3, strftime.3, string.3, strlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, trunc.3, tsearch.3, ttyslot.3, tzset.3, ulimit.3, undocumented.3, unlocked_stdio.3, usleep.3, y0.3, cpuid.4, full.4, initrd.4, mouse.4, msr.4, sd.4, st.4, acct.5, core.5, services.5, slabinfo.5, aio.7, capabilities.7, credentials.7, feature_test_macros.7, hier.7, inotify.7, libc.7, locale.7, man-pages.7, man.7, math_error.7, mq_overview.7, numa.7, path_resolution.7, pipe.7, pthreads.7, pty.7, rtld-audit.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, suffixes.7, svipc.7, termio.7, time.7, udplite.7, units.7, uri.7, sln.8: s/LICENSE_START(verbatim)/LICENSE_START(VERBATIM)/
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:29:01 +00:00
|
|
|
.\" %%%LICENSE_START(VERBATIM)
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
.\" professionally.
|
2007-04-12 22:42:49 +00:00
|
|
|
.\"
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
intro.1, _exit.2, access.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, close.2, connect.2, delete_module.2, dup.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, fork.2, fstatat.2, fsync.2, futimesat.2, get_robust_list.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getpagesize.2, getpid.2, getresuid.2, getrlimit.2, getrusage.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, idle.2, init_module.2, intro.2, iopl.2, kcmp.2, kexec_load.2, kill.2, link.2, linkat.2, llseek.2, lookup_dcookie.2, madvise.2, mincore.2, mkdirat.2, mknodat.2, mmap.2, mmap2.2, mount.2, mprotect.2, mq_getsetattr.2, msgctl.2, msgget.2, msgop.2, msync.2, nice.2, open.2, openat.2, pause.2, perfmonctl.2, personality.2, pipe.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, quotactl.2, read.2, readahead.2, readdir.2, readlinkat.2, readv.2, reboot.2, recvmmsg.2, remap_file_pages.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, sendmmsg.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setresuid.2, setuid.2, setup.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, sigaction.2, sigaltstack.2, signal.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, splice.2, stat.2, statfs.2, stime.2, subpage_prot.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, syscalls.2, sysctl.2, sysfs.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, times.2, tkill.2, umask.2, umount.2, uname.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, abort.3, abs.3, acos.3, acosh.3, adjtime.3, aio_init.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, byteorder.3, bzero.3, catgets.3, catopen.3, cbrt.3, ceil.3, clearenv.3, clock.3, clock_getcpuclockid.3, closedir.3, confstr.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, end.3, endian.3, erf.3, erfc.3, ether_aton.3, euidaccess.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fcloseall.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fmod.3, fnmatch.3, fopencookie.3, fpathconf.3, fpurge.3, frexp.3, fseeko.3, ftok.3, futimes.3, gcvt.3, get_nprocs_conf.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getlogin.3, getmntent.3, getnetent.3, getnetent_r.3, getopt.3, getprotoent.3, getprotoent_r.3, getpw.3, getpwent.3, getpwnam.3, getrpcent_r.3, gets.3, getservent.3, getservent_r.3, getumask.3, getusershell.3, getutmp.3, getw.3, glob.3, gnu_get_libc_version.3, gsignal.3, hypot.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, j0.3, ldexp.3, localeconv.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, on_exit.3, opendir.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, profil.3, psignal.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, putenv.3, putpwent.3, puts.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, re_comp.3, readdir.3, realpath.3, regex.3, remainder.3, remove.3, resolver.3, rewinddir.3, rint.3, round.3, scalb.3, scalbln.3, scandir.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setenv.3, setlocale.3, setlogmask.3, shm_open.3, siginterrupt.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdio_ext.3, stpcpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfry.3, strftime.3, string.3, strlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, trunc.3, tsearch.3, ttyslot.3, tzset.3, ulimit.3, undocumented.3, unlocked_stdio.3, usleep.3, y0.3, cpuid.4, full.4, initrd.4, mouse.4, msr.4, sd.4, st.4, acct.5, core.5, services.5, slabinfo.5, aio.7, capabilities.7, credentials.7, feature_test_macros.7, hier.7, inotify.7, libc.7, locale.7, man-pages.7, man.7, math_error.7, mq_overview.7, numa.7, path_resolution.7, pipe.7, pthreads.7, pty.7, rtld-audit.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, suffixes.7, svipc.7, termio.7, time.7, udplite.7, units.7, uri.7, sln.8: Global fix: Add LICENSE_START(verbatim)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:28:40 +00:00
|
|
|
.\" %%%LICENSE_END
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
|
|
|
.\" Modified 1993-07-21 Rik Faith (faith@cs.unc.edu)
|
|
|
|
.\" Modified 1994-08-21 by Michael Chastain (mec@shell.portal.com):
|
|
|
|
.\" Removed note about old kernel (pre-1.1.44) using wrong id on path.
|
|
|
|
.\" Modified 1996-03-18 by Martin Schulze (joey@infodrom.north.de):
|
|
|
|
.\" Stated more clearly how it behaves with symbolic links.
|
|
|
|
.\" Added correction due to Nick Duffek (nsd@bbc.com), aeb, 960426
|
|
|
|
.\" Modified 1996-09-07 by Michael Haardt:
|
|
|
|
.\" Restrictions for NFS
|
|
|
|
.\" Modified 1997-09-09 by Joseph S. Myers <jsm28@cam.ac.uk>
|
|
|
|
.\" Modified 1998-01-13 by Michael Haardt:
|
|
|
|
.\" Using access is often insecure
|
|
|
|
.\" Modified 2001-10-16 by aeb
|
|
|
|
.\" Modified 2002-04-23 by Roger Luethi <rl@hellgate.ch>
|
|
|
|
.\" Modified 2004-06-23 by Michael Kerrisk
|
2007-07-01 03:23:24 +00:00
|
|
|
.\" 2007-06-10, mtk, various parts rewritten, and added BUGS section.
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
locale.1, localedef.1, _exit.2, accept.2, access.2, acct.2, adjtimex.2, bdflush.2, bind.2, bpf.2, brk.2, chdir.2, chmod.2, chown.2, chroot.2, clock_nanosleep.2, clone.2, close.2, connect.2, copy_file_range.2, create_module.2, delete_module.2, dup.2, epoll_ctl.2, eventfd.2, execve.2, fallocate.2, fanotify_init.2, fcntl.2, flock.2, fork.2, fsync.2, futex.2, get_kernel_syms.2, getdomainname.2, getgroups.2, gethostname.2, getpagesize.2, getpeername.2, getsid.2, getsockname.2, getsockopt.2, gettimeofday.2, init_module.2, ioctl.2, ioctl_list.2, ioperm.2, iopl.2, kexec_load.2, kill.2, killpg.2, link.2, listen.2, llseek.2, lseek.2, madvise.2, memfd_create.2, mincore.2, mkdir.2, mknod.2, mmap.2, mount.2, nanosleep.2, nice.2, open.2, personality.2, pipe.2, poll.2, posix_fadvise.2, read.2, readahead.2, readlink.2, readv.2, recv.2, recvmmsg.2, rename.2, request_key.2, sched_setaffinity.2, sched_setattr.2, select.2, select_tut.2, semctl.2, semop.2, send.2, sendfile.2, sendmmsg.2, seteuid.2, setns.2, setpgid.2, setreuid.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigsuspend.2, socketpair.2, splice.2, stat.2, statfs.2, stime.2, symlink.2, sync.2, syscall.2, syscalls.2, times.2, truncate.2, unlink.2, unshare.2, uselib.2, utimensat.2, vfork.2, vhangup.2, wait.2, wait4.2, write.2, a64l.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_read.3, aio_write.3, asin.3, asinh.3, atan.3, atan2.3, atanh.3, atoi.3, backtrace.3, cbrt.3, ceil.3, cfree.3, clearenv.3, clock_getcpuclockid.3, clog10.3, cmsg.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, daemon.3, dirfd.3, div.3, dl_iterate_phdr.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, endian.3, erf.3, erfc.3, errno.3, exec.3, exp.3, exp2.3, expm1.3, fabs.3, fdim.3, ferror.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmin.3, fmod.3, fopen.3, fpclassify.3, frexp.3, fseeko.3, fts.3, futimes.3, fwide.3, gamma.3, gcvt.3, getaddrinfo.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getline.3, getloadavg.3, getmntent.3, getnameinfo.3, getnetent_r.3, getpass.3, getprotoent_r.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent_r.3, getservent_r.3, getspnam.3, getsubopt.3, getusershell.3, getutent.3, getw.3, gsignal.3, hypot.3, ilogb.3, inet.3, initgroups.3, insque.3, isalpha.3, isgreater.3, iswblank.3, j0.3, ldexp.3, lgamma.3, lio_listio.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, makedev.3, matherr.3, mbsnrtowcs.3, mkdtemp.3, mkfifo.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_receive.3, mq_send.3, nan.3, nextafter.3, on_exit.3, open_memstream.3, opendir.3, perror.3, popen.3, posix_fallocate.3, posix_madvise.3, posix_memalign.3, posix_openpt.3, posix_spawn.3, pow.3, printf.3, profil.3, psignal.3, pthread_attr_setstack.3, pthread_setaffinity_np.3, putenv.3, putpwent.3, qecvt.3, rand.3, random.3, random_r.3, rcmd.3, readdir.3, realpath.3, remainder.3, remquo.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, scalb.3, scalbln.3, scandir.3, scanf.3, seekdir.3, sem_wait.3, setbuf.3, setenv.3, setjmp.3, setnetgrent.3, siginterrupt.3, signbit.3, significand.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stpcpy.3, stpncpy.3, strdup.3, strerror.3, strftime.3, strlen.3, strnlen.3, strsep.3, strsignal.3, strtod.3, strtok.3, strtol.3, strtoul.3, syslog.3, system.3, tan.3, tanh.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, trunc.3, ttyslot.3, tzset.3, ualarm.3, unlocked_stdio.3, usleep.3, wcpcpy.3, wcpncpy.3, wcscasecmp.3, wcsdup.3, wcsncasecmp.3, wcsnlen.3, wcsnrtombs.3, wprintf.3, y0.3, pts.4, st.4, tty_ioctl.4, elf.5, gai.conf.5, group.5, locale.5, nsswitch.conf.5, proc.5, utmp.5, aio.7, capabilities.7, credentials.7, environ.7, epoll.7, fanotify.7, feature_test_macros.7, inotify.7, ip.7, mq_overview.7, namespaces.7, pipe.7, signal.7, socket.7, standards.7, svipc.7, symlink.7, time.7, unicode.7, unix.7: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-03-15 03:46:01 +00:00
|
|
|
.TH ACCESS 2 2016-03-15 "Linux" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
2014-02-21 06:56:59 +00:00
|
|
|
access, faccessat \- check user's permissions for a file
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <unistd.h>
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int access(const char *" pathname ", int " mode );
|
2014-02-21 06:56:59 +00:00
|
|
|
|
2014-02-21 07:15:15 +00:00
|
|
|
.BR "#include <fcntl.h> " "/* Definition of AT_* constants */"
|
2014-02-21 06:56:59 +00:00
|
|
|
.B #include <unistd.h>
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
.BI "int faccessat(int " dirfd ", const char *" pathname ", int " \
|
|
|
|
mode ", int " flags );
|
|
|
|
.fi
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
.in -4n
|
|
|
|
Feature Test Macro Requirements for glibc (see
|
|
|
|
.BR feature_test_macros (7)):
|
|
|
|
.in
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
.BR faccessat ():
|
|
|
|
.PD 0
|
|
|
|
.ad l
|
|
|
|
.RS 4
|
|
|
|
.TP 4
|
|
|
|
Since glibc 2.10:
|
access.2, chmod.2, chown.2, link.2, mkdir.2, open.2, readlink.2, rename.2, stat.2, symlink.2, unlink.2, utimensat.2, vfork.2, dirfd.3, fexecve.3, ffs.3, fmemopen.3, getcwd.3, gethostbyname.3, getline.3, mbsnrtowcs.3, mkdtemp.3, mkfifo.3, opendir.3, printf.3, psignal.3, qecvt.3, scandir.3, stpcpy.3, stpncpy.3, strdup.3, strnlen.3, strsignal.3, ualarm.3, usleep.3, wcpcpy.3, wcpncpy.3, wcscasecmp.3, wcsdup.3, wcsncasecmp.3, wcsnlen.3, wcsnrtombs.3: Simply FTM requirements
Looking at <features.h> (or feature_test_macros(7)), one can
see that when _XOPEN_SOURCE is defined with the value 700
(or greater), then _POSIX_C_SOURCE is defined with the value
200809L (or greater). Therefore, terms in the man pages such as
_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
can be simpified to:
_POSIX_C_SOURCE\ >=\ 200809L
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-02-08 11:46:05 +00:00
|
|
|
_POSIX_C_SOURCE\ >=\ 200809L
|
2014-02-21 06:56:59 +00:00
|
|
|
.TP
|
|
|
|
Before glibc 2.10:
|
|
|
|
_ATFILE_SOURCE
|
|
|
|
.RE
|
|
|
|
.ad
|
|
|
|
.PD
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH DESCRIPTION
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR access ()
|
2007-07-01 03:23:24 +00:00
|
|
|
checks whether the calling process can access the file
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR pathname .
|
|
|
|
If
|
|
|
|
.I pathname
|
2007-07-01 03:23:24 +00:00
|
|
|
is a symbolic link, it is dereferenced.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2007-07-01 03:23:24 +00:00
|
|
|
The
|
2004-11-03 13:51:07 +00:00
|
|
|
.I mode
|
2007-07-01 03:23:24 +00:00
|
|
|
specifies the accessibility check(s) to be performed,
|
|
|
|
and is either the value
|
|
|
|
.BR F_OK ,
|
2008-05-09 21:09:04 +00:00
|
|
|
.\" F_OK is defined as 0 on every system that I know of.
|
2007-05-30 15:49:22 +00:00
|
|
|
or a mask consisting of the bitwise OR of one or more of
|
2007-07-01 03:23:24 +00:00
|
|
|
.BR R_OK ", " W_OK ", and " X_OK .
|
2004-11-03 13:51:07 +00:00
|
|
|
.B F_OK
|
2007-07-01 03:23:24 +00:00
|
|
|
tests for the existence of the file.
|
|
|
|
.BR R_OK ", " W_OK ", and " X_OK
|
|
|
|
test whether the file exists and grants read, write, and
|
|
|
|
execute permissions, respectively.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2007-07-01 03:23:24 +00:00
|
|
|
The check is done using the calling process's
|
2004-11-03 13:51:07 +00:00
|
|
|
.I real
|
2007-07-01 03:23:24 +00:00
|
|
|
UID and GID, rather than the effective IDs as is done when
|
|
|
|
actually attempting an operation (e.g.,
|
|
|
|
.BR open (2))
|
2015-02-05 10:25:33 +00:00
|
|
|
on the file.
|
|
|
|
Similarly, for the root user, the check uses the set of
|
2014-09-10 13:01:08 +00:00
|
|
|
permitted capabilities rather than the set of effective
|
2015-02-05 10:25:33 +00:00
|
|
|
capabilities; and for non-root users, the check uses an empty set
|
2014-09-10 13:01:08 +00:00
|
|
|
of capabilities.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-09-10 13:01:08 +00:00
|
|
|
This allows set-user-ID programs and capability-endowed programs
|
2015-02-05 10:25:33 +00:00
|
|
|
to easily determine the invoking user's authority.
|
|
|
|
In other words,
|
2014-09-10 13:01:08 +00:00
|
|
|
.BR access ()
|
|
|
|
does not answer the "can I read/write/execute this file?" question.
|
2015-02-05 10:25:33 +00:00
|
|
|
It answers a slightly different question:
|
|
|
|
"(assuming I'm a setuid binary) can
|
2014-09-10 13:01:08 +00:00
|
|
|
.I the user who invoked me
|
|
|
|
read/write/execute this file?",
|
2015-02-05 10:25:33 +00:00
|
|
|
which gives set-user-ID programs the possibility to
|
|
|
|
prevent malicious users from causing them to read files
|
|
|
|
which users shouldn't be able to read.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2007-07-01 03:23:24 +00:00
|
|
|
If the calling process is privileged (i.e., its real UID is zero),
|
|
|
|
then an
|
2004-11-03 13:51:07 +00:00
|
|
|
.B X_OK
|
2007-07-01 03:23:24 +00:00
|
|
|
check is successful for a regular file if execute permission
|
|
|
|
is enabled for any of the file owner, group, or other.
|
2014-05-15 12:52:46 +00:00
|
|
|
.SS faccessat()
|
2014-02-21 06:56:59 +00:00
|
|
|
The
|
|
|
|
.BR faccessat ()
|
|
|
|
system call operates in exactly the same way as
|
access.2, chmod.2, chown.2, link.2, mkdir.2, open.2, readlink.2, rename.2, stat.2, symlink.2, unlink.2, mkfifo.3, scandir.3: Minor fix: remove section numbers in references to functions inside page
With the page merges, we now have some references to functions
within the page that have section numbers. Remove those.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2014-02-21 11:50:40 +00:00
|
|
|
.BR access (),
|
2014-02-21 06:56:59 +00:00
|
|
|
except for the differences described here.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
If the pathname given in
|
|
|
|
.I pathname
|
|
|
|
is relative, then it is interpreted relative to the directory
|
|
|
|
referred to by the file descriptor
|
|
|
|
.I dirfd
|
|
|
|
(rather than relative to the current working directory of
|
|
|
|
the calling process, as is done by
|
2014-02-24 23:43:42 +00:00
|
|
|
.BR access ()
|
2014-02-21 06:56:59 +00:00
|
|
|
for a relative pathname).
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
If
|
|
|
|
.I pathname
|
|
|
|
is relative and
|
|
|
|
.I dirfd
|
|
|
|
is the special value
|
|
|
|
.BR AT_FDCWD ,
|
|
|
|
then
|
|
|
|
.I pathname
|
|
|
|
is interpreted relative to the current working
|
|
|
|
directory of the calling process (like
|
2014-02-28 21:04:20 +00:00
|
|
|
.BR access ()).
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
If
|
|
|
|
.I pathname
|
|
|
|
is absolute, then
|
|
|
|
.I dirfd
|
|
|
|
is ignored.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2014-02-21 06:56:59 +00:00
|
|
|
.I flags
|
|
|
|
is constructed by ORing together zero or more of the following values:
|
|
|
|
.TP
|
|
|
|
.B AT_EACCESS
|
|
|
|
Perform access checks using the effective user and group IDs.
|
|
|
|
By default,
|
|
|
|
.BR faccessat ()
|
|
|
|
uses the real IDs (like
|
2014-02-28 21:04:20 +00:00
|
|
|
.BR access ()).
|
2014-02-21 06:56:59 +00:00
|
|
|
.TP
|
|
|
|
.B AT_SYMLINK_NOFOLLOW
|
|
|
|
If
|
|
|
|
.I pathname
|
|
|
|
is a symbolic link, do not dereference it:
|
|
|
|
instead return information about the link itself.
|
2014-02-21 07:13:27 +00:00
|
|
|
.PP
|
|
|
|
See
|
|
|
|
.BR openat (2)
|
|
|
|
for an explanation of the need for
|
|
|
|
.BR faccessat ().
|
iconv.1, localedef.1, access.2, execveat.2, fanotify_init.2, futex.2, ioctl_fat.2, mount.2, ftw.3, sd.4, tty_ioctl.4, fanotify.7, futex.7, posixoptions.7, iconvconfig.8: srcfix: Remove useless quotes from .SS and .SH sections
Signed-off-by: Stéphane Aulery <saulery@free.fr>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-03-08 02:03:52 +00:00
|
|
|
.SH RETURN VALUE
|
2013-04-16 03:20:30 +00:00
|
|
|
On success (all requested permissions granted, or
|
|
|
|
.I mode
|
|
|
|
is
|
|
|
|
.B F_OK
|
|
|
|
and the file exists), zero is returned.
|
2004-11-03 13:51:07 +00:00
|
|
|
On error (at least one bit in
|
|
|
|
.I mode
|
2013-04-16 03:20:30 +00:00
|
|
|
asked for a permission that is denied, or
|
|
|
|
.I mode
|
|
|
|
is
|
|
|
|
.B F_OK
|
|
|
|
and the file does not exist, or some other error occurred),
|
2004-11-03 13:51:07 +00:00
|
|
|
\-1 is returned, and
|
|
|
|
.I errno
|
|
|
|
is set appropriately.
|
|
|
|
.SH ERRORS
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR access ()
|
2014-02-21 07:04:14 +00:00
|
|
|
and
|
|
|
|
.BR faccessat ()
|
2004-11-03 13:51:07 +00:00
|
|
|
shall fail if:
|
|
|
|
.TP
|
|
|
|
.B EACCES
|
2007-05-30 15:43:44 +00:00
|
|
|
The requested access would be denied to the file, or search permission
|
2004-11-03 13:51:07 +00:00
|
|
|
is denied for one of the directories in the path prefix of
|
|
|
|
.IR pathname .
|
|
|
|
(See also
|
2007-05-26 12:41:39 +00:00
|
|
|
.BR path_resolution (7).)
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B ELOOP
|
|
|
|
Too many symbolic links were encountered in resolving
|
|
|
|
.IR pathname .
|
|
|
|
.TP
|
|
|
|
.B ENAMETOOLONG
|
|
|
|
.I pathname
|
|
|
|
is too long.
|
|
|
|
.TP
|
|
|
|
.B ENOENT
|
2007-03-18 06:00:32 +00:00
|
|
|
A component of
|
2004-11-03 13:51:07 +00:00
|
|
|
.I pathname
|
2007-03-18 06:00:32 +00:00
|
|
|
does not exist or is a dangling symbolic link.
|
2004-11-03 13:51:07 +00:00
|
|
|
.TP
|
|
|
|
.B ENOTDIR
|
|
|
|
A component used as a directory in
|
|
|
|
.I pathname
|
|
|
|
is not, in fact, a directory.
|
|
|
|
.TP
|
|
|
|
.B EROFS
|
intro.1, time.1, access.2, acct.2, alloc_hugepages.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clone.2, close.2, execve.2, fallocate.2, fcntl.2, getdents.2, getrusage.2, getxattr.2, init_module.2, inotify_add_watch.2, ioprio_set.2, kcmp.2, link.2, listxattr.2, lseek.2, madvise.2, mkdir.2, mknod.2, mmap.2, mount.2, move_pages.2, msgctl.2, nfsservctl.2, open.2, pivot_root.2, quotactl.2, read.2, readlink.2, removexattr.2, rename.2, rmdir.2, semctl.2, setfsgid.2, setfsuid.2, setresuid.2, setuid.2, setup.2, setxattr.2, shmctl.2, splice.2, spu_create.2, stat.2, statfs.2, swapon.2, symlink.2, sync.2, sync_file_range.2, sysfs.2, truncate.2, umount.2, unlink.2, unshare.2, ustat.2, utime.2, utimensat.2, write.2, btree.3, errno.3, fexecve.3, ftw.3, futimes.3, get_nprocs_conf.3, getcwd.3, getdirentries.3, getmntent.3, glob.3, mkfifo.3, mq_open.3, readdir.3, realpath.3, recno.3, remove.3, sem_open.3, shm_open.3, statvfs.3, sysconf.3, telldir.3, tmpfile.3, cciss.4, initrd.4, pts.4, sk98lin.4, vcs.4, core.5, filesystems.5, proc.5, boot.7, bootparam.7, capabilities.7, cpuset.7, credentials.7, feature_test_macros.7, fifo.7, hier.7, inotify.7, intro.7, mq_overview.7, path_resolution.7, pipe.7, sem_overview.7, shm_overview.7, spufs.7, symlink.7, unix.7, uri.7, sync.8: Global fix: s/file system/filesystem/
Notwithstanding 24d01c530c5a3f75217543d02bf6712395e5f90c,
"filesystem" is the form used by the great majority of man pages
outside the man-pages project and in a number of other sources,
so let's go with that.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-08-08 08:07:57 +00:00
|
|
|
Write permission was requested for a file on a read-only filesystem.
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR access ()
|
2014-02-21 07:04:14 +00:00
|
|
|
and
|
|
|
|
.BR faccessat ()
|
2004-11-03 13:51:07 +00:00
|
|
|
may fail if:
|
|
|
|
.TP
|
|
|
|
.B EFAULT
|
|
|
|
.I pathname
|
|
|
|
points outside your accessible address space.
|
|
|
|
.TP
|
|
|
|
.B EINVAL
|
|
|
|
.I mode
|
|
|
|
was incorrectly specified.
|
|
|
|
.TP
|
|
|
|
.B EIO
|
|
|
|
An I/O error occurred.
|
|
|
|
.TP
|
|
|
|
.B ENOMEM
|
|
|
|
Insufficient kernel memory was available.
|
|
|
|
.TP
|
|
|
|
.B ETXTBSY
|
|
|
|
Write access was requested to an executable which is being
|
|
|
|
executed.
|
2014-02-21 06:56:59 +00:00
|
|
|
.PP
|
|
|
|
The following additional errors can occur for
|
|
|
|
.BR faccessat ():
|
|
|
|
.TP
|
|
|
|
.B EBADF
|
|
|
|
.I dirfd
|
|
|
|
is not a valid file descriptor.
|
|
|
|
.TP
|
|
|
|
.B EINVAL
|
|
|
|
Invalid flag specified in
|
|
|
|
.IR flags .
|
|
|
|
.TP
|
|
|
|
.B ENOTDIR
|
|
|
|
.I pathname
|
|
|
|
is relative and
|
|
|
|
.I dirfd
|
|
|
|
is a file descriptor referring to a file other than a directory.
|
|
|
|
.SH VERSIONS
|
|
|
|
.BR faccessat ()
|
|
|
|
was added to Linux in kernel 2.6.16;
|
|
|
|
library support was added to glibc in version 2.4.
|
iconv.1, localedef.1, access.2, execveat.2, fanotify_init.2, futex.2, ioctl_fat.2, mount.2, ftw.3, sd.4, tty_ioctl.4, fanotify.7, futex.7, posixoptions.7, iconvconfig.8: srcfix: Remove useless quotes from .SS and .SH sections
Signed-off-by: Stéphane Aulery <saulery@free.fr>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-03-08 02:03:52 +00:00
|
|
|
.SH CONFORMING TO
|
2014-02-24 23:43:42 +00:00
|
|
|
.BR access ():
|
2014-02-21 06:57:40 +00:00
|
|
|
SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
access.2, chmod.2, chown.2, link.2, mkdir.2, open.2, readlink.2, rename.2, stat.2, symlink.2, unlink.2, mkfifo.3, scandir.3: Minor fix: remove section numbers in references to functions inside page
With the page merges, we now have some references to functions
within the page that have section numbers. Remove those.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2014-02-21 11:50:40 +00:00
|
|
|
.BR faccessat ():
|
2014-02-21 06:56:59 +00:00
|
|
|
POSIX.1-2008.
|
2007-05-16 05:33:35 +00:00
|
|
|
.SH NOTES
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
2007-09-04 06:30:39 +00:00
|
|
|
.BR Warning :
|
2014-02-21 07:04:14 +00:00
|
|
|
Using these calls to check if a user is authorized to, for example,
|
2007-05-30 15:43:44 +00:00
|
|
|
open a file before actually doing so using
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR open (2)
|
|
|
|
creates a security hole, because the user might exploit the short time
|
|
|
|
interval between checking and opening the file to manipulate it.
|
2007-07-01 03:23:24 +00:00
|
|
|
.BR "For this reason, the use of this system call should be avoided" .
|
2010-10-24 07:19:24 +00:00
|
|
|
(In the example just described,
|
|
|
|
a safer alternative would be to temporarily switch the process's
|
|
|
|
effective user ID to the real ID and then call
|
|
|
|
.BR open (2).)
|
2007-07-01 03:23:24 +00:00
|
|
|
.PP
|
2010-11-01 05:59:37 +00:00
|
|
|
.BR access ()
|
2010-10-24 07:40:33 +00:00
|
|
|
always dereferences symbolic links.
|
|
|
|
If you need to check the permissions on a symbolic link, use
|
2016-12-16 14:24:18 +00:00
|
|
|
.BR faccessat ()
|
2010-10-24 07:40:33 +00:00
|
|
|
with the flag
|
|
|
|
.BR AT_SYMLINK_NOFOLLOW .
|
|
|
|
.PP
|
2014-02-21 07:04:14 +00:00
|
|
|
These calls return an error if any of the access types in
|
2007-07-01 03:23:24 +00:00
|
|
|
.I mode
|
|
|
|
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),
|
2010-10-24 07:09:48 +00:00
|
|
|
POSIX.1-2001 permits an implementation to indicate success for an
|
2007-07-01 03:23:24 +00:00
|
|
|
.B X_OK
|
|
|
|
check even if none of the execute file permission bits are set.
|
2007-07-08 18:31:19 +00:00
|
|
|
.\" HPU-UX 11 and Tru64 5.1 do this.
|
2007-07-01 03:23:24 +00:00
|
|
|
Linux does not do this.
|
|
|
|
.PP
|
intro.1, _syscall.2, access.2, arch_prctl.2, cacheflush.2, chown.2, clock_getres.2, clone.2, create_module.2, fcntl.2, flock.2, get_kernel_syms.2, get_robust_list.2, get_thread_area.2, getcpu.2, getpriority.2, getrlimit.2, getrusage.2, ioprio_set.2, kexec_load.2, madvise.2, mbind.2, migrate_pages.2, mknod.2, mmap.2, mount.2, move_pages.2, mprotect.2, open.2, pause.2, pciconfig_read.2, perf_event_open.2, prctl.2, ptrace.2, query_module.2, read.2, reboot.2, recv.2, s390_runtime_instr.2, sched_setscheduler.2, select_tut.2, send.2, set_mempolicy.2, setfsgid.2, setfsuid.2, sigaction.2, spu_create.2, spu_run.2, stime.2, swapon.2, syslog.2, timer_create.2, timer_getoverrun.2, times.2, tkill.2, umount.2, unimplemented.2, ustat.2, vm86.2, wait.2, abs.3, aio_read.3, aio_write.3, bsd_signal.3, catgets.3, clearenv.3, cmsg.3, dbopen.3, dirfd.3, dlopen.3, exec.3, fenv.3, ferror.3, fmemopen.3, fnmatch.3, fopen.3, futimes.3, getaddrinfo.3, getifaddrs.3, getipnodebyname.3, hsearch.3, if_nameindex.3, inet_pton.3, mblen.3, mbrlen.3, mbsrtowcs.3, mbtowc.3, mcheck.3, memfrob.3, mq_notify.3, netlink.3, posix_memalign.3, printf.3, pthread_attr_setscope.3, pthread_cleanup_push.3, pthread_kill_other_threads_np.3, pthread_self.3, pthread_setcancelstate.3, pthread_setconcurrency.3, raise.3, resolver.3, rpc.3, rtime.3, rtnetlink.3, scanf.3, setbuf.3, setnetgrent.3, shm_open.3, sigpause.3, sigset.3, sigwait.3, sockatmark.3, strcasecmp.3, strcmp.3, strdup.3, strftime.3, strptime.3, strsignal.3, strverscmp.3, sysv_signal.3, termios.3, wcrtomb.3, wcsnlen.3, wcsnrtombs.3, wcsrtombs.3, wctomb.3, wprintf.3, console_codes.4, cpuid.4, msr.4, rtc.4, sk98lin.4, st.4, tty.4, charmap.5, core.5, elf.5, hosts.equiv.5, proc.5, resolv.conf.5, services.5, slabinfo.5, arp.7, bootparam.7, capabilities.7, charsets.7, cpuset.7, ddp.7, epoll.7, feature_test_macros.7, futex.7, hier.7, icmp.7, inotify.7, ip.7, ipv6.7, man-pages.7, mdoc.7, mdoc.samples.7, netdevice.7, netlink.7, numa.7, packet.7, path_resolution.7, posixoptions.7, pthreads.7, raw.7, rtld-audit.7, rtnetlink.7, sem_overview.7, sigevent.7, socket.7, spufs.7, tcp.7, udp.7, unicode.7, uri.7, utf-8.7, intro.8, ldconfig.8, sync.8: Global fix: fix placement of word "only"
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-31 08:53:00 +00:00
|
|
|
A file is accessible only if the permissions on each of the
|
2007-07-01 03:23:24 +00:00
|
|
|
directories in the path prefix of
|
|
|
|
.I pathname
|
|
|
|
grant search (i.e., execute) access.
|
|
|
|
If any directory is inaccessible, then the
|
|
|
|
.BR access ()
|
access.2, delete_module.2, eventfd.2, fallocate.2, fcntl.2, getrandom.2, init_module.2, open.2, seccomp.2, timerfd_create.2, openpty.3, pthread_spin_lock.3, shm_open.3, tempnam.3, fifo.7, keyrings.7, pid_namespaces.7, sched.7, thread-keyring.7: wfix (will fail --> fail/fails)
Reported-by: Pedro Alves <palves@redhat.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2017-10-20 14:55:10 +00:00
|
|
|
call fails, regardless of the permissions on the file itself.
|
2007-07-01 03:23:24 +00:00
|
|
|
.PP
|
|
|
|
Only access bits are checked, not the file type or contents.
|
|
|
|
Therefore, if a directory is found to be writable,
|
|
|
|
it probably means that files can be created in the directory,
|
|
|
|
and not that the directory can be written as a file.
|
|
|
|
Similarly, a DOS file may be found to be "executable," but the
|
|
|
|
.BR execve (2)
|
|
|
|
call will still fail.
|
|
|
|
.PP
|
2014-02-21 07:04:14 +00:00
|
|
|
These calls
|
2013-09-11 20:22:11 +00:00
|
|
|
may not work correctly on NFSv2 filesystems with UID mapping enabled,
|
2007-07-01 03:23:24 +00:00
|
|
|
because UID mapping is done on the server and hidden from the client,
|
2013-09-11 20:22:11 +00:00
|
|
|
which checks permissions. (NFS versions 3 and higher perform the check on
|
|
|
|
the server.)
|
2013-02-28 13:05:08 +00:00
|
|
|
Similar problems can occur to FUSE mounts.
|
2014-02-26 17:29:50 +00:00
|
|
|
.\"
|
|
|
|
.\"
|
_exit.2, access.2, brk.2, chmod.2, clone.2, epoll_wait.2, eventfd.2, fork.2, getgroups.2, gethostname.2, getpid.2, getpriority.2, killpg.2, mmap.2, poll.2, posix_fadvise.2, pread.2, ptrace.2, readv.2, sched_setaffinity.2, select.2, seteuid.2, setgid.2, setresuid.2, setreuid.2, setuid.2, sigaction.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, stat.2, timer_create.2, uname.2, wait.2, wait4.2, mq_notify.3, mq_open.3, sigqueue.3, man-pages.7: Remove "ABI" from "C library/kernel ABI differences" subheadings
The "ABI" doesn't really convey anything significant in
the title. These subsections are about describing differences
between the kernel and (g)libc interfaces.
Reported-by: Andries E. Brouwer <Andries.Brouwer@cwi.nl>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-05-08 11:08:00 +00:00
|
|
|
.SS C library/kernel differences
|
2014-02-21 07:13:27 +00:00
|
|
|
The raw
|
|
|
|
.BR faccessat ()
|
|
|
|
system call takes only the first three arguments.
|
2014-02-21 06:56:59 +00:00
|
|
|
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.
|
2014-05-16 09:09:45 +00:00
|
|
|
.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
|
|
|
|
.IR /proc/self/fd
|
|
|
|
that corresponds to the
|
|
|
|
.IR dirfd
|
|
|
|
argument.
|
2007-07-01 03:23:24 +00:00
|
|
|
.SH BUGS
|
|
|
|
In kernel 2.4 (and earlier) there is some strangeness in the handling of
|
|
|
|
.B X_OK
|
|
|
|
tests for superuser.
|
|
|
|
If all categories of execute permission are disabled
|
accept.2, access.2, acct.2, clock_nanosleep.2, mbind.2, mincore.2, remap_file_pages.2, sched_setscheduler.2, set_mempolicy.2, splice.2, stat.2, syslog.2, timer_create.2, timerfd_create.2, truncate.2, fenv.3, ferror.3, fflush.3, fgetwc.3, fgetws.3, flockfile.3, fputwc.3, fputws.3, fread.3, getopt.3, gets.3, getwchar.3, glob.3, iconv.3, longjmp.3, pow.3, printf.3, puts.3, putwchar.3, regex.3, rpc.3, scanf.3, setjmp.3, termios.3, unlocked_stdio.3, wcswidth.3, hd.4, rtc.4, st.4, core.5, dir_colors.5, elf.5, proc.5, arp.7, ascii.7, boot.7, bootparam.7, charsets.7, futex.7, ip.7, iso_8859-11.7, man-pages.7, man.7, mdoc.samples.7, path_resolution.7, pipe.7, posixoptions.7, unicode.7, unix.7, uri.7, utf-8.7, ld.so.8: s/non-/non/
The tendency in English, as prescribed in style guides like
Chicago MoS, is towards removing hyphens after prefixes
like "non-" etc.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2010-01-16 17:20:12 +00:00
|
|
|
for a nondirectory file, then the only
|
2007-07-01 03:23:24 +00:00
|
|
|
.BR access ()
|
|
|
|
test that returns \-1 is when
|
|
|
|
.I mode
|
|
|
|
is specified as just
|
|
|
|
.BR X_OK ;
|
|
|
|
if
|
|
|
|
.B R_OK
|
|
|
|
or
|
|
|
|
.B W_OK
|
|
|
|
is also specified in
|
|
|
|
.IR mode ,
|
|
|
|
then
|
|
|
|
.BR access ()
|
|
|
|
returns 0 for such files.
|
|
|
|
.\" This behavior appears to have been an implementation accident.
|
|
|
|
Early 2.6 kernels (up to and including 2.6.3)
|
|
|
|
also behaved in the same way as kernel 2.4.
|
2017-08-15 06:29:00 +00:00
|
|
|
.PP
|
2007-05-18 16:06:42 +00:00
|
|
|
In kernels before 2.6.20,
|
2014-02-21 07:04:14 +00:00
|
|
|
these calls ignored the effect of the
|
2007-05-18 16:06:42 +00:00
|
|
|
.B MS_NOEXEC
|
|
|
|
flag if it was used to
|
|
|
|
.BR mount (2)
|
intro.1, time.1, access.2, acct.2, alloc_hugepages.2, bind.2, chdir.2, chmod.2, chown.2, chroot.2, clone.2, close.2, execve.2, fallocate.2, fcntl.2, getdents.2, getrusage.2, getxattr.2, init_module.2, inotify_add_watch.2, ioprio_set.2, kcmp.2, link.2, listxattr.2, lseek.2, madvise.2, mkdir.2, mknod.2, mmap.2, mount.2, move_pages.2, msgctl.2, nfsservctl.2, open.2, pivot_root.2, quotactl.2, read.2, readlink.2, removexattr.2, rename.2, rmdir.2, semctl.2, setfsgid.2, setfsuid.2, setresuid.2, setuid.2, setup.2, setxattr.2, shmctl.2, splice.2, spu_create.2, stat.2, statfs.2, swapon.2, symlink.2, sync.2, sync_file_range.2, sysfs.2, truncate.2, umount.2, unlink.2, unshare.2, ustat.2, utime.2, utimensat.2, write.2, btree.3, errno.3, fexecve.3, ftw.3, futimes.3, get_nprocs_conf.3, getcwd.3, getdirentries.3, getmntent.3, glob.3, mkfifo.3, mq_open.3, readdir.3, realpath.3, recno.3, remove.3, sem_open.3, shm_open.3, statvfs.3, sysconf.3, telldir.3, tmpfile.3, cciss.4, initrd.4, pts.4, sk98lin.4, vcs.4, core.5, filesystems.5, proc.5, boot.7, bootparam.7, capabilities.7, cpuset.7, credentials.7, feature_test_macros.7, fifo.7, hier.7, inotify.7, intro.7, mq_overview.7, path_resolution.7, pipe.7, sem_overview.7, shm_overview.7, spufs.7, symlink.7, unix.7, uri.7, sync.8: Global fix: s/file system/filesystem/
Notwithstanding 24d01c530c5a3f75217543d02bf6712395e5f90c,
"filesystem" is the form used by the great majority of man pages
outside the man-pages project and in a number of other sources,
so let's go with that.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-08-08 08:07:57 +00:00
|
|
|
the underlying filesystem.
|
2014-02-21 07:04:14 +00:00
|
|
|
Since kernel 2.6.20, the
|
|
|
|
.B MS_NOEXEC
|
2015-05-08 09:54:36 +00:00
|
|
|
flag is honored.
|
iconv.1, localedef.1, access.2, execveat.2, fanotify_init.2, futex.2, ioctl_fat.2, mount.2, ftw.3, sd.4, tty_ioctl.4, fanotify.7, futex.7, posixoptions.7, iconvconfig.8: srcfix: Remove useless quotes from .SS and .SH sections
Signed-off-by: Stéphane Aulery <saulery@free.fr>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-03-08 02:03:52 +00:00
|
|
|
.SH SEE ALSO
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR chmod (2),
|
|
|
|
.BR chown (2),
|
|
|
|
.BR open (2),
|
|
|
|
.BR setgid (2),
|
|
|
|
.BR setuid (2),
|
2007-05-06 08:38:24 +00:00
|
|
|
.BR stat (2),
|
2007-05-28 15:42:02 +00:00
|
|
|
.BR euidaccess (3),
|
2007-06-08 07:57:18 +00:00
|
|
|
.BR credentials (7),
|
2014-02-21 06:56:59 +00:00
|
|
|
.BR path_resolution (7),
|
|
|
|
.BR symlink (7)
|