NAME

VMS::Persona - Create, assume, or drop Personas

SYNOPSIS

use VMS::Persona;
$Persona = new_persona(NAME => $UserName
                       [, ASSUME_DEFPRIV => bool]
                       [, ASSUME_DEFCLASS => bool]);
$IsOK = assume_persona(PERSONA => $Persona
                         [, ASSUME_SECURITY => bool]
                         [, ASSUME_ACCOUNT => bool]
                         [, ASSUME_JOB_WIDE => bool]);
$IsOK = drop_persona();
$IsOK = delete_persona($Persona);

DESCRIPTION

Create, assume, drop, or delete personas.

new_persona()

This function creates a new persona context and returns a handle to it. If ASSUME_DEFPRIV is set to true, then the persona is created with default privileges. If ASSUME_DEFCLASS is set to true, then the persona is created with default classification.

assume_persona()

Assume a persona previously created with new_persona. The ASSUME_SECURITY, ASSUME_ACCOUNT, and ASSUME_JOB_WIDE parameters will, if set to true, set the corresponding flags in the $PERSONA_ASSUME call.

drop_persona()

Drop the current persona. (This is a convenience interface to the $PERSONA_ASSUME system service with a persona handle of 1, which discards the current persona)

delete_persona()

Delete a previously created persona.

SECURITY

Standard VMS system security is enforced, which means the process needs DETACH (IMPERSONATE in VMS 7.1 and up) privilege and read access to the SYSUAF.

LIMITATIONS

The persona services first came into VMS in version 6.2, so this module just won't work on earlier versions of VMS.

The docs for the persona services in the VMS 6.2 and 7.1 docs are a touch... skimpy. There's no better interpretation here, since I don't have one.

ERRORS

The persona services can croak() with some errors. This is a list of them.

Odd number of items passed

This error is thrown if new_persona() is called with an odd number of parameters.

Invalid parameter passed

Thrown if a bogus name (on the left side of a =>) parameter is passed.

If a VMS error has occured, the functions will return undef, and fill in $^E with the error code.

AUTHOR

Dan Sugalski <sugalskd@osshe.edu>

SEE ALSO

perl(1), OpenVMS System Services Reference Manual