1 – ACL
Manipulates the access control list (ACL) on various objects in
the CMS library.
Format:
SET ACL object-expression /OBJECT_TYPE=type "remark"
1.1 – Command Parameters
object-expression
Specifies one or more objects whose ACL is to be modified.
Wildcards and a comma list are allowed.
The object name depends on the object type (see the /OBJECT_TYPE
qualifier). For example, if the object type is CLASS, the object
name is the name of a class in the CMS library. The same principle
applies to elements and groups. If the object type is LIBRARY, the
object expression must be a list of one or more of the following
keywords:
ELEMENT_LIST
CLASS_LIST
GROUP_LIST
HISTORY
LIBRARY_ATTRIBUTES
These keywords are referred to as object subtypes. You can
abbreviate object subtypes. Wildcards are not allowed.
The object name can also be the name of a CMS command. If /OBJECT_
TYPE is specified as COMMAND, SET ACL modifies the ACL on the
given command. Commands that contain two words must be specified
with an underscore, for example, INSERT_ELEMENT.
remark
Specifies a character string to be logged in the history file
with this command, usually used to explain why the command was
entered. The remark is enclosed in quotation marks. If no remark
was entered, a null remark ("") is logged.
1.2 – Description
The SET ACL command is used to manipulate ACLs on various objects
in the CMS library. ACLs can be put on elements, groups, and
classes, as well as on the lists containing these entities. (An
ACL on a list can be thought of as a directory ACL.) An ACL can be
put on the entire library, and on the library history. ACLs can
also be used to control access to individual CMS commands.
1.3 – Qualifiers
1.3.1 /ACL[=(ace[,...])]
Specifies one or more access control entries (ACEs) to be
modified. When no ACE is specified, the entire access control
list (ACL) is affected. Separate multiple ACEs with commas and
enclose the list in parentheses. The specified ACEs are inserted
at the beginning of the ACL unless the /AFTER qualifier is used.
1.3.2 /AFTER=ace
Indicates that all access control entries (ACEs) specified with
the /ACL qualifier are added after the ACE specified with the
/AFTER qualifier. By default, any ACEs added to the access control
list (ACL) are always placed at the top of the list.
1.3.3 /CONFIRM
Controls whether CMS prompts you for confirmation before each
transaction.
When you specify /CONFIRM and run CMS in interactive mode, CMS
prompts you for confirmation. If you type YES, ALL, TRUE, or 1,
CMS executes the transaction. If you type NO, QUIT, FALSE, 0,
or press RETURN or CTRL/Z, no action is performed. If you type
any other character, CMS continues to prompt until you type an
acceptable response.
CMS does not prompt for confirmation in batch mode.
1.3.4 /DEFAULT
Creates an ACL for one or more specified objects as if the object
were newly created. The /DEFAULT qualifier propagates the DEFAULT
option ACEs in the ACL of the entity list to the ACL of the
specified object. This qualifier can be used only with an object
that is a library entity, that is, either an element, class, or
group.
1.3.5 /DELETE
Indicates that the access control entries (ACEs) specified with
the /ACL qualifier are to be deleted. If no ACEs are specified
with the /ACL qualifier, the entire ACL is deleted. If the /ACL
qualifier specifies an ACE that does not exist in the ACL of the
specified object, you are notified that the ACE does not exist,
and the delete operation continues on to the next ACE on the ACL,
if any exists.
1.3.6 /LIKE=object-specification
Indicates that the ACL of the specified object is to replace the
ACL of the object or objects specified with SET ACL. Any existing
ACEs are deleted before the ACL specified by /LIKE is copied.
The type of the source and destination objects must be the same.
No wildcard characters are allowed in the /LIKE parameter.
1.3.7 /LOG (D)
Controls whether CMS displays success and informational messages
on the default output device. By default, if the command executes
successfully, CMS displays a success message. If you specify
/NOLOG, success and informational messages are suppressed. Any
warning, error, or fatal error messages are displayed regardless
of whether /LOG or /NOLOG is specified.
1.3.8 /NEW
Indicates that any existing ACEs in the ACL of the object
specified with SET ACL are to be deleted. To use the /NEW
qualifier, you must specify a new ACL or ACE with the /ACL
qualifier.
1.3.9 /OBJECT_TYPE=type
Specifies the type of the object whose ACL is being modified.
There is no default object type; therefore, this qualifier is
required. The type must be one of the following keywords:
CLASS
ELEMENT
GROUP
LIBRARY
COMMAND
1.3.10 /OCCLUDE[=option,...]
Controls whether CMS selects the first instance of the specified
object, or all instances of the specified object in the library
search list. The options field contains one or more keywords
associated with the name of the object. The options field can
contain the following keywords:
ALL--equivalent to (ELEMENT, GROUP, CLASS, OTHER)
ELEMENT (D)
NOELEMENT
GROUP (D)
NOGROUP
CLASS (D)
NOCLASS
OTHER (D)
NOOTHER
NONE--equivalent to (NOELEMENT, NOGROUP, NOCLASS, NOOTHER)
You can specify either ALL or NONE, or any combination of the
[NO]ELEMENT, [NO]GROUP, [NO]CLASS, and [NO]OTHER keywords.
By default, CMS performs occlusion for all objects; that is, CMS
selects only the first occurrence of a specified object.
1.3.11 /REPLACE=(ace[,...])
Deletes the access control entries (ACEs) specified with the /ACL
qualifier and replaces them with those specified with /REPLACE.
Any ACEs specified with the /ACL qualifier must exist and must be
specified in the order in which they appear in the current ACL.
1.4 – Examples
(1) CMS> SET ACL/OBJECT=ELEMENT SAMPLE.PAS/ACL=(IDENTIFIER=WALLEN, -)
_CMS> ACCESS=RESERVE+CONTROL "setting up acl on element"
%CMS-S-MODACL, modified access control list for element
DISKX:[PROJECT.CMSLIB]SAMPLE.PAS
This command assigns an ACL on the element SAMPLE.PAS,
specifying that the user holding the identifier WALLEN has
reserve and control access on the element.
(2) CMS> SET ACL/OBJECT=LIBRARY ELEMENT_LIST/ACL=((IDENTIFIER=WALLEN, -)
_CMS> OPTIONS=DEFAULT,ACCESS=FETCH,(IDENTIFIER=WALLEN, -)
_CMS> ACCESS=CREATE+CONTROL))
_Remark: assign ACEs to newly created elements
%CMS-S-MODACL, modified access control list for subtype
DISKX:[PROJECT.CMSLIB]ELEMENT_LIST
This example shows how to assign two separate ACEs on the
element list. The first ACE specifies a default ACE to be
inherited by newly created elements in the library. The second
ACE allows the user holding the identifier WALLEN to create
elements in the library.
(3) CMS> SET ACL/OBJECT=ELEMENT/DEFAULT SAMPLE.PAS
_Remark: inherit default ACEs from element list
%CMS-S-MODACL, modified access control list for element
DISKX:[PROJECT.CMSLIB]SAMPLE.PAS
CMS> SHOW ACL/OBJECT=ELEMENT SAMPLE.PAS
ACLs in CMS Library DISKX:[PROJECT.CMSLIB]
SAMPLE.PAS
(IDENTIFIER=[PROJECT,WALLEN],ACCESS=FETCH)
The SET ACL command causes the default ACE from the element
list (see example 2) to be placed on the element SAMPLE.PAS.
The SHOW ACL command displays the ACE on element SAMPLE.PAS
(which is now assigned the default ACE from the element list in
example 2).
(4) CMS> SET ACL/OBJECT=CLASS BL1/ACL=(IDENTIFIER=[DEV,*]+LIBRARIAN, -)
_CMS> ACCESS=INSERT+REMOVE
_Remark: allow access to class for library employees
%CMS-S-MODACL, modified access control list for class
DISKX:[PROJECT.CMSLIB]BL1
This command assigns an ACL allowing insert and remove access
to class BL1 for users in group DEV holding the LIBRARIAN
identifier.
(5) CMS> SET ACL/OBJECT=CLASS/LIKE=BL1 BL2
_Remark: put ACL from class BL1 on class BL2
%CMS-S-MODACL, modified access control list for class
DISKX:[PROJECT.CMSLIB]BL2
CMS> SHOW ACL/OBJECT=CLASS
ACLs in CMS Library DISKX:[PROJECT.CMSLIB]
BL1
(IDENTIFIER=[DEV,*]+LIBRARIAN,ACCESS=INSERT+REMOVE)
BL2
(IDENTIFIER=[DEV,*]+LIBRARIAN,ACCESS=INSERT+REMOVE)
In this example, the /LIKE qualifier causes the ACL from the
class BL1 (see example 4) to be placed on the class BL2. The
SHOW ACL command displays the ACL on both classes BL1 and BL2.
2 – LIBRARY
Enables access to an existing CMS library or libraries. Subsequent
CMS commands automatically refer to the libraries identified by
this command.
Format:
SET LIBRARY directory-specification[,...]
2.1 – Command Parameters
directory-specification
Specifies one or more existing CMS libraries. The directory
that is used as the CMS library cannot be your current default
directory. The directory specification must conform to OpenVMS
conventions; it can also be a logical name. If you specify
more than one OpenVMS directory, you must separate the directory
specifications with commas. Wildcards are not allowed.
2.2 – Description
The SET LIBRARY command enables access to an existing CMS library
or list of libraries. Subsequent CMS commands automatically refer
to the library or libraries identified in the SET LIBRARY command.
The SET LIBRARY command defines logical names beginning with CMS$
that allow CMS commands to refer implicitly to the library. You
should not define logical names beginning with CMS$ because this
prefix is reserved for CMS.
The SET LIBRARY command performs some consistency checks on the
directory to verify that it is a valid CMS library (unless you
specify the /NOVERIFY qualifier). If the library is not valid, you
receive an error message.
The library must have been created with the CREATE LIBRARY
command. During each session in which you want to use your CMS
library, you must use the SET LIBRARY command before you access
a library. The command is not required, however, if you have
just created a library (see the description of the CREATE LIBRARY
command) because the CREATE LIBRARY command performs an implicit
SET LIBRARY.
You create a search list by specifying multiple libraries on
the SET LIBRARY command. This enables you to manipulate several
libraries with one command. You must include commas between the
directory specifications.
2.3 – Qualifiers
2.3.1 /AFTER[=directory-specification]
Instructs CMS to insert new libraries into the existing library
search list (that you previously specified by using a comma list
with the CREATE LIBRARY or SET LIBRARY command) immediately
following the existing specified directory. If you omit the
directory specification, CMS adds the libraries to the end of
the list. You cannot specify both /AFTER and /BEFORE on the same
command line. By default, the SET LIBRARY command's library list
supersedes any existing search list.
2.3.2 /BEFORE[=directory-specification]
Instructs CMS to insert new libraries into the existing library
search list (that you previously specified by using a comma list
with the CREATE LIBRARY or SET LIBRARY command) immediately
in front of the existing specified directory. If you omit the
directory specification, CMS adds the libraries to the front of
the list. You cannot specify both /AFTER and /BEFORE on the same
command line. By default, the SET LIBRARY command's library list
supersedes any existing search list.
2.3.3 /LOG (D)
Controls whether CMS displays success and informational messages
on the default output device. By default, if the command executes
successfully, CMS displays a success message. If you specify
/NOLOG, success and informational messages are suppressed. Any
warning, error, or fatal error messages are displayed regardless
of whether /LOG or /NOLOG is specified.
2.3.4 /VERIFY (D)
Allows you to set a library without performing the locking and
verification process CMS normally performs. This speeds up the SET
LIBRARY operation and allows a CMS library to be set even if the
library is locked by another user. However, if the library needs
recovery, the condition is not detected until another transaction
is attempted.
2.4 – Examples
(1) CMS> SET LIBRARY [WORK.CMSLIB]
%CMS-S-LIBIS, CMS library is DISKX:[WORK.CMSLIB]
This command sets the CMS library to the existing library
[WORK.CMSLIB].
(2) CMS> SET LIBRARY [WORK.CMSLIB],[TEST.CMSLIB]
%CMS-I-LIBIS, library is DISK$:[WORK.CMSLIB]
%CMS-I-LIBINSLIS, library DISK$:[TEST.CMSLIB] inserted at
end of library list
%CMS-S-LIBSET, library set
-CMS-I-SUPERSEDE, library list superseded
This command sets (or resets, if there was an existing library
or libraries) the current library to contain two libraries.
(3) CMS> SET LIBRARY [PROJECT.CMSLIB]/AFTER=[WORK.CMSLIB]
%CMS-I-LIBINSLIS, library DISK$:[PROJECT.CMSLIB] inserted after
DISKX:[WORK.CMSLIB]
%CMS-S-LIBSET, library set
Assuming you set your library as in example 2, this command
directs CMS to insert the library [PROJECT.CMSLIB] after the
library [WORK.CMSLIB]. The library list now contains the three
libraries [WORK.CMSLIB], [PROJECT.CMSLIB], and [TEST.CMSLIB],
in that order. Use the SHOW LIBRARY command to display the
library search list.
3 – NOLIBRARY
Removes one or more libraries from the current library search
list.
Format:
SET NOLIBRARY directory-specification[,...]
3.1 – Command Parameters
directory-specification
Specifies one or more existing CMS libraries in the current
library search list. The directory specification must conform
to OpenVMS conventions; it can also be a logical name which translates
to a search list. If you specify more than one OpenVMS directory, you
must separate the directory specifications with commas. Wildcards
are not allowed. If you do not supply a directory specification,
CMS removes all libraries from the current library search list.
3.2 – Description
The SET NOLIBRARY command removes one or more libraries from
the current library search list. None of the directories in the
library search list can be your current default directory. If all
libraries are removed from the list, the logical name CMS$LIB is
deassigned.
3.3 – Qualifiers
3.3.1 /LOG (D)
Controls whether CMS displays success and informational messages
on the default output device. By default, if the command executes
successfully, CMS displays a success message. If you specify
/NOLOG, success and informational messages are suppressed. Any
warning, error, or fatal error messages are displayed regardless
of whether /LOG or /NOLOG is specified.
3.4 – Example
CMS> SET NOLIBRARY
%CMS-W-UNDEFLIB, library is undefined
This example removes all existing libraries from the current
library search list.