Document revision date: 30 March 2001

## OpenVMS Guide to Extended File Specifications

Previous | Contents | Index

## 2.3 Controlling Access to ODS-5 Volumes

A system manager may choose to enforce one or both of the following restrictions:

- Prevent users on a VAX from accessing files on an ODS-5 volume
- Prevent untested applications from accessing files on an ODS-5 disk (You can allow certain users to override this access control on an ODS-5 volume.)

The system manager can impose either of these restrictions by using normal OpenVMS discretionary controls. Refer to the OpenVMS Guide to System Security for more information.

Sections 2.3.1 and 2.3.2 contain examples of restricting access to ODS-5 volumes.

### 2.3.1 Preventing VAX Users from Accessing an ODS-5 Volume

Follow these steps to prevent a user from accessing an ODS-5 volume from a VAX node:

1. Define an identifier (for example, VAX_NODE) to identify users running on an OpenVMS VAX node. For example:

       $ RUN SYS$SYSTEM:AUTHORIZE

       UAF> ADD /IDENTIFIER VAX_NODE

       %UAF-I-RDBADDMSG, identifier VAX_NODE value %X80010037 added to
               rights database

2. On each VAX node, add VAX_NODE to the system rightslist. For example:

       $SET RIGHTS_LIST /ENABLE /SYSTEM VAX_NODE

   The /ENABLE qualifier in the command adds VAX_NODE to the system rightslist.
   Also add this command to the SYSTARTUP_VMS.COM command procedure.
3. To prevent users on a VAX node from gaining access to an ODS-5 volume, place an Access Control Entry (ACE) on the volume that denies access to holders of the VAX_NODE identifier. For example:

       $ SET SECURITY /CLASS=VOLUME ODS5_DISK -
       _$ /ACL=(ID=VAX_NODE,ACCESS=NONE)

### 2.3.2 Preventing an Untested Application from Accessing an ODS-5 Volume

Follow these steps to prevent an untested application from accessing an ODS-5 volume:

1. Define an identifier (for example, ODS5_UNSAFE) to identify applications that you do not want to access an ODS-5 volume. For example:

       UAF> ADD /IDENTIFIER ODS5_UNSAFE /ATTR=SUBSYSTEM

       %UAF-I-RDBADDMSG, identifier ODS5_UNSAFE value %X80010039 added to
              rights database

2. Attach a protected subsystem ACE to the application with the ODS5_UNSAFE identifier. For example:

       $ SET SECURITY /CLASS=FILE SYS$SYSTEM:APPLICATION.EXE -
       _$ /ACL=(SUBSYSTEM,ID=ODS5_UNSAFE)

3. To each ODS-5 volume, attach an ACE denying access to the ODS-5 volume to holders of the ODS5_UNSAFE identifier. For example:

       $ SET SECURITY /CLASS=VOLUME ODS5_DISK/ -
       _$ ACL=(ID=ODS5_UNSAFE,ACCESS=NONE)

You can also override the restriction in the last step to allow trained users to access untested applications by following the remaining steps:

1. Create another identifier (for example, ODS5_UNTRAINED):

       UAF> ADD /IDENTIFIER ODS5_UNTRAINED

       %UAF-I-RDBADDMSG, identifier ODS5_UNTRAINED value %X80010038 added to
              rights database

2. Assign this identifier to all users. For example:

       UAF> GRANT/IDENTIFIER ODS5_UNTRAINED *

       %UAF-I-GRANTMSG, identifier ODS5_UNTRAINED granted to *

3. Instead of Step 3, place an Access Control Entry (ACE) on the volume that denies access to holders of the ODS5_UNTRAINED identifier. For example:

       $ SET SECURITY /CLASS=VOLUME ODS5_DISK/ -
       _$ ACL=(ID=ODS5_UNSAFE+ODS5_UNTRAINED,ACCESS=NONE)

   This command prevents ODS5_UNTRAINED users from accessing the volume with ODS5_UNSAFE applications.
4. Remove the identifier from an individual user you are willing to let use any application on an ODS-5 volume. For example:

       UAF> REVOKE/IDENTIFIER ODS5_UNTRAINED SHEILA_USER

       %UAF-I-REVOKEMSG, identifier ODS5_UNTRAINED revoked from SHEILA_USER

After you complete these steps:

- An untrained user can use an untested application only to access ODS-2 volumes.
- A trained user can access ODS-5 volumes with any application.

## 2.4 System Management Utility Changes

The following sections describe changes made to OpenVMS system management utilities to support extended file names.

