rfio_chmod(3) change access mode of a directory/file

Other Alias

rfio_fchmod

SYNOPSIS

#include <sys/types.h>
#include "rfio_api.h"

int rfio_chmod (const char *path, mode_t mode);
int rfio_fchmod (int s, mode_t mode);

DESCRIPTION

rfio_chmod sets the access permission portion of the mode of a directory/file to the bit pattern in mode.

rfio_fchmod is identical to rfio_chmod but works on the file descriptor s returned by rfio_open.

path
specifies the logical pathname relative to the current directory or the full pathname.
mode
is constructed by OR'ing the bits defined in <sys/stat.h> under Unix or "statbits.h" under Windows/NT:

S_IRUSR        0000400          read by owner

S_IWUSR        0000200          write by owner

S_IXUSR        0000100          execute/search by owner

S_IRGRP        0000040          read by group

S_IWGRP        0000020          write by group

S_IXGRP        0000010          execute/search by group

S_IROTH        0000004          read by others

S_IWOTH        0000002          write by others

S_IXOTH        0000001          execute/search by others

The effective user ID of the process must match the owner of the file or be super-user. If a directory is writable and has the sticky bit set, files/directories within that directory can be removed or renamed only if:

the effective user ID of the requestor matches the owner ID of the file or

the effective user ID of the requestor matches the owner ID of the directory or

the file is writable by the requestor or

the requestor is super-user.

RETURN VALUE

This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.

ERRORS

EPERM
The effective user ID does not match the owner of the file and is not super-user.
ENOENT
The named file/directory does not exist or is a null pathname.
EBADF
s is not a valid file descriptor.
EACCES
Search permission is denied on a component of the path prefix or write permission on the file itself is denied.
EFAULT
path is a NULL pointer.
ENOTDIR
A component of path prefix is not a directory.
ENAMETOOLONG
The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN.
SENOSHOST
Host unknown.
SENOSSERV
Service unknown.
SECOMERR
Communication error.

AUTHOR

LCG Grid Deployment Team