Rev | Author | # | Line |
---|---|---|---|
1 | perry | 1 | CHOWN |
2 | !!!CHOWN | ||
3 | ---- | ||
4 | !!NAME | ||
5 | |||
2 | PerryLorier | 6 | chown - change ownership of a file |
1 | perry | 7 | !!SYNOPSIS |
2 | PerryLorier | 8 | __#include <sys/types.h>__ |
9 | __#include <unistd.h>__ | ||
1 | perry | 10 | |
2 | PerryLorier | 11 | __int chown(const char *__''path''__, uid_t__ ''owner''__, gid_t__ ''group''__);__ |
1 | perry | 12 | |
13 | !!DESCRIPTION | ||
14 | |||
2 | PerryLorier | 15 | The owner of the file specified by ''path''. Only the super-user may change the owner of a file. The owner of a file may change the group of the file to any group of which that owner is a member. The super-user may change the group arbitrarily. |
1 | perry | 16 | |
2 | PerryLorier | 17 | If the ''owner'' or ''group'' is specified as -1, then that ID is not changed. |
1 | perry | 18 | |
2 | PerryLorier | 19 | When the owner or group of an executable file are changed by a non-super-user, the S_ISUID and S_ISGID mode bits are cleared. POSIX does not specify whether this also should happen when root does the ''chown''; the Linux behaviour depends on the kernel version. In case of a non-group-executable file (with clear S_IXGRP bit) the S_ISGID bit indicates mandatory locking, and is not cleared by a ''chown''. |
1 | perry | 20 | |
21 | !!RETURN VALUE | ||
2 | PerryLorier | 22 | On success, zero is returned. On error, -1 is returned, and ''errno'' is set appropriately. |
1 | perry | 23 | !!ERRORS |
24 | |||
2 | PerryLorier | 25 | Depending on the file system, other errors can be returned. The more general errors for __chown__ are listed below: |
1 | perry | 26 | |
2 | PerryLorier | 27 | ;[EPERM]: The effective UID does not match the owner of the file, and is not zero; or the ''owner'' or ''group'' were specified incorrectly. |
28 | ;[EROFS]: The named file resides on a read-only file system. | ||
29 | ;[EFAULT]: ''path'' points outside your accessible address space. | ||
30 | ;[ENAMETOOLONG]: ''path'' is too long. | ||
31 | ;[ENOENT]: The file does not exist. | ||
32 | ;[ENOMEM]: Insufficient kernel memory was available. | ||
33 | ;[ENOTDIR]: A component of the path prefix is not a directory. | ||
34 | ;[EACCES]: Search permission is denied on a component of the path prefix. | ||
35 | ;[ELOOP]: Too many symbolic links were encountered in resolving ''path''. | ||
36 | ;[EIO]: A low-level I/O error occurred while modifying the inode. | ||
1 | perry | 37 | !!NOTES |
38 | |||
2 | PerryLorier | 39 | In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), __chown__ did not follow symbolic links. Since Linux 2.1.81, __chown__ does follow symbolic links, and there is a new system call lchown(2) that does not follow symbolic links. Since Linux 2.1.86, this new call (that has the same semantics as the old __chown__) has got the same syscall number, and __chown__ got the newly introduced number. |
1 | perry | 40 | |
41 | !!CONFORMING TO | ||
42 | |||
2 | PerryLorier | 43 | The __chown__ call conforms to SVr4, SVID, POSIX, X/OPEN. The 4.4BSD version can only be used by the superuser (that is, ordinary users cannot give away files). SVr4 documents [EINVAL], [EINTR], [ENOLINK] and [EMULTIHOP] returns, but no [ENOMEM]. POSIX.1 does not document [ENOMEM] or [ELOOP] error conditions. |
1 | perry | 44 | |
45 | !!RESTRICTIONS | ||
46 | |||
2 | PerryLorier | 47 | The __chown__() semantics are deliberately violated on NFS file systems which have UID mapping enabled. Additionally, the semantics of all system calls which access the file contents are violated, because __chown__() may cause immediate access revocation on already open files. Client side caching may lead to a delay between the time where ownership have been changed to allow access for a user and the time where the file can actually be accessed by the user on other clients. |
1 | perry | 48 | !!SEE ALSO |
49 | |||
2 | PerryLorier | 50 | chmod(2), flock(2), fchown(2), lchown(2) |
1 | perry | 51 | ---- |
lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 5 times)