fchown

CHOWN(2)        Ð ÑководÑÑво пÑогÑаммиÑÑа Linux        CHOWN(2)



ÐÐЯ
       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);

ÐÐÐСÐÐÐÐ
       ÐзменÑÐµÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа Ð´Ð»Ñ Ñайла, задаваемого
       паÑамеÑÑами path или fd.  ТолÑко
       ÑÑпеÑполÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа
       Ñайла.  ÐÐ»Ð°Ð´ÐµÐ»ÐµÑ Ñайла Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð³ÑÑппÑ
       Ñайла на лÑбÑÑ Ð³ÑÑппÑ, к коÑоÑой он
       пÑинадлежиÑ. СÑпеÑполÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ
       пÑоизволÑно изменÑÑÑ Ð³ÑÑппÑ.

       ÐÑли паÑамеÑÑ owner или group Ð·Ð°Ð´Ð°Ð½Ñ ÐºÐ°Ðº -1, Ñо
       ÑооÑвеÑÑÑвÑÑÑий иденÑиÑикаÑÐ¾Ñ Ð½Ðµ изменÑеÑÑÑ.

       Ðогда Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸Ð»Ð¸ гÑÑппа иÑполнÑемого
       Ñайла изменÑÑÑÑÑ Ð½Ðµ-ÑÑпеÑполÑзоваÑелем, Ñо
       оÑиÑаÑÑÑÑ Ð±Ð¸ÑÑ S_ISUID и S_ISGID.  POSIX не ÑÑебÑеÑ, ÑÑобÑ
       ÑÑо пÑоиÑÑодило, когда ÑÑпеÑполÑзоваÑелÑ
       вÑполнÑÐµÑ chown; в ÑÑом ÑлÑÑае поведение
       завиÑÐ¸Ñ Ð¾Ñ Ð²ÐµÑÑии ÑдÑа Linux.  ÐÑли в пÑаваÑ
       доÑÑÑпа к ÑÐ°Ð¹Ð»Ñ Ð½Ðµ ÑÑÑановлен Ð±Ð¸Ñ Ð¸ÑполнениÑ
       гÑÑппой (S_IXGRP), Ñо Ð±Ð¸Ñ S_ISGID ознаÑаеÑ
       пÑинÑдиÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð½Ð° ÑÑом Ñайле и не
       оÑиÑаеÑÑÑ ÑÑнкÑией chown.


ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       Ð ÑлÑÑае ÑÑпеÑа возвÑаÑаеÑÑÑ Ð½Ð¾Ð»Ñ.  ÐÑи оÑибке
       возвÑаÑаеÑÑÑ -1, а errno ÑÑÑанавливаеÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñм
       обÑазом.


ÐШÐÐÐÐ
       РзавиÑимоÑÑи Ð¾Ñ Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð³ÑÑ Ñакже
       возвÑаÑаÑÑÑÑ Ð´ÑÑгие оÑибки.  ÐбÑий набоÑ
       оÑибок chown пеÑеÑиÑлен ниже:


       EPERM   ФакÑиÑеÑкий UID не ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ
               владелÑÑем Ñайла и не Ñавен нÑлÑ;
               паÑамеÑÑÑ owner или group Ð·Ð°Ð´Ð°Ð½Ñ Ð½ÐµÐ²ÐµÑно.

       EROFS   Файл наÑодиÑÑÑ Ð½Ð° Ñайловой ÑиÑÑеме,
               ÑмонÑиÑованной ÑолÑко Ð´Ð»Ñ ÑÑениÑ.

       EFAULT  path ÑказÑÐ²Ð°ÐµÑ Ð·Ð° пÑÐµÐ´ÐµÐ»Ñ Ð´Ð¾ÑÑÑпного
               адÑеÑного пÑоÑÑÑанÑÑва.

       ENAMETOOLONG
               path ÑлиÑком длинно.

       ENOENT  Файл не ÑÑÑеÑÑвÑеÑ.

       ENOMEM  ЯдÑÑ Ð½Ðµ ÑваÑило памÑÑи.

       ENOTDIR ÐÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ð¿ÑÑи, иÑполÑзованнÑй как
               каÑалог в path, в дейÑÑвиÑелÑноÑÑи
               ÑаковÑм не ÑвлÑеÑÑÑ.

       EACCES  ÐапÑеÑен поиÑк в одном из каÑалогов,
               наÑодÑÑиÑÑÑ Ð½Ð° пÑÑи к ÑайлÑ.

       ELOOP   ÐÑи обÑабоÑке path вÑÑÑеÑено ÑлиÑком
               много ÑимволÑнÑÑ ÑÑÑлок (возможно
               заÑикливание по ÑимволÑнÑм ÑÑÑлкам --
               пÑим. пеÑ.).

       ÐбÑие оÑибки fchown ÑаковÑ:

       EBADF   ÐевеÑнÑй ÑайловÑй деÑкÑипÑоÑ.

       ENOENT  См. вÑÑе.

       EPERM   См. вÑÑе.

       EROFS   См. вÑÑе.

       EIO     ÐÑи модиÑикаÑии inode пÑоизоÑла
               низкоÑÑÐ¾Ð²Ð½ÐµÐ²Ð°Ñ Ð¾Ñибка ввода-вÑвода.

