鍍金池/ 教程/ Linux/ chown()函數 Unix/Linux
outb()函數 Unix/Linux
getpeername()函數 Unix/Linux
io_setup()函數 Unix/Linux
mknod()函數 Unix/Linux
arch_prctl()函數 Unix/Linux
inotify_add_watch()函數 Unix/Linux
chmod()函數 Unix/Linux
_exit()函數 Unix/Linux
epoll_ctl()函數 Unix/Linux
Unix/Linux系統(tǒng)調用
futimesat()函數 Unix/Linux
oldolduname()函數 Unix/Linux
sched_rr_get_interval()函數 Unix/Linux
oldstat()函數 Unix/Linux
pselect()函數 Unix/Linux
close()函數 Unix/Linux
add_key()函數 Unix/Linux
clone()函數 Unix/Linux
rename()函數 Unix/Linux
msgop()函數 Unix/Linux
getrlimit()函數 Unix/Linux
linkat()函數 Unix/Linux
ioprio_set()函數 Unix/Linux
insw()函數 Unix/Linux
munlock()函數 Unix/Linux
getgid()函數 Unix/Linux
chdir()函數 Unix/Linux
rmdir()函數 Unix/Linux
ioctl()函數 Unix/Linux
lchown()函數 Unix/Linux
execve()函數 Unix/Linux
epoll_wait()函數 Unix/Linux
fstatat()函數 Unix/Linux
truncate()函數 Unix/Linux
lock()函數 Unix/Linux
outsb()函數 Unix/Linux
chroot()函數 Unix/Linux
kexec_load()函數 Unix/Linux
afs_syscall()函數 Unix/Linux
dup2()函數 Unix/Linux
_newselect()函數 Unix/Linux
inotify_rm_watch()函數 Unix/Linux
recv()函數 Unix/Linux
msgsnd()函數 Unix/Linux
getdtablesize()函數 Unix/Linux
ioperm()函數 Unix/Linux
munmap()函數 Unix/Linux
getpriority()函數 Unix/Linux
sched_get_priority_min()函數 Unix/Linux
outw_p()函數 Unix/Linux
kill()函數 Unix/Linux
lookup_dcookie()函數 Unix/Linux
accept()函數 Unix/Linux
obsolete()函數 Unix/Linux
pread()函數 Unix/Linux
getgroups()函數 Unix/Linux
personality()函數 Unix/Linux
recvfrom()函數 Unix/Linux
putpmsg()函數 Unix/Linux
getgroups()函數 Unix/Linux
remap_file_pages()函數 Unix/Linux
request_key()函數 Unix/Linux
mount()函數 Unix/Linux
sched_setscheduler()函數 Unix/Linux
mkdirat()函數 Unix/Linux
nfsservctl()函數 Unix/Linux
getuid()函數 Unix/Linux
prof()函數 Unix/Linux
exit_group函數 Unix/Linux
io_cancel()函數 Unix/Linux
mmap()函數 Unix/Linux
mremap()函數 Unix/Linux
getitimer()函數 Unix/Linux
unimplemented()函數 Unix/Linux
read()函數 Unix/Linux
inl()函數 Unix/Linux
posix_fadvise()函數 Unix/Linux
open()函數 Unix/Linux
listen()函數 Unix/Linux
io_destroy()函數 Unix/Linux
acct()函數 Unix/Linux
fcntl()函數 Unix/Linux
recvmsg()函數 Unix/Linux
statfs()函數 Unix/Linux
oldlstat()函數 Unix/Linux
outb()函數 Unix/Linux
getpagesize()函數 Unix/Linux
sched_yield()函數 Unix/Linux
outw()函數 Unix/Linux
inw_p()函數 Unix/Linux
setpgid()函數 Unix/Linux
quotactl()函數 Unix/Linux
prctl()函數 Unix/Linux
fattach()函數 Unix/Linux
readahead()函數 Unix/Linux
msgget()函數 Unix/Linux
gethostname()函數 Unix/Linux
semctl()函數 Unix/Linux
munlockall()函數 Unix/Linux
iopl()函數 Unix/Linux
fdetach()函數 Unix/Linux
getuid()函數 Unix/Linux
gettid()函數 Unix/Linux
pwrite()函數 Unix/Linux
isastream()函數 Unix/Linux
get_thread_area()函數 Unix/Linux
mpx()函數 Unix/Linux
io_getevents()函數 Unix/Linux
lstat()函數 Unix/Linux
readv()函數 Unix/Linux
exit()函數 Unix/Linux
inw()函數 Unix/Linux
fchmod()函數 Unix/Linux
mq_getsetattr()函數 Unix/Linux
get_robust_list()函數 Unix/Linux
_llseek()函數 Unix/Linux
gettimeofday()函數 Unix/Linux
nice()函數 Unix/Linux
security()函數 Unix/Linux
sched_get_priority_max()函數 Unix/Linux
outb_p()函數 Unix/Linux
intro()函數 Unix/Linux
alarm()函數 Unix/Linux
putmsg()函數 Unix/Linux
fork()函數 Unix/Linux
getpgrp()函數 Unix/Linux
link()函數 Unix/Linux
getcwd()函數 Unix/Linux
insl()函數 Unix/Linux
getsockname()函數 Unix/Linux
dup()函數 Unix/Linux
connect()函數 Unix/Linux
select()函數 Unix/Linux
futex()函數 Unix/Linux
outsw()函數 Unix/Linux
query_module()函數 Unix/Linux
reboot()函數 Unix/Linux
create_module()函數 Unix/Linux
adjtimex()函數 Unix/Linux
mlock()函數 Unix/Linux
statvfs()函數 Unix/Linux
gtty()函數 Unix/Linux
epoll_create()函數 Unix/Linux
bind()函數 Unix/Linux
inl_p()函數 Unix/Linux
select_tut()函數 Unix/Linux
mincore()函數 Unix/Linux
getresuid()函數 Unix/Linux
getpmsg()函數 Unix/Linux
getcontext()函數 Unix/Linux
killpg()函數 Unix/Linux
olduname()函數 Unix/Linux
openat()函數 Unix/Linux
pause()函數 Unix/Linux
alloc_hugepages()函數 Unix/Linux
ioctl_list()函數 Unix/Linux
readlinkat()函數 Unix/Linux
mprotect()函數 Unix/Linux
getdomainname()函數 Unix/Linux
readlink()函數 Unix/Linux
madvise()函數 Unix/Linux
bdflush()函數 Unix/Linux
ipc()函數 Unix/Linux
ptrace()函數 Unix/Linux
getrusage()函數 Unix/Linux
msync()函數 Unix/Linux
faccessat()函數 Unix/Linux
modify_ldt()函數 Unix/Linux
get_kernel_syms()函數 Unix/Linux
getpid()函數 Unix/Linux
fsync()函數 Unix/Linux
msgctl()函數 Unix/Linux
break未實現(xiàn) Unix/Linux
sched_setparam()函數 Unix/Linux
fchown()函數 Unix/Linux
cacheflush()函數 Unix/Linux
fdatasync()函數 Unix/Linux
flock()函數 Unix/Linux
pivot_root()函數 Unix/Linux
inotify_init()函數 Unix/Linux
fchmodat()函數 Unix/Linux
keyctl()函數 Unix/Linux
llseek()函數 Unix/Linux
outb()函數 Unix/Linux
pipe()函數 Unix/Linux
io_submit()函數 Unix/Linux
ppoll()函數 Unix/Linux
multiplexer()函數 Unix/Linux
access()函數 Unix/Linux
sched_getparam()函數 Unix/Linux
chown()函數 Unix/Linux
readdir()函數 Unix/Linux
inb_p()函數 Unix/Linux
outsl()函數 Unix/Linux
nanosleep()函數 Unix/Linux
alloc_hugepages()函數 Unix/Linux
sbrk()函數 Unix/Linux
move_pages()函數 Unix/Linux
fchdir()函數 Unix/Linux
renameat()函數 Unix/Linux
getppid()函數 Unix/Linux
getsid()函數 Unix/Linux
oldfstat()函數 Unix/Linux
lseek()函數 Unix/Linux
stat()函數 Unix/Linux
path_resolution()函數 Unix/Linux
getunwind()函數 Unix/Linux
getsockopt()函數 Unix/Linux
mmap2()函數 Unix/Linux
getdents()函數 Unix/Linux
fchownat()函數 Unix/Linux
mkdir()函數 Unix/Linux
perfmonctl()函數 Unix/Linux
open()函數 Unix/Linux
idle()函數 Unix/Linux
poll()函數 Unix/Linux
brk()函數 Unix/Linux
sched_setaffinity()函數 Unix/Linux
mlockall()函數 Unix/Linux

