126 lines
3.8 KiB
HTML
126 lines
3.8 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>chmod(2)</TITLE>
|
|
</HEAD>
|
|
<BODY>
|
|
<H1>chmod(2)</H1>
|
|
<HR>
|
|
<PRE>
|
|
|
|
</PRE>
|
|
<H2>NAME</H2><PRE>
|
|
chmod - change mode of file
|
|
|
|
|
|
</PRE>
|
|
<H2>SYNOPSIS</H2><PRE>
|
|
<STRONG>#include</STRONG> <STRONG><sys/types.h></STRONG>
|
|
<STRONG>#include</STRONG> <STRONG><sys/stat.h></STRONG>
|
|
|
|
<STRONG>int</STRONG> <STRONG>chmod(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>path</EM><STRONG>,</STRONG> <STRONG>mode_t</STRONG> <EM>mode</EM><STRONG>)</STRONG>
|
|
|
|
|
|
</PRE>
|
|
<H2>DESCRIPTION</H2><PRE>
|
|
The file whose name is given by <EM>path</EM> has its mode changed to <EM>mode</EM>. Modes
|
|
are constructed by <EM>or</EM>'ing together some combination of the following,
|
|
defined in <<EM>sys</EM>/<EM>stat</EM>.<EM>h</EM>>:
|
|
|
|
S_ISUID 04000 set user ID on execution
|
|
S_ISGID 02000 set group ID on execution
|
|
S_ISVTX 01000 `sticky bit' (see below)
|
|
S_IRWXU 00700 read, write, execute by owner
|
|
S_IRUSR 00400 read by owner
|
|
S_IWUSR 00200 write by owner
|
|
S_IXUSR 00100 execute (search on directory) by owner
|
|
S_IRWXG 00070 read, write, execute by group
|
|
S_IRGRP 00040 read by group
|
|
S_IWGRP 00020 write by group
|
|
S_IXGRP 00010 execute (search on directory) by group
|
|
S_IRWXO 00007 read, write, execute by others
|
|
S_IROTH 00004 read by others
|
|
S_IWOTH 00002 write by others
|
|
S_IXOTH 00001 execute (search on directory) by others
|
|
|
|
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.
|
|
(Minix-vmd)
|
|
|
|
Only the owner of a file (or the super-user) may change the mode.
|
|
|
|
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.
|
|
|
|
|
|
</PRE>
|
|
<H2>RETURN VALUE</H2><PRE>
|
|
Upon successful completion, a value of 0 is returned. Otherwise, a value
|
|
of -1 is returned and <STRONG>errno</STRONG> is set to indicate the error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</PRE>
|
|
<H2>ERRORS</H2><PRE>
|
|
<STRONG>Chmod</STRONG> will fail and the file mode will be unchanged if:
|
|
|
|
[ENOTDIR] A component of the path prefix is not a directory.
|
|
|
|
[ENAMETOOLONG] The path name exceeds PATH_MAX characters.
|
|
|
|
[ENOENT] The named file does not exist.
|
|
|
|
[EACCES] Search permission is denied for a component of the path
|
|
prefix.
|
|
|
|
[ELOOP] Too many symbolic links were encountered in translating
|
|
the pathname. (Minix-vmd)
|
|
|
|
[EPERM] The effective user ID does not match the owner of the file
|
|
and the effective user ID is not the super-user.
|
|
|
|
[EROFS] The named file resides on a read-only file system.
|
|
|
|
[EFAULT] <EM>Path</EM> points outside the process's allocated address space.
|
|
|
|
[EIO] An I/O error occurred while reading from or writing to the
|
|
file system.
|
|
|
|
|
|
</PRE>
|
|
<H2>SEE ALSO</H2><PRE>
|
|
<STRONG><A HREF="../man1/chmod.1.html">chmod(1)</A></STRONG>, <STRONG><A HREF="../man2/open.2.html">open(2)</A></STRONG>, <STRONG><A HREF="../man2/chown.2.html">chown(2)</A></STRONG>, <STRONG><A HREF="../man2/stat.2.html">stat(2)</A></STRONG>.
|
|
|
|
|
|
</PRE>
|
|
<H2>NOTES</H2><PRE>
|
|
The sticky bit was historically used to lock important executables into
|
|
memory.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</PRE>
|
|
</BODY>
|
|
</HTML>
|