ÐÐÐÐЧÐÐÐЯ
       РвеÑÑиÑÑ Linux до 2.1.81 (кÑоме 2.1.46), chown не
       Ñледовал по ÑимволÑнÑм ÑÑÑлкам.  ÐаÑÐ¸Ð½Ð°Ñ Ñ
       веÑÑии Linux 2.1.81 chown ÑледÑÐµÑ Ð¿Ð¾ ÑимволÑнÑм
       ÑÑÑлкам, и ÑÑÑеÑÑвÑÐµÑ Ð½Ð¾Ð²Ñй ÑиÑÑемнÑй вÑзов
       lchown, коÑоÑÑй не ÑледÑÐµÑ Ð¿Ð¾ ÑимволÑнÑм
       ÑÑÑлкам.  ÐаÑÐ¸Ð½Ð°Ñ Ñ Linux 2.1.86 ÑÑÐ¾Ñ Ð½Ð¾Ð²Ñй вÑзов
       (имеÑÑий ÑÑ Ð¶Ðµ ÑмÑÑл, ÑÑо и ÑÑаÑÑй chown), Ð¸Ð¼ÐµÐµÑ ÑоÑ
       же ÑамÑй Ð½Ð¾Ð¼ÐµÑ ÑиÑÑемного вÑзова, а chown
       полÑÑил новÑй номеÑ.

       ÐÑоÑоÑип fchown доÑÑÑпен ÑолÑко еÑли опÑеделен
       Ñимвол _BSD_SOURCE (или Ñвно или неÑвно, но
       задан Ñимвол _POSIX_SOURCE или компилÑÑиÑ
       оÑÑÑеÑÑвлÑеÑÑÑ Ñ Ñлагом -ansi).

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       СиÑÑемнÑй вÑзов chown ÑооÑвеÑÑÑвÑÐµÑ SVr4, SVID, POSIX,
       X/OPEN.  РвеÑÑии 4.4BSD его Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ
       ÑолÑко ÑÑпеÑполÑзоваÑÐµÐ»Ñ (Ñо еÑÑÑ Ð¾Ð±ÑÑнÑе
       полÑзоваÑели не могÑÑ Ð¾ÑдаваÑÑ ÑайлÑ).  SVr4
       докÑменÑиÑÑÐµÑ EINVAL, EINTR, ENOLINK и EMULTIHOP, но не
       докÑменÑиÑÑÐµÑ ENOMEM.  POSIX.1 не докÑменÑиÑÑеÑ
       ENOMEM и ELOOP.

       СиÑÑемнÑй вÑзов fchown ÑооÑвеÑÑÑвÑÐµÑ 4.4BSD и SVr4.
       SVr4 докÑменÑиÑÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе кодÑ
       оÑибки EINVAL, EIO, EINTR и ENOLINK.

ÐÐÐ ÐÐÐЧÐÐÐЯ
       Ðогика ÑабоÑÑ chown ÑпеÑиалÑно наÑÑÑаеÑÑÑ Ð½Ð°
       ÑайловÑÑ ÑиÑÑÐµÐ¼Ð°Ñ NFS Ñ ÑазÑеÑеннÑм
       пÑеобÑазованием UID.  Ðдобавок логика
       ÑабоÑÑ Ð½Ð°ÑÑÑаеÑÑÑ Ñ Ð²ÑÐµÑ ÑиÑÑемнÑÑ Ð²Ñзовов,
       коÑоÑÑе обÑаÑаÑÑÑÑ Ðº ÑодеÑÐ¶Ð¸Ð¼Ð¾Ð¼Ñ Ñайла, поÑомÑ
       ÑÑо chown Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к немедленномÑ
       запÑеÑÑ Ð´Ð¾ÑÑÑпа к Ñже оÑкÑÑÑÑм Ñайлам.
       ÐÑÑиÑование на клиенÑе Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к
       задеÑжке Ð¼ÐµÐ¶Ð´Ñ Ñменой владелÑÑа и иÑÑиннÑм
       моменÑом, когда ÑÑÐ¾Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÑможеÑ
       обÑаÑиÑÑÑÑ Ðº ÑÐ°Ð¹Ð»Ñ Ñ Ð´ÑÑÐ³Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñов.

СÐÐТРРТÐÐÐÐ
       chmod(2), flock(2)

ÐÐÐ ÐÐÐÐ
       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999-2000, ÐикÑоÑ
       ÐиÑлобоков <corochoone@perm.ru> 2003



Linux 2.1.81                      1997-05-18                          CHOWN(2)