Voltar à lista
Linux x86_64Usuários & permissões#260

fchownat

Altera dono e/ou grupo de um arquivo relativo a um descritor de diretório.

Descrição

Parte da família *at(): permite operar de forma segura em caminhos relativos a um diretório específico (evitando TOCTOU) e, com AT_SYMLINK_NOFOLLOW, não seguir links simbólicos.

man 2Desde o kernel 2.6.16

Assinatura

int fchownat(
    int dirfd,
    const char * pathname,
    uid_t owner,
    gid_t group,
    int flags
);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD para usar o diretório de trabalho atual.
pathnameconst char *Caminho, absoluto ou relativo a `dirfd`.
owneruid_tNovo UID dono, ou -1 para não alterar.
groupgid_tNovo GID grupo, ou -1 para não alterar.
flagsintAT_SYMLINK_NOFOLLOW e/ou AT_EMPTY_PATH.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1dirfdint
rsiargumento 2pathnameconst char *
rdxargumento 3owneruid_t
r10argumento 4groupgid_t
r8argumento 5flagsint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EBADF(9)
Descritor de arquivo inválido.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOTDIR(20)
Não é um diretório.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas