Изменить идентификатор пользователя и идентификатор группы для файла или символьной ссылки
#include <sys/types.h>#include <unistd.h>int lchown( const char *path,uid_t owner,gid_t group );
libc
Функция lchown() изменяет идентификатор пользователя и идентификатор группы файла, указанного в path, на числовые значения, содержащиеся в owner и group соответственно. Эта функция похожа на chown(), за исключением случая, когда указанный файл является символической ссылкой. В этом случае lchown() изменяет владельца файла символической ссылки, а chown() изменяет владельца файла или директории, на которую ссылается символическая ссылка.
Только процессы с эффективным идентификатором пользователя, равным идентификатору пользователя файла или с соответствующими привилегиями (например, суперпользователь), могут изменять владельца файла.
В ЗОСРВ «Нейтрино» установлен флаг _POSIX_CHOWN_RESTRICTED
. Это означает, что только суперпользователь может изменить владельца файла. Группа файла может быть изменена суперпользователем или процессом с эффективным идентификатором пользователя, равным идентификатору пользователя файла, если (и только если) owner равен идентификатору пользователя файла и group равна эффективному идентификатору группы вызывающего процесса.
Если аргумент пути path относится к обычному файлу, биты set-user-ID (S_ISUID
) и set-group-ID (S_ISGID
) файлового режима сбрасываются, если функция выполняется успешно.
Если lchown() завершается успешно, поле st_ctime файла помечается для обновления.
PATH_MAX
, или компонент пути к файлу длиннее, чем NAME_MAX
. /** Change the ownership of a list of files* to the current user/group*/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main( int argc, char **argv ){int i;int ecode = 0;for ( i = 1; i < argc; i++ ){if ( lchown( argv[i], getuid(), getgid() ) == -1 ){perror( argv[i] );ecode++;}}return (ecode);}
POSIX 1003.1 X/Open Systems Interfaces Extension
chmod(), chown(), errno, fchown(), fstat(), open(), stat()
Предыдущий раздел: Описание API системной библиотеки