NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | STANDARDS
#include <sys/stat.h>int chmod(const char * path, mode_t mode);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
MSDOSFS, NFS_CLIENT, UFS
The chmod() function sets the file permission bits of the file specified by the pathname path to mode . fchmod() sets the permission bits of the specified file descriptor fd . chmod() verifies that the process owner (user) either owns the file specified by path (or fd ) , or is the super-user. A mode is created from or 'd permission bit masks defined in <sys/stat.h> :
#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 /* save swapped text even after use */ |
If mode
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 for which it has the appropriate
permissions.
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.
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
chmod() will fail and the file mode will be unchanged if:
Search permission is denied for a component of the path prefix.
Path points outside the process's allocated address space.
An I/O error occurred while reading from or writing to the file system.
Too many symbolic links were encountered in translating the pathname.
A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.
The named file does not exist.
A component of the path prefix is not a directory.
The effective user ID does not match the owner of the file and the effective user ID is not the super-user.
The named file resides on a read-only file system.
fchmod() will fail if:
The descriptor is not valid.
Fd refers to a socket, not to a file.
An I/O error occurred while reading from or writing to the file system.
The file resides on a read-only file system.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
MT-Level | Mt-safe |
chmod is expected to conform to IEEE Std 1003.1-1988 POSIX .
NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | STANDARDS