Document revision date: 19 July 1999
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

OpenVMS System Manager's Manual


Previous Contents Index

13.6.1 Controlling Access to Queues

Queues are permanent security objects. They are stored in the system queue database together with their security profiles.

As with a file or directory, you can use UIC-based or ACL-based protection to control access to a queue.

Refer to the OpenVMS Guide to System Security for detailed information about establishing system security.

13.6.1.1 Understanding UIC-Based Queue Protection

UIC-based protection restricts the jobs and the users who have access to a queue. Operations that apply to queues are controlled by UIC-based protection in the same way that access to other protected objects (such as files) is controlled.

When you create a queue, the queue is assigned an owner UIC and a protection code. The default owner is [SYSTEM], but you can specify another owner with the /OWNER_UIC qualifier.

The queue class provides the following default UIC-based security profile:


    System:Manager,Owner:Delete,Group:Read,World:Submit 

Jobs are assigned an owner UIC equal to the UIC of the process that submitted the job, unless the job was submitted with the /USER qualifier. Each job in a queue (and each operation that is performed on a queue) is checked against the UIC of the owner, the protection of the queue, and the privileges of the requester.

All operations are checked as follows:
Operations that apply to... Are checked against...
Jobs The read and delete protection specified for the queue and the owner UIC of the job.
Queues The submit and manage protection specified for the queue and the owner UIC of the queue.

The following table lists the types of access that the queue class supports:
Access Type Gives you the right to...
Read See the security elements of a queue or a job in a queue.
Submit Place jobs in the queue.
Delete Delete a job in the queue or modify the elements of a job.
Manage Affect any job in the queue. You can start, stop, or delete a queue and change its status and any elements that are unrelated to security.
Control Modify the protection elements and owner of a queue.

Note that when a process receives read or delete access through a protection code, it can operate on only its job in the queue. However, when granted through an ACL, read and delete access allow a process to operate on all jobs in the queue.

Privileges Required

You need SYSNAM and OPER privilege to stop or start the queue manager. OPER is necessary to create and delete queues, or to change the symbiont definition.

Kinds of Auditing Performed

The following events can be audited, provided the security administrator enables auditing for the event class:
Event Audited Audit Occurs When...
Access A job is submitted to the queue and when either a job or queue is modified.
Creation A queue is initialized.
Deletion A process deletes a job from the queue or when the queue itself is deleted. (To enable auditing for queue deletions, enable auditing for manage [M] access to the queue.)

For more information about queue security, refer to the OpenVMS Guide to System Security.

13.6.1.2 Setting and Showing UIC-Based Queue Protection

Use the following commands to set and show UIC-based protection on queues:
Command Description
INITIALIZE/QUEUE/PROTECTION=( ownership[:access],...)
START/QUEUE/PROTECTION=( ownership[:access],...)
SET QUEUE/PROTECTION=( ownership[:access],...)
Specifies the protection of a queue:
  • Specify the ownership parameter as system (S), owner (O), group (G), or world (W).
  • Specify the access parameter as read (R), submit (S), manage (M), or delete (D).
INITIALIZE/QUEUE/OWNER_UIC= uic
START/QUEUE/OWNER_UIC= uic
SET QUEUE/OWNER_UIC= uic
Enables you to change the UIC of a queue. The default UIC is [1,4].
SHOW QUEUE/FULL Displays complete information about a queue, including the protection currently set for the queue.
SET SECURITY/CLASS=QUEUE/OWNER= uic Modifies the owner element of a queue. Specify the UIC in the standard format.
SET SECURITY/CLASS=QUEUE/
PROTECTION= ownership[:access]
Modifies the protection code of a queue. The protection code defines the type of access allowed to users, based on their relationship to the object's owner.
SHOW SECURITY/CLASS=QUEUE Shows protection currently set for objects of the queue class.

