summaryrefslogtreecommitdiffstats
path: root/man2/chmod.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/chmod.2')
-rw-r--r--man2/chmod.2347
1 files changed, 0 insertions, 347 deletions
diff --git a/man2/chmod.2 b/man2/chmod.2
deleted file mode 100644
index d7b9694..0000000
--- a/man2/chmod.2
+++ /dev/null
@@ -1,347 +0,0 @@
-.\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
-.\" and Copyright (C) 2006, 2014 Michael Kerrisk
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" Modified by Michael Haardt <michael@moria.de>
-.\" Modified 1993-07-21 by Rik Faith <faith@cs.unc.edu>
-.\" Modified 1997-01-12 by Michael Haardt
-.\" <michael@cantor.informatik.rwth-aachen.de>: NFS details
-.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
-.\"
-.TH chmod 2 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-chmod, fchmod, fchmodat \- change permissions of a file
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <sys/stat.h>
-.P
-.BI "int chmod(const char *" pathname ", mode_t " mode );
-.BI "int fchmod(int " fd ", mode_t " mode );
-.P
-.BR "#include <fcntl.h>" " /* Definition of AT_* constants */"
-.B #include <sys/stat.h>
-.P
-.BI "int fchmodat(int " dirfd ", const char *" pathname ", mode_t " \
-mode ", int " flags );
-.fi
-.P
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.P
-.nf
-.BR fchmod ():
- Since glibc 2.24:
- _POSIX_C_SOURCE >= 199309L
-.\" || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)
- glibc 2.19 to glibc 2.23
- _POSIX_C_SOURCE
- glibc 2.16 to glibc 2.19:
- _BSD_SOURCE || _POSIX_C_SOURCE
- glibc 2.12 to glibc 2.16:
- _BSD_SOURCE || _XOPEN_SOURCE >= 500
- || _POSIX_C_SOURCE >= 200809L
- glibc 2.11 and earlier:
- _BSD_SOURCE || _XOPEN_SOURCE >= 500
-.\" || (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)
-.fi
-.P
-.BR fchmodat ():
-.nf
- Since glibc 2.10:
- _POSIX_C_SOURCE >= 200809L
- Before glibc 2.10:
- _ATFILE_SOURCE
-.fi
-.SH DESCRIPTION
-The
-.BR chmod ()
-and
-.BR fchmod ()
-system calls change a file's mode bits.
-(The file mode consists of the file permission bits plus the set-user-ID,
-set-group-ID, and sticky bits.)
-These system calls differ only in how the file is specified:
-.IP \[bu] 3
-.BR chmod ()
-changes the mode of the file specified whose pathname is given in
-.IR pathname ,
-which is dereferenced if it is a symbolic link.
-.IP \[bu]
-.BR fchmod ()
-changes the mode of the file referred to by the open file descriptor
-.IR fd .
-.P
-The new file mode is specified in
-.IR mode ,
-which is a bit mask created by ORing together zero or
-more of the following:
-.TP 18
-.BR S_ISUID " (04000)"
-set-user-ID (set process effective user ID on
-.BR execve (2))
-.TP
-.BR S_ISGID " (02000)"
-set-group-ID (set process effective group ID on
-.BR execve (2);
-mandatory locking, as described in
-.BR fcntl (2);
-take a new file's group from parent directory, as described in
-.BR chown (2)
-and
-.BR mkdir (2))
-.TP
-.BR S_ISVTX " (01000)"
-sticky bit (restricted deletion flag, as described in
-.BR unlink (2))
-.TP
-.BR S_IRUSR " (00400)"
-read by owner
-.TP
-.BR S_IWUSR " (00200)"
-write by owner
-.TP
-.BR S_IXUSR " (00100)"
-execute/search by owner ("search" applies for directories,
-and means that entries within the directory can be accessed)
-.TP
-.BR S_IRGRP " (00040)"
-read by group
-.TP
-.BR S_IWGRP " (00020)"
-write by group
-.TP
-.BR S_IXGRP " (00010)"
-execute/search by group
-.TP
-.BR S_IROTH " (00004)"
-read by others
-.TP
-.BR S_IWOTH " (00002)"
-write by others
-.TP
-.BR S_IXOTH " (00001)"
-execute/search by others
-.P
-The effective UID of the calling process must match the owner of the file,
-or the process must be privileged (Linux: it must have the
-.B CAP_FOWNER
-capability).
-.P
-If the calling process is not privileged (Linux: does not have the
-.B CAP_FSETID
-capability), and the group of the file does not match
-the effective group ID of the process or one of its
-supplementary group IDs, the
-.B S_ISGID
-bit will be turned off,
-but this will not cause an error to be returned.
-.P
-As a security measure, depending on the filesystem,
-the set-user-ID and set-group-ID execution bits
-may be turned off if a file is written.
-(On Linux, this occurs if the writing process does not have the
-.B CAP_FSETID
-capability.)
-On some filesystems, only the superuser can set the sticky bit,
-which may have a special meaning.
-For the sticky bit, and for set-user-ID and set-group-ID bits on
-directories, see
-.BR inode (7).
-.P
-On NFS filesystems, restricting the permissions will immediately influence
-already open files, because the access control is done on the server, but
-open files are maintained by the client.
-Widening the permissions may be
-delayed for other clients if attribute caching is enabled on them.
-.\"
-.\"
-.SS fchmodat()
-The
-.BR fchmodat ()
-system call operates in exactly the same way as
-.BR chmod (),
-except for the differences described here.
-.P
-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
-.BR chmod ()
-for a relative pathname).
-.P
-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
-.BR chmod ()).
-.P
-If
-.I pathname
-is absolute, then
-.I dirfd
-is ignored.
-.P
-.I flags
-can either be 0, or include the following flag:
-.TP
-.B AT_SYMLINK_NOFOLLOW
-If
-.I pathname
-is a symbolic link, do not dereference it:
-instead operate on the link itself.
-This flag is not currently implemented.
-.P
-See
-.BR openat (2)
-for an explanation of the need for
-.BR fchmodat ().
-.SH RETURN VALUE
-On success, zero is returned.
-On error, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-Depending on the filesystem,
-errors other than those listed below can be returned.
-.P
-The more general errors for
-.BR chmod ()
-are listed below:
-.TP
-.B EACCES
-Search permission is denied on a component of the path prefix.
-(See also
-.BR path_resolution (7).)
-.TP
-.B EBADF
-.RB ( fchmod ())
-The file descriptor
-.I fd
-is not valid.
-.TP
-.B EBADF
-.RB ( fchmodat ())
-.I pathname
-is relative but
-.I dirfd
-is neither
-.B AT_FDCWD
-nor a valid file descriptor.
-.TP
-.B EFAULT
-.I pathname
-points outside your accessible address space.
-.TP
-.B EINVAL
-.RB ( fchmodat ())
-Invalid flag specified in
-.IR flags .
-.TP
-.B EIO
-An I/O error occurred.
-.TP
-.B ELOOP
-Too many symbolic links were encountered in resolving
-.IR pathname .
-.TP
-.B ENAMETOOLONG
-.I pathname
-is too long.
-.TP
-.B ENOENT
-The file does not exist.
-.TP
-.B ENOMEM
-Insufficient kernel memory was available.
-.TP
-.B ENOTDIR
-A component of the path prefix is not a directory.
-.TP
-.B ENOTDIR
-.RB ( fchmodat ())
-.I pathname
-is relative and
-.I dirfd
-is a file descriptor referring to a file other than a directory.
-.TP
-.B ENOTSUP
-.RB ( fchmodat ())
-.I flags
-specified
-.BR AT_SYMLINK_NOFOLLOW ,
-which is not supported.
-.TP
-.B EPERM
-The effective UID does not match the owner of the file,
-and the process is not privileged (Linux: it does not have the
-.B CAP_FOWNER
-capability).
-.TP
-.B EPERM
-The file is marked immutable or append-only.
-(See
-.BR ioctl_iflags (2).)
-.TP
-.B EROFS
-The named file resides on a read-only filesystem.
-.SH VERSIONS
-.SS C library/kernel differences
-The GNU C library
-.BR fchmodat ()
-wrapper function implements the POSIX-specified
-interface described in this page.
-This interface differs from the underlying Linux system call, which does
-.I not
-have a
-.I flags
-argument.
-.SS glibc notes
-On older kernels where
-.BR fchmodat ()
-is unavailable, the glibc wrapper function falls back to the use of
-.BR chmod ().
-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
-POSIX.1-2008.
-.SH HISTORY
-.TP
-.BR chmod ()
-.TQ
-.BR fchmod ()
-4.4BSD, SVr4, POSIX.1-2001.
-.TP
-.BR fchmodat ()
-POSIX.1-2008.
-Linux 2.6.16,
-glibc 2.4.
-.SH SEE ALSO
-.BR chmod (1),
-.BR chown (2),
-.BR execve (2),
-.BR open (2),
-.BR stat (2),
-.BR inode (7),
-.BR path_resolution (7),
-.BR symlink (7)