*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> chown (2)              



NAME    [Toc]    [Back]

       chown, fchown, lchown - change ownership of a file

SYNOPSIS    [Toc]    [Back]

       #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);

DESCRIPTION    [Toc]    [Back]

       The  owner of the file specified by path or by fd is changed.  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.

       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 nonsuper-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  nongroup-executable
  file  (with  clear S_IXGRP bit) the S_ISGID bit indicates
 mandatory locking, and is not cleared by a chown.

RETURN VALUE    [Toc]    [Back]

       On success, zero is returned.  On error, -1 is returned, and  errno  is
       set appropriately.

ERRORS    [Toc]    [Back]

       Depending  on  the file system, other errors can be returned.  The more
       general errors for chown are listed below:

       EPERM  The effective UID does not match the owner of the file,  and  is
	      not zero; or the owner or group were specified incorrectly.

       EROFS  The named file resides on a read-only file system.

       EFAULT path points outside your accessible address space.

       ENAMETOOLONG    [Toc]    [Back]
	      path is too long.

       ENOENT The file does not exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR    [Toc]    [Back]
	      A component of the path prefix is not a directory.

       EACCES Search permission is denied on a component of the path prefix.

       ELOOP  Too many symbolic links were encountered in resolving path.

       The general errors for fchown are listed below:

       EBADF  The descriptor is not valid.

       ENOENT See above.

       EPERM  See above.

       EROFS  See above.

       EIO    A low-level I/O error occurred while modifying the inode.

NOTES    [Toc]    [Back]

       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
       (either	explicitly,  or  implicitly,  by not defining _POSIX_SOURCE or
       compiling with the -ansi flag).

CONFORMING TO    [Toc]    [Back]

       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.

       The fchown call conforms to 4.4BSD and SVr4.  SVr4 documents additional
       EINVAL, EIO, EINTR, and ENOLINK error conditions.

RESTRICTIONS    [Toc]    [Back]

       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.

SEE ALSO    [Toc]    [Back]

       chmod(2), flock(2)

Linux 2.1.81			  1997-05-18			      CHOWN(2)
[ Back ]
 Similar pages
Name OS Title
chgrp Linux change group ownership
permissions IRIX Change Permissions - Modify Permissions and Ownership of Files
quot_hfs HP-UX summarize ownership on an HFS file system
chgrp Tru64 Changes the group ownership of a file or directory
quot HP-UX summarize file system ownership
quot_vxfs HP-UX summarize ownership on a VxFS file system
quot IRIX summarize filesystem ownership
modifyPermissionsAndOwnership IRIX modify permissions and ownership of files
dpkg-statoverride Linux override ownership and mode of files
chattr Linux change file attributes on a Linux second extended file system
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service