diff options
Diffstat (limited to 'lib/libc/sys/chmod.2')
-rw-r--r-- | lib/libc/sys/chmod.2 | 359 |
1 files changed, 0 insertions, 359 deletions
diff --git a/lib/libc/sys/chmod.2 b/lib/libc/sys/chmod.2 deleted file mode 100644 index 7bcf19d50a1d..000000000000 --- a/lib/libc/sys/chmod.2 +++ /dev/null @@ -1,359 +0,0 @@ -.\" Copyright (c) 1980, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)chmod.2 8.1 (Berkeley) 6/4/93 -.\" -.Dd March 30, 2021 -.Dt CHMOD 2 -.Os -.Sh NAME -.Nm chmod , -.Nm fchmod , -.Nm lchmod , -.Nm fchmodat -.Nd change mode of file -.Sh LIBRARY -.Lb libc -.Sh SYNOPSIS -.In sys/stat.h -.Ft int -.Fn chmod "const char *path" "mode_t mode" -.Ft int -.Fn fchmod "int fd" "mode_t mode" -.Ft int -.Fn lchmod "const char *path" "mode_t mode" -.Ft int -.Fn fchmodat "int fd" "const char *path" "mode_t mode" "int flag" -.Sh DESCRIPTION -The file permission bits of the file named specified by -.Fa path -or referenced by the file descriptor -.Fa fd -are changed to -.Fa mode . -The -.Fn chmod -system call verifies that the process owner (user) either owns -the file specified by -.Fa path -(or -.Fa fd ) , -or -is the super-user. -The -.Fn chmod -system call follows symbolic links to operate on the target of the link -rather than the link itself. -.Pp -The -.Fn lchmod -system call is similar to -.Fn chmod -but does not follow symbolic links. -.Pp -The -.Fn fchmodat -is equivalent to either -.Fn chmod -or -.Fn lchmod -depending on the -.Fa flag -except in the case where -.Fa path -specifies a relative path. -In this case the file to be changed is determined relative to the directory -associated with the file descriptor -.Fa fd -instead of the current working directory. -The values for the -.Fa flag -are constructed by a bitwise-inclusive OR of flags from the following list, defined -in -.In fcntl.h : -.Bl -tag -width indent -.It Dv AT_SYMLINK_NOFOLLOW -If -.Fa path -names a symbolic link, then the mode of the symbolic link is changed. -.It Dv AT_RESOLVE_BENEATH -Only walk paths below the directory specified by the -.Ar fd -descriptor. -See the description of the -.Dv O_RESOLVE_BENEATH -flag in the -.Xr open 2 -manual page. -.It Dv AT_EMPTY_PATH -If the -.Fa path -argument is an empty string, operate on the file or directory -referenced by the descriptor -.Fa fd . -If -.Fa fd -is equal to -.Dv AT_FDCWD , -operate on the current working directory. -.El -.Pp -If -.Fn fchmodat -is passed the special value -.Dv AT_FDCWD -in the -.Fa fd -parameter, the current working directory is used. -If also -.Fa flag -is zero, the behavior is identical to a call to -.Fn chmod . -.Pp -A mode is created from -.Em or'd -permission bit masks -defined in -.In sys/stat.h : -.Pp -.Bd -literal -offset indent -compact -#define S_IRWXU 0000700 /* RWX mask for owner */ -#define S_IRUSR 0000400 /* R for owner */ -#define S_IWUSR 0000200 /* W for owner */ -#define S_IXUSR 0000100 /* X for owner */ - -#define S_IRWXG 0000070 /* RWX mask for group */ -#define S_IRGRP 0000040 /* R for group */ -#define S_IWGRP 0000020 /* W for group */ -#define S_IXGRP 0000010 /* X for group */ - -#define S_IRWXO 0000007 /* RWX mask for other */ -#define S_IROTH 0000004 /* R for other */ -#define S_IWOTH 0000002 /* W for other */ -#define S_IXOTH 0000001 /* X for other */ - -#define S_ISUID 0004000 /* set user id on execution */ -#define S_ISGID 0002000 /* set group id on execution */ -#define S_ISVTX 0001000 /* sticky bit */ -.Ed -.Pp -The non-standard -.Dv S_ISTXT -is a synonym for -.Dv S_ISVTX . -.Pp -The -.Fx -VM system totally ignores the sticky bit -.Pq Dv S_ISVTX -for executables. -On UFS-based file systems (FFS, LFS) the sticky -bit may only be set upon directories. -.Pp -If mode -.Dv S_ISVTX -(the `sticky bit') is set on a directory, -an unprivileged user may not delete or rename -files of other users in that directory. -The sticky bit may be -set by any user on a directory which the user owns or has appropriate -permissions. -For more details of the properties of the sticky bit, see -.Xr sticky 7 . -.Pp -If mode ISUID (set UID) is set on a directory, -and the MNT_SUIDDIR option was used in the mount of the file system, -then the owner of any new files and sub-directories -created within this directory are set -to be the same as the owner of that directory. -If this function is enabled, new directories will inherit -the bit from their parents. -Execute bits are removed from -the file, and it will not be given to root. -This behavior does not change the -requirements for the user to be allowed to write the file, but only the eventual -owner after it has been created. -Group inheritance is not affected. -.Pp -This feature is designed for use on fileservers serving PC users via -ftp, SAMBA, or netatalk. -It provides security holes for shell users and as -such should not be used on shell machines, especially on home directories. -This option requires the SUIDDIR -option in the kernel to work. -Only UFS file systems support this option. -For more details of the suiddir mount option, see -.Xr mount 8 . -.Pp -Writing or changing the owner of a file -turns off the set-user-id and set-group-id bits -unless the user is the super-user. -This makes the system somewhat more secure -by protecting set-user-id (set-group-id) files -from remaining set-user-id (set-group-id) if they are modified, -at the expense of a degree of compatibility. -.Sh RETURN VALUES -.Rv -std -.Sh ERRORS -The -.Fn chmod -system call -will fail and the file mode will be unchanged if: -.Bl -tag -width Er -.It Bq Er ENOTDIR -A component of the path prefix is not a directory. -.It Bq Er ENAMETOOLONG -A component of a pathname exceeded 255 characters, -or an entire path name exceeded 1023 characters. -.It Bq Er ENOENT -The named file does not exist. -.It Bq Er EACCES -Search permission is denied for a component of the path prefix. -.It Bq Er ELOOP -Too many symbolic links were encountered in translating the pathname. -.It Bq Er EPERM -The effective user ID does not match the owner of the file and -the effective user ID is not the super-user. -.It Bq Er EPERM -The effective user ID is not the super-user, the effective user ID do match the -owner of the file, but the group ID of the file does not match the effective -group ID nor one of the supplementary group IDs. -.It Bq Er EPERM -The named file has its immutable or append-only flag set, see the -.Xr chflags 2 -manual page for more information. -.It Bq Er EROFS -The named file resides on a read-only file system. -.It Bq Er EFAULT -The -.Fa path -argument -points outside the process's allocated address space. -.It Bq Er EIO -An I/O error occurred while reading from or writing to the file system. -.It Bq Er EINTEGRITY -Corrupted data was detected while reading from the file system. -.It Bq Er EFTYPE -The effective user ID is not the super-user, the mode includes the sticky bit -.Dv ( S_ISVTX ) , -and path does not refer to a directory. -.El -.Pp -The -.Fn fchmod -system call will fail if: -.Bl -tag -width Er -.It Bq Er EBADF -The descriptor is not valid. -.It Bq Er EINVAL -The -.Fa fd -argument -refers to a socket, not to a file. -.It Bq Er EROFS -The file resides on a read-only file system. -.It Bq Er EIO -An I/O error occurred while reading from or writing to the file system. -.It Bq Er EINTEGRITY -Corrupted data was detected while reading from the file system. -.El -.Pp -In addition to the -.Fn chmod -errors, -.Fn fchmodat -fails if: -.Bl -tag -width Er -.It Bq Er EBADF -The -.Fa path -argument does not specify an absolute path and the -.Fa fd -argument is neither -.Fa AT_FDCWD -nor a valid file descriptor open for searching. -.It Bq Er EINVAL -The value of the -.Fa flag -argument is not valid. -.It Bq Er ENOTDIR -The -.Fa path -argument is not an absolute path and -.Fa fd -is neither -.Dv AT_FDCWD -nor a file descriptor associated with a directory. -.It Bq Er ENOTCAPABLE -.Fa path -is an absolute path, -or contained a ".." component leading to a -directory outside of the directory hierarchy specified by -.Fa fd , -and the process is in capability mode or the -.Dv AT_RESOLVE_BENEATH -flag was specified. -.El -.Sh SEE ALSO -.Xr chmod 1 , -.Xr chflags 2 , -.Xr chown 2 , -.Xr open 2 , -.Xr stat 2 , -.Xr sticky 7 -.Sh STANDARDS -The -.Fn chmod -system call is expected to conform to -.St -p1003.1-90 , -except for the return of -.Er EFTYPE . -The -.Dv S_ISVTX -bit on directories is expected to conform to -.St -susv3 . -The -.Fn fchmodat -system call is expected to conform to -.St -p1003.1-2008 . -.Sh HISTORY -The -.Fn chmod -function appeared in -.At v1 . -The -.Fn fchmod -system call appeared in -.Bx 4.2 . -The -.Fn lchmod -system call appeared in -.Fx 3.0 . -The -.Fn fchmodat -system call appeared in -.Fx 8.0 . |