table of contents
DPNS_SETACL(3) | DPNS Library Functions | DPNS_SETACL(3) |
NAME¶
dpns_setacl - set DPNS directory/file access control lists
SYNOPSIS¶
#include <sys/types.h>
#include "dpns_api.h"
int dpns_setacl (const char *path, int nentries, struct dpns_acl *acl)
DESCRIPTION¶
dpns_setacl sets the Access Control List associated with a DPNS directory/file.
- path
- specifies the logical pathname relative to the current DPNS directory or the full DPNS pathname.
- nentries
- specifies the number of entries present in the buffer.
- acl
- is a pointer to an array of dpns_acl structures provided by the application.
struct dpns_acl {
unsigned char a_type;
int a_id;
unsigned char a_perm; };
- a_type
- is the ACL type: CNS_ACL_USER_OBJ, CNS_ACL_USER, CNS_ACL_GROUP_OBJ, CNS_ACL_GROUP, CNS_ACL_MASK or CNS_ACL_OTHER. Types for default entries are obtained by OR'ing the flag CNS_ACL_DEFAULT with one of the above types.
- a_id
- is the user or group numeric id.
- a_perm
- is the access permission in numeric form obtained by OR'ing some of the bits S_IROTH, S_IWOTH, S_IXOTH.
The effective user ID of the process must match the owner of the file or the caller must have ADMIN privilege in the Cupv database.
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 the caller does not have ADMIN privilege in the Cupv database.
- ENOENT
- The named file/directory does not exist or is a null pathname.
- EACCES
- Search permission is denied on a component of the path prefix.
- EFAULT
- path or acl is a NULL pointer.
- ENOTDIR
- A component of path prefix is not a directory.
- EINVAL
- nentries is not greater than zero or is greater than CA_MAXACLENTRIES or the ACL entries are not valid.
- ENOSPC
- The name server database is full.
- 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.
- ENSNACT
- Name server is not running or is being shutdown.
SEE ALSO¶
Castor_limits(4), dpns_chdir(3), dpns_chmod(3), dpns-setacl(1)
AUTHOR¶
LCG Grid Deployment Team
$Date: 2003/04/08 06:15:02 $ | DPNS |