Provided by: manpages-ru_0.98-4_all bug

ИМЯ

       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