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.