Examples

  1. The following example sets protection on a queue, and then displays full information about the queue:


    $ INITIALIZE/QUEUE/GENERIC=(SYS_QUE1,SYS_QUE2)/ 
    PROTECTION=(S:M,O:D,G:R,W:R) -
    _$ /OWNER_UIC=[1,8]/RETAIN=ERROR SYS_PRINT 
    $ SHOW QUEUE/FULL SYS_PRINT
    Generic printer queue SYS_PRINT/GENERIC=(SYS_QUE1,SYS_QUE2) -
    _$ /OWNER=[1,8]/PROTECTION=(S:M,O:D,G:R,W:R)/RETAIN=ERROR
    

  2. The following example gives the owner manage and delete access to this queue and makes user AGBELL the owner. With manage access, the owner AGBELL can manage the queue, but cannot modify security information.


    $ SET SECURITY/CLASS=QUEUE/OWNER=[AGBELL]/PROTECTION=O:MD  -
    _$ TELEPHONE_QUE
    $ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE  
    TELEPHONE_QUEUE object of class QUEUE 
         Owner: [INVENTORS,AGBELL] 
         Protection: (System: M, Owner: MD, Group: R, World: S) 
         Access Control List: <empty>
    

13.6.1.3 Understanding ACL-Based Queue Protection

In addition to UIC-based protection, you can associate access control lists (ACLs) with a queue. ACL-based protection provides a more refined level of protection when certain members of a project group require access to a queue, excluding others of the same UIC group or of other groups.

Refer to the OpenVMS Guide to System Security for detailed information about establishing ACLs for protected objects.

13.6.1.4 Setting and Showing ACL-Based Queue Protection

Use the following commands to set and show ACL-based protection on queues:
Command Description
SET SECURITY/ACL=(IDENTIFIER=( identifier, -
_ACCESS= access-type)[,...])CLASS=QUEUE
Sets ACL protection on a queue.
SHOW QUEUE/FULL Shows any ACLs set on a queue.
SHOW SECURITY/CLASS=QUEUE Shows any ACLs set on a queue.

For more information about ACL-based security, refer to the OpenVMS Guide to System Security.

Examples

  1. The SET QUEUE/PROTECTION command in the following example modifies the default protection of queue SYS_QUE1 to prevent access by nonprivileged users. The SET SECURITY/ACL command then restricts access to only those members of a project group who hold the ULTRA_LITE or MINUTES identifiers. Members with the MINUTES identifier have only read and submit access to the queue. The SHOW QUEUE/FULL command displays information, including security information, about the queue.


    $ SET QUEUE/PROTECTION=(S,O,G,W) 
    $ SET SECURITY/CLASS=QUEUE SYS_QUE1 -
    _$/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
    _$ (IDENTIFIER=MINUTES, ACCESS=READ+SUBMIT)) 
    $ SHOW QUEUE/FULL SYS_QUE1
    Batch queue SYS_QUE1, stopped       
        /BASE_PRIORITY=4 /JOB_LIMIT=1 /OWNER=[1,4] /PROTECTION=(S,O,G,W) 
              (IDENTIFIER=ULTRA_LITE,ACCESS=READ+SUBMIT+MANAGE+DELETE) 
              (IDENTIFIER=MINUTES,ACCESS=READ+SUBMIT) 
    

  2. The following example shows how to use ACLs to restrict queue access to members of a particular project group:


    $ SET QUEUE/PROTECTION=(S,O,G,W) 
    $ SET SECURITY/CLASS=QUEUE SYS_QUE1 -
    _$/ACL=((IDENTIFIER=ULTRA_LITE, ACCESS=READ+SUBMIT+MANAGE+DELETE), -
    _$ (IDENTIFIER=MINUTES, ACCESS=READ)) 
    

  3. The following example shows a queue that has only UIC-based protection, and then gives user AGBELL control access with an ACL. Control access allows user AGBELL to modify security information.


    $ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
    TELEPHONE_QUEUE object of class QUEUE 
         Owner: [INVENTORS,AGBELL] 
         Protection: (System: M, Owner: MD, Group: R, World: S) 
         Access Control List: <empty> 
    $ SET SECURITY/CLASS=QUEUE/ACL=(ID=[AGBELL],ACCESS=CONTROL) TELEPHONE_QUEUE
    $ SHOW SECURITY/CLASS=QUEUE TELEPHONE_QUEUE
    TELEPHONE_QUEUE object of class QUEUE 
         Owner: [INVENTORS,AGBELL] 
         Protection: (System: M, Owner: MD, Group: R, World: S) 
         Access Control List: 
              (IDENTIFIER=[INVENTORS,AGBELL],ACCESS=CONTROL)
     
    

