 |
Index for Section 3 |
|
 |
Alphabetical listing for C |
|
 |
Bottom of page |
|
cd_idmap(3)
NAME
cd_idmap - Sets or gets mappings of User and Group IDs on a CD-ROM
LIBRARY
Rock Ridge and X/Open Extensions to the CDFS library (libcdrom.so,
libcdrom.a)
SYNOPSIS
#include <sys/cdrom.h>
int cd_idmap (
char *path,
int cmd,
struct cd_idmap *idmap,
int *nmaps );
PARAMETERS
*path
Points to the mount-point of a CD-ROM File System.
cmd
Can be set to either {CD_SETUMAP} or {CD_SETGMAP} to set; or to
{CD_GETUMAP} or {CD_GETGMAP} to get the mappings of UIDs or GIDs on the
CD-ROM File System pointed to by *path.
The variables {CD_SETUMAP}, {CD_SETGMAP}, {CD_GETUMAP}, and
{CD_GETGMAP} are defined in cdfs/xcdr.h, an include file that is called
into sys/cdrom.h.
*idmap
Points to the cd_idmap structure used in conjunction with the
{CD_SETUMAP}, {CD_SETGMAP}, {CD_GETUMAP}, and {CD_GETGMAP} arguments to
cmd, to hold the mappings to UIDs or GIDs. The cd_idmap structure is
defined in cdfs/xcdr.h, an include file that is called into
sys/cdrom.h.
*nmaps
Indicates the number of mappings declared in the cd_idmap structure
pointed to by *idmap.
If cmd is set to {CD_SETUMAP} or {CD_SETGMAP}, *nmaps overwrites any
previous values set by a prior call to cd_idmap. When *nmaps is zero,
none of the previously set mappings will stay in effect.
When calling, if cmd is set to {CD_GETUMAP} or {CD_GETGMAP}, *nmaps
must contain the maximum number of mappings that may be returned; when
returning, *nmaps contains the number of mappings.
DESCRIPTION
The cd_idmap routine sets or gets the mapping of UIDs or GIDs for a mounted
CD-ROM.
RESTRICTIONS
Setting values is restricted to users with the appropriate privileges.
Only files and directories with an unrestricted final Extended Attribute
Record (XAR) are subject to this mapping. The ISO 9660 standard does not
permit a UID or GID of zero to appear in an unrestricted XAR.
Consequently, mapping a zero value for a UID or GID may produce
unpredictable results. This function is intended to be used to set values
only directly after the CD-ROM is mounted and before its files and
directories are accessed. Attempting to use this function to set values
after files or directories on the CD-ROM have been accessed may produce
unpredictable results.
RETURN VALUES
If successful, the value zero is returned.
If unsuccessful, the integer -1 is returned and errno is set to indicate
the error.
ERRORS
The function will fail if:
[EACCES] Search permission is denied for a directory in *path or read
permission is denied on the mount-point.
[EFAULT] The address of *idmap or *path is invalid.
[EINTR] A signal was caught during execution of the function.
[EINVAL] The argument *path points to a file or directory that is not
within the CD-ROM file hierarchy.
The value of cmd or *nmaps is invalid.
A member of the *idmap is invalid; for example, from_id is larger
than 65535, or a value in to_uid or to_gid is not supported by
the system. Note that this error will not be returned when
from_id does not exist on the CD-ROM, when to_uid is not defined
in the User Database, or when to_gid is not in the Group
Database.
[EMFILE] {OPEN_MAX} file descriptors are currently open in the calling
process.
[Tru64 UNIX] Either the OPEN_MAX value or the per-process soft
descriptor limit is checked.
[ENAMETOOLONG]
The length of the *path string exceeds {PATH_MAX}, or a pathname
component is longer than {NAME_MAX} while {_POSIX_NO_TRUNC} is in
effect.
[ENFILE] The system file table is full.
[ENOENT] A component of *path does not exist, or the *path argument points
to an empty string.
[ENOTDIR] A component of the *path prefix is not a directory.
[EPERM] The user does not have the appropriate privileges to set values.
RELATED INFORMATION
Files: cdfs/xcdr.h, sys/cdrom.h.
 |
Index for Section 3 |
|
 |
Alphabetical listing for C |
|
 |
Top of page |
|