chown()函數 Unix/Linux

chown, fchown, lchown - 改變文件的所有權

內容簡介

#include <sys/types.h>
#include <unistd.h> 

int chown(const char *path, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); int lchown(const char *path, uid_t owner, gid_t group);

描述

These system calls change the owner and group of the file specified by path or by fd. Only a privileged process (Linux: one with the CAP_CHOWN capability) 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. A privileged process (Linux: with CAP_CHOWN) may change the group arbitrarily.

If the owner or group is specified as -1, then that ID is not changed. When the owner or group of an executable file are changed by a non-superuser, 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().

返回值

成功,則返回0。上的錯誤,則返回-1,errno設置為合適。

錯誤

根據文件系統(tǒng)上的,其他錯誤,也可以返回 chown() 更一般的錯誤在下面列出。 

Error Code 描述
EACCES Search permission is denied on a component of the path prefix. (See also path_resolution(2).)
EFAULT path points outside your accessible address space.
ELOOP Too many symbolic links were encountered in resolving path.
ENAMETOOLONG path is too long.
ENOENT The file does not exist.
ENOMEM Insufficient kernel memory was available.
ENOTDIR A component of the path prefix is not a directory.
EPERM The calling process did not have the required permissions (see above) to change owner and/or group.
EROFS The named file resides on a read-only file system.
The general errors for fchown() are listed below:
EBADF The descriptor is not valid.
EIO A low-level I/O error occurred while modifying the inode.
ENOENT See above.
EPERM See above.
EROFS See above.

注意

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() 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.

The prototype for fchown() is only available if _BSD_SOURCE is defined.

遵循于

4.4BSD, SVr4, POSIX.1-2001. The 4.4BSD version can only be used by the superuser (that is, ordinary users cannot give away files).

限制

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.

另請參閱