13.6.1.5 Understanding How Privileges Affect Queues

Certain account privileges allow users to access a queue in spite of UIC-based and ACL-based protection. The following table lists these account privileges and the type of access they allow on a queue:
Privilege Access
OPER Manage and control access to all queues.
BYPASS Manage and control access to all queues.
READALL Read access to all jobs and to queue security information.
SYSPRV The access specified for users with system UICs.
GRPPRV The access specified for users with system or group UICs.

13.6.2 Using Job Retention Options

Job retention options allow users to retain a job in a queue after the job completes. System managers can use job retention options to keep information about all jobs in the queue after the jobs complete; this is helpful when tracking jobs submitted by other users.

13.6.2.1 Setting Job Retention

Users can set job retention, as can system managers. The following sections explain how each can perform this task.

User Commands

Users can request that a job be retained in a queue after the job completes by using the /RETAIN qualifier with the PRINT or SUBMIT command. For example:


    PRINT/RETAIN 
    SUBMIT/RETAIN 

System Manager Commands

By default, no job retention option is set on a queue. To specify a job retention option, use one of the following commands:


     INITIALIZE/QUEUE/RETAIN=option 
     START/QUEUE/RETAIN=option 
     SET QUEUE/RETAIN=option 

You can specify one of the following options:
Option Description
ALL Holds all jobs in the queue after execution (default).
ERROR Holds jobs in the queue only if they complete unsuccessfully.

The following command specifies that the queue retain all jobs that complete with a status other than success:


$ SET QUEUE/RETAIN=ERROR BATCH_QUE

For example, if you need to know all batch jobs that do not complete successfully on a specific queue, set the queue to retain jobs that complete with an error status. You can enter SHOW QUEUE to display a list of jobs (including their completion status) that completed unsuccessfully. If a job completes unsuccessfully, this message helps determine why. The displays also include the date and time at which a retained job completed.

The job retention option you specify on a queue overrides any job retention option requested by a user for a job in that queue. Figure 13-10 shows how job retention affects a job submitted to a generic queue.

Figure 13-10 Determining Job Retention


The following factors determine whether and where a job is retained:

If jobs are retained in queues, periodically delete the jobs that no longer need to be retained.

13.6.2.2 Specifying Timed Job Retention

Users can specify timed job retention. For example:


$ SUBMIT/RETAIN=UNTIL=19-MAY-1998:07:31:0.0 MYFILE.DAT

This eliminates the need to delete retained jobs from queues. Encourage users who include the /RETAIN qualifier to also use timed retention.

13.6.2.3 Changing Job Retention

To change the user-specified retention policy for a job, use the /RETAIN=option qualifier with the SET ENTRY command in the following format:

SET ENTRY/RETAIN=option entry-number 

You can specify one of the following options:
Option Description
ALWAYS Holds the job in the queue regardless of the job's completion status.
DEFAULT Holds the job in the queue as specified by the queue's retention option. If no option has been set on the queue, the job is not retained.
ERROR Holds the job in the queue only if the job completes unsuccessfully.
UNTIL= time-value Holds the job in the queue for a specified length of time, regardless of the job's completion status. This lets you retain the job in the queue only as long as the job is needed and eliminates the need to delete the job from the queue later. The time value you specify is interpreted first as a delta time, then as a combination time, and finally as an absolute time. For information about specifying time values, refer to the OpenVMS User's Manual.