### 2.4.1 Analyze/Disk_Structure Utility

The Analyze/Disk_Structure utility (ANALYZE/DISK_STRUCTURE) now checks the readability and validity of Files-11 On-Disk Structure (ODS) Levels 1, 2, and 5 disk volumes.

The following new qualifier has also been added:

/STATISTICS

This qualifier produces statistical information about the volume under verification and creates a file, STATS.DAT, which contains per-volume statistics. The information placed in STATS.DAT is the following:

- The number of ODS-2 and ODS-5 headers on the volume
- The number of special headers on ODS-5 volumes
- The distribution of file name lengths
- The distribution of extension header chain lengths
- The distribution of header identification area free space
- The distribution of header map area and ACL area free space
- The totals of header space that is in use and header space that is not in use

### 2.4.2 Backup Utility (Alpha Only)

Following are new features the Backup utility (BACKUP) has implemented to support extended file names on Alpha systems:

- New BACKUP qualifier: /CONVERT
  If you convert an ODS Level 5 file to an ODS Level 2 file, some ODS-5 file attributes can be lost.

  Note Use the /CONVERT qualifier to perform image restores of ODS-5 save sets to ODS-2 volumes. To preserve the output volume as ODS-2, you must also use the /NOINIT qualifier.

- Deep directories
  Enhanced algorithms handle deep directories. Prior to OpenVMS Version 7.2, 32 levels of directories were supported by the Backup utility. In Version 7.2, the Backup utility supports as many levels of directories as RMS allows, which is currently 255 levels. final_cleanup>(page_break)
- Extended character set
  BACKUP can process file names that use characters from the following character sets:
  - DEC Multinational (MCS)
  - ISO Latin-1
  - Unicode (UCS-2)

### 2.4.3 Physical Backups of ODS-5 Volumes on VAX Systems

On OpenVMS VAX systems, BACKUP supports ODS-5 volumes only when you specify the /PHYSICAL qualifier to back up a volume. The BACKUP /PHYSICAL command causes BACKUP to make a block-by-block physical backup of the disk, ignoring the structured contents of the disk.

On Alpha systems, you can use either the BACKUP /IMAGE or BACKUP /PHYSICAL command.

See the Backup chapter of the OpenVMS System Manager's Manual for more information about support for extended file names by the Backup utility on Alpha processors.

### 2.4.4 Mount Utility (Alpha Only)

The Mount utility has been modified to provide full support for ODS-5 volumes.

## Chapter 3
Extended File Naming Characteristics

Extended File Specifications provides a wider variety of character set options and naming conventions, similar to those available on Windows NT. This chapter describes the impact of Extended File Specifications on the general user, and contains the following topics:

- Outlining the differences in file and directory specifications between ODS-2 and ODS-5
- Manipulating files with extended file names
- Using extended file names in DCL command procedures
- Displaying ODS-5 file specifications in DECwindows

## 3.1 File Specifications

On ODS-5 volumes, there are two possible naming styles for file specifications: traditional (ODS-2 compliant) and extended (ODS-5 compliant).

Section 3.1.1 describes ODS_2 compliant name syntax. Section 3.1.2 describes ODS-5 compliant name syntax.

### 3.1.1 Traditional (ODS-2) Syntax

The traditional (ODS-2) file name syntax is the syntax most OpenVMS users are familiar with. OpenVMS Versions 7.1 and earlier follow this syntax, which supports the following character set and naming conventions:

ODS-2 Character Set

Traditional (ODS-2-compliant) file names can use alphanumeric characters (A-Z, a-z, 0-9), dollar sign ($), underscore (_) and hyphen (-).

Case Insensitivity

Case preservation is not supported with traditional syntax. You can enter file names in uppercase, lowercase, or mixed case; however, all characters are stored in uppercase format.

Standard Delimiters

With traditional syntax, the file type is preceded by a period (.). The file version is separated from the type by a semicolon (;) or sometimes a period (.). (When the system displays file specifications, it displays a semicolon in front of the file version number.) Directories are enclosed by brackets ([]) or angle brackets (<>). Directory levels are separated by periods (.).

Limited File Length

Traditional file specifications follow the 39.39 format, supporting only a single period (.) separating the file name and file type.

### 3.1.2 Extended (ODS-5) Syntax

The extended file name syntax offered on ODS-5 volumes supports a larger character set, longer file names, and longer file specifications. This syntax allows OpenVMS systems to store and access files with Windows NT-style file specifications that use the following character set and naming conventions:

#### 3.1.2.1 ISO Latin-1 Character Set

The ISO Latin-1 character set is a superset of the traditional ASCII character set used by versions of OpenVMS previous to 7.2. All characters from the 8-bit ISO Latin-1 character set are valid in ODS-5 file specifications except the following:

> C0 control codes (0x00 to 0x1F inclusive)
> Double quotation marks (")
> Asterisk (*)
> Backslash (\)
> Colon (:)
> Left angle bracket (<)
> Right angle bracket (>)
> Slash (/)
> Question mark (?)
> Vertical bar (|)

#### 3.1.2.2 Special Characters

Some ISO Latin-1 characters require an escape character to precede them in a file specification in order to be interpreted as literal characters rather than special function characters. In extended file names, RMS and DCL interpret the circumflex (^) as an escape character. The following list contains rules for using the escape character:

- The escape character (^) followed by underscore (_) or by a space represents a space.
- The escape character (^) followed by any of the following characters means that the character is to be used as part of a file name rather than having any special meaning that it might otherwise have in a file specification:

      .  ,  ;  [  ]  %  ^  &

- A user can enter a literal period (.) with or without the escape character (^) in a file name. The system adds the escape character to any periods other than those that act as delimiters for the file type and version number. Literal periods (.) in directory names must be preceded by the escape character.
- An escape character followed by a hexadecimal digit requires a second hexadecimal digit. Interpret the two following characters as a hexadecimal value for an arbitrary 1-byte character.
  For example, ^20 represents a space.
- An escape character followed by "U" within a file specification indicates that the four hexadecimal digits that follow are to be interpreted as Unicode. For example, ^U012F.
  All characters in file specifications that are not preceded by an escape character (^) are presumed to be ISO Latin-1.

Note File names containing special characters cannot be accessed from a VAX system. See Section 3.3 for more information about mixed-architecture environments.

#### 3.1.2.3 Interpretation of Period (.)

The use of the period (.) as a literal character in extended file names requires RMS to determine which periods are file name characters and which are delimiters.

When only one period (.) is used in an extended file name, that period is interpreted as the delimiter. As in previous versions of OpenVMS, this behavior also occurs if the single period is followed by a number:

    $ CREATE Test.1

creates the file:

    Test.1;1

Determination of Version Numbers

When there are multiple periods (.) in a file name, RMS looks at all the characters after the last period. If those characters are all numeric, or all numeric and preceded by a minus sign (-), the numeric string is determined to be a version number. However, if there are more than 5 numeric characters, RMS rejects the file name as illegal. If there is a nonnumeric character following the last period, then it is interpreted as a type delimiter.

For example, the following command: `$ CREATE Test4.3.2.1`

creates the file: `Test4^.3.2;1`

where .2 is the file type and 1 is the file version.

A version number explicitly delimited by a semicolon (;) must also be 5 or fewer numeric characters, and can be preceded by a minus sign (-).

#### 3.1.2.4 Expanded File Specification Length

On an ODS-5 volume, the file name together with the file type can be up to 236 8-bit characters or 118 16-bit characters in length. Unmodified programs and utilities may limit or abbreviate complete file specifications to 255 bytes.

    $ CREATE This.File.Name.Has.A.Lot.Of.Periods.DAT
    $ CREATE -
    _$ ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceed -
    _$ ingThe39^,39presentInPreviousVersionsOfOpenVMS
    $ DIRECTORY

    Directory TEST$ODS5:[TESTING]

    ThisIsAVeryLongFileName^&ItWillKeepGoingForLotsAndLotsOfCharacters.Exceeding
    The39^,39presentInPreviousVersionsOfOpenVMS;1
    This^.File^.Name^.Has^.A^.Lot^.Of^.Periods.DAT;1

    Total of 2 files.

Section 3.6 discusses how RMS abbreviates file specifications when the full file specification exceeds the limit of 255 bytes.

#### 3.1.2.5 Using Wildcards

Single- and multiple-character wildcards function as expected with ODS-5 files. A single-character wildcard represents exactly one character in either the file name or file type, but may not be used in the file version string. A multiple-character wildcard can represent any number of characters (including zero characters) in the file name or file type. A multiple-character wildcard can be used in place of a version string.

##### 3.1.2.5.1 Wildcard Characters

The following characters are wildcard characters when working on any OpenVMS 7.2 volume:

- The asterisk (*) is a multiple-character wildcard.
- The percent sign (%) is a single-character wildcard.
- The question mark (?) is a single-character wildcard.

The percent sign (%) continues to be a single-character wildcard to maintain compatibility with existing applications. The percent sign (%) may be used as a literal character when preceded by the circumflex (^) and is also a literal character in Windows NT file names. Therefore, in addition to the percent sign, RMS also recognizes the question mark (?) as a single character wildcard. The question mark functions identically to the percent sign as a wildcard character on OpenVMS 7.2 and later. The percent sign and the question mark each matches exactly one character in a search pattern.

Note An escaped character (such as ^.) or an escape sequence (such as ^EF or ^U0101) is considered a single character for purposes of wildcard matching.

##### 3.1.2.5.2 Wildcard Syntax

Although DCL preserves the case of extended file names, wildcard matching is case blind.

A search operation with wildcards continues to match only against the corresponding character in the same part of the target specification. Table 3-1 contains examples of some wildcard searches.

Table 3-1 Sample Wildcards and Matching Patterns
The pattern... | matches... | ...but does not match
--- | --- | ---
A*B;* | AHAB.;1 | A.B;1
A.*.B* | A^.DISK.BLOCK;1 | A^.C^.B.DAT;1
A?B.TXT;* | A^.B.TXT;5 | A^.^.B.TXT;1
*.DAT | Lots^.of^.Periods.dat;1 | DAT.;1
Mil?no.dat | Milano.dat;1 | Millaano.dat;1
NAPOLI.?.DAT | napoli.q.dat;1 | napoli.abc77.dat;1

#### 3.1.2.6 Case Preservation

On an ODS-5 volume, the case for all versions of a file name is identical; the case is preserved as the file name was first created. When you create more than one file with the same name differing only in case, DCL treats the subsequent files as new versions, and converts them to the same case as the original file.

For example, the following sequence of commands:

    $ CREATE CaPri.;1
    $ CREATE CAPRI
    $ CREATE capri

produces the resulting files:

    CaPri.;1  CaPri.;2  CaPri.;3

In prior versions of OpenVMS, DCL and RMS converted all file specifications to uppercase. On ODS-5 volumes, the case of all file names is preserved as created by the user.

## 3.2 Directory Specifications

The following sections describe the deeper directory structures and extended naming syntax available on ODS-5 volumes. It is now possible to go beyond the eight levels of directories previously supported in OpenVMS.

### 3.2.1 Deep Directory Structures

OpenVMS 7.2 supports deep nesting of up to 255 directories with the restriction that the total directory specification can be no longer than 512 8-bit or 16-bit characters.

For example, a user can create the following directories on an ODS-2 or ODS-5 volume:

    $ CREATE/DIRECTORY [a.b.c.d.e.f.g.h.i.j.k.l.m]

A user can create the following directory with a long name on an ODS-5 volume:

    $ CREATE/DIRECTORY -
    [.AVeryLongDirectoryNameWhichHasNothingToDoWithAnythingInParticular]

### 3.2.2 Directory Naming Syntax

On ODS-5 volumes, directory names conform to most of the same conventions as file names when using the ISO Latin-1 character set. Periods and special characters may be present in the directory name, but they must be preceded by the escape character (^) in order to be recognized as literal characters, as shown in Table 3-2.

Table 3-2 Directory Names on ODS-5 Volumes
CREATE/DIRECTORY. . . | Result
--- | ---
[Hi^&Bye] | Hi^&Bye.DIR;1
[Lots^.Of^.Periods^.In^.This^.Name] | Lots^.Of^.Periods^.In^.This^.Name.DIR;1

#### 3.2.2.1 Directory ID and File ID Abbreviation

Under some circumstances, a full file specification may contain more characters than the 255 bytes allowed by unmodified applications. If a file specification that such an application needs exceeds 255 bytes in length, RMS generates a shorter file specification by abbreviating the directory to a DID, and if necessary, the filename to a FID.

When the file specification is too long, RMS first attempts to generate a shorter directory specification by identifying the directory with its directory ID. This shorter specification is referred to as a DID.

    TEST$ODS5:[5953,9,0]Alghero.TXT;1

Note that this form of the directory name must have three numbers and two commas to avoid ambiguity with UIC format directory names. With the DIRECTORY command you can view the shorter DID version as well as the full version of a file specification. See Section 3.6 for more information on displaying long file specifications. See Section B.2.2.7 for more information about DID abbreviations. See Section B.2.2.8 for more information about FID abbreviations.

Previous | Next | Contents | Index

| privacy and legal statement |
6536PRO_002.HTML