For example, the following command retains job 172 in the queue until 3 hours after the job completes. At that time, the job will automatically be deleted from the queue.


$ SET ENTRY/RETAIN=UNTIL="+3:00" 172

To remove a job retention option from a queue, use the /NORETAIN qualifier with INITIALIZE/QUEUE, START/QUEUE, or SET QUEUE.

13.6.3 Specifying Queue Characteristics

A characteristic is any attribute of a print or batch job that is relevant to your environment. For example, characteristics for a printer could refer to the color of the ink, the type of paper, or the location of the printer. Once you define the characteristics for a queue, users can specify the characteristics they want to associate with their job when they enter the PRINT or SUBMIT command.

A print job can be processed on an execution queue if the job's characteristics are a subset of the queue's characteristics. However, if any of the characteristics associated with the job are not associated with the queue, the job remains pending until you correct the characteristic mismatch as explained in Section 13.8.2.2.

How to Perform This Task

To specify queue characteristics, perform the following steps:

  1. Create characteristics with DEFINE/CHARACTERISTIC.
  2. Assign characteristics to a queue.

Example

You manage three LN03 printers in each of the four corners of a building. A generic queue LN03$PRINT feeds execution queues for each printer. You can define the characteristics EAST, WEST, NORTH, and SOUTH.

When a user submits a print job to LN03$PRINT with the EAST characteristic, the job prints on the first idle LN03 printer in the eastern corner of the building. If the system has queues for printers on multiple floors, you can further define a characteristic for each floor, for example, FIRST, SECOND, and THIRD.

Commands for Specifying Queue Characteristic Options

Use the following commands when working with characteristics:
Command Description
DEFINE/CHARACTERISTIC Creates a characteristic and assigns a name and number.
DELETE/CHARACTERISTIC Deletes a characteristic.
SHOW QUEUE/CHARACTERISTICS Displays information about characteristics defined for the system.
INITIALIZE/QUEUE/CHARACTERISTICS
SET QUEUE/CHARACTERISTICS
START/QUEUE/CHARACTERISTICS
Specifies one or more characteristics for processing jobs on a queue.
SHOW QUEUE/FULL Displays information about a queue, including any characteristics assigned to the queue.
PRINT/CHARACTERISTICS
SUBMIT/CHARACTERISTICS
SET ENTRY/CHARACTERISTICS
Specifies the name or number of one or more characteristics to be associated with the job.

The following sections describe how to specify queue characteristics.

13.6.3.1 Defining Characteristics

No characteristics are defined by default. To define a characteristic, use the DEFINE/CHARACTERISTIC command in the following format:

DEFINE/CHARACTERISTIC characteristic-name characteristic-number 

You cannot define more than one characteristic name to a number.

If your queue configuration requires more than one characteristic name for a single number, you can define logical names to achieve the same result.

In an OpenVMS Cluster environment, you must define the logical names on every node that requires them.

Note

If you want to define a characteristic name that is also an existing logical name, read the description of logical names in the OpenVMS User's Manual.

Example

In the following example, the characteristic name SECOND_FLOOR is assigned to characteristic number 2. The logical names SALES_FLOOR and SALES_DEPT are defined as equivalent to the characteristic name SECOND_FLOOR. As a result, the logical names SALES_FLOOR and SALES_DEPT are equivalent to the characteristic name SECOND_FLOOR and characteristic number 2. These logical names can be specified as the characteristic-name value for any /CHARACTERISTIC=characteristic-name qualifier.


$ DEFINE/CHARACTERISTIC SECOND_FLOOR 2
$ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_FLOOR SECOND_FLOOR
$ DEFINE/SYSTEM/EXECUTIVE_MODE SALES_DEPT SECOND_FLOOR


Previous Next Contents Index

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
6017PRO_058.HTML