The following subsections describe the basic constructs for the input to MAKEUSER.
MAKEUSER converts all alphabetic characters that are not contained in quotation marks (") to uppercase characters.
One or more blanks can separate syntactic items and can appear anywhere except within an identifier or a number. If a blank is found in a quoted string, it is a significant character.
Letters, words, and phrases that appear in angle brackets (<>) in the syntax diagrams are syntactic variables that represent information to be supplied by the MAKEUSER user.
A particular variable can represent a
-
Single character
-
Simple construct such as an integer or string
-
Relatively complex construct
Most variables are defined where used, but several of the frequently used variables are defined only here.
<integer>
┌◄────────┐ ──┴─<digit>─┴──────────────────────────────────────────────────────────┤
An integer is specified by a string of adjacent digits. Subscripts and repeat counts are quantities specified as integers.
<number>
┌◄────────────────────┐ ─┬─────┬─┴─┬─────────┬─<digit>─┴──────────────────────────────────────┤ ├─ + ─┤ └─/1\─ . ─┘ └─ - ─┘
A number is an
-
Integer
-
Decimal fraction
-
Integer followed by a decimal fraction
A number can include an initial plus sign (+) or minus sign (–) sign. Numbers that include fractions are internally represented as single-precision, floating-point operands.
<string>
┌◄───────────────────────────────────────────────────────┐ ─┴─┬───────────────┬─ " ──<EBCDIC string>── " ──────────┬─┴───────────┤ ├─<EBCDIC code>─┘ │ ├─<ASCII code>── " ──<ASCII string>── " ─────────────┤ └─<hexadecimal code>── " ──<hexadecimal string>── " ─┘
<EBCDIC code>
── 8 ──────────────────────────────────────────────────────────────────┤
<EBCDIC string>
┌◄────────────────────────────┐ ──┬─────┬─┴─<nonquote EBCDIC character>─┴──────────────────────────────┤ └─ " ─┘
A <nonquote EBCDIC character> is any one of the 256 possible EBCDIC characters except the quotation mark (").
<printable EBCDIC string>
┌◄─────────────────────────────┐ ──┬─────┬─┴─<printable EBCDIC character>─┴─────────────────────────────┤ └─ " ─┘
A <printable EBCDIC character> is any EBCDIC character for which the hexadecimal code is greater than or equal to 4"40" except the EBCDIC character quotation mark (").
<ASCII code>
── 7 ──────────────────────────────────────────────────────────────────┤
<ASCII string>
┌◄────────────────────────────┐ ──┬─────┬─┴─<nonquote ASCII character >─┴──────────────────────────────┤ └─ " ─┘
A <nonquote ASCII character> is any one of the 128 possible ASCII characters except the quotation mark (").
<hexadecimal code>
── 4 ──────────────────────────────────────────────────────────────────┤
<hexadecimal string>
┌◄────────────────────────┐ ──┴─<hexadecimal character>─┴──────────────────────────────────────────┤
<hexadecimal character>
──┬─ 0 ─┬──────────────────────────────────────────────────────────────┤ ├─ 1 ─┤ ├─ 2 ─┤ ├─ 3 ─┤ ├─ 4 ─┤ ├─ 5 ─┤ ├─ 6 ─┤ ├─ 7 ─┤ ├─ 8 ─┤ ├─ 9 ─┤ ├─ A ─┤ ├─ B ─┤ ├─ C ─┤ ├─ D ─┤ ├─ E ─┤ └─ F ─┘
Explanation
A string
-
Is one or more quoted sequences of hexadecimal, ASCII, or EBCDIC characters
-
Can be specified by a prefix digit (4, 7, or 8, respectively) before each sequence
-
Cannot have a space between the digit and the following quotation mark (")
-
Cannot contain both ASCII and EBCDIC strings
If the prefix is absent, the type is determined by context: the default string type is hexadecimal or ASCII when the string appears in an assignment to a data item of the corresponding type.
The default is EBCDIC for all other cases.
An individual quoted sequence must be complete on one input line, but consecutive sequences can appear on separate lines. A quotation mark can appear as the first character within a quoted sequence, except for hexadecimal. Hexadecimal sequences of even length can appear in EBCDIC or ASCII strings; each hexadecimal pair constitutes one character.
The characters between quotation marks are entered as EBCDIC and are translated to the appropriate internal representation. The hexadecimal characters are represented by the characters 0 through 9 and A through F.
The following examples are valid EBCDIC strings:
"ABC" "A"4"C2C3"
<string info>
──┬─<integer>───────────────────────┬──────────────────────────────────┤ ├─<simple string>─────────────────┤ └─<repeat>── * ─┬─<integer>───────┤ └─<simple string>─┘
An integer occurring in <string info> represents a single character. For example, an integer of 145 represents the character “j” in an EBCDIC string, 4"91" in an ASCII string, and 4"1" in a HEX string.
<repeat>
──────<integer>────────────────────────────────────────────────────────┤
An <integer> that represents a repeat value. The value after <repeat> is repeated, for example, 3 * “A” is extended to “AAA.”
<text>
┌◄───────────────────────────────────────────────────────┐ ──┴─┬───────────────┬─ " ──<EBCDIC string>── " ──────────┬─┴───────────┤ ├─<EBCDIC code>─┘ │ └─<hexadecimal code>── " ──<hexadecimal string>── " ─┘
<value>
──┬─<number>───────┬───────────────────────────────────────────────────┤ ├─────┬─<string>─┘ ├─ + ─┤ └─ - ─┘
A value is a number or a string comprising not more than 48 bits (12 hexadecimal, 6 ASCII, or 6 EBCDIC characters). Shorter strings are right-justified in a 0 word. A string value can include an initial plus sign (+) or minus sign (–); a negative string has a sign bit opposite to that of the unsigned value.
For example, the system accepts the following strings as the same value:
-8"ABCDEF" +8"aBCDEF"
<name>
──┬─ <letter> ─┬─┬─────────────────────────────────────┬───────────────┤ ├─ <digit> ──┘ │ ┌◄──────────────────────────┐ │ │ └─┴─ /16\ ─┬─ <letter> ─────┬─┴───────┤ │ ├─ <digit> ──────┤ │ │ ├─ <hyphen> ─────┤ │ │ └─ <underscore> ─┘ │ │ ┌◄───────────────────────────────────────┐ │ └─ " ─┴─ /17\ ── <printable EBCDIC character> ─┴─ " ─┘
A name is a sequence of one of the following character types:
-
1 to 17 alphanumeric characters, including
-
Digits
-
Uppercase letters
-
Hyphens (-)
-
Underscore characters (_)
-
-
1 to 17 EBCDIC characters, except the quotation mark enclosed in quotation marks (""").
The sequence can include any EBCDIC character for which the hexadecimal code is greater than or equal to 4"40" and that is not the EBCDIC character quotation mark (").
If the value of the CASESENSITIVEPW option is TRUE, MAKEUSER allows passwords containing lowercase characters and special characters (such as asterisks, dollar signs, and so on) to be entered without being enclosed in quotation marks.
If a password contains a space, semicolon, comma, percent sign, or question mark, it must be enclosed in quotation marks, regardless of the option setting.
<long name>
┌◄────────────────────────────────────────────┐ ──┴─┬─<alphanumeric character>────────────────┬─┴──────────────────────┤ │ ┌◄────────────────────────────┐ │ └─ " ─┴─<nonquote EBCDIC character>─┴─ " ─┘
A long name is a sequence of up to 65,535 characters. The syntax enables the creation of a name that contains almost any character and allows the name to be split across many lines if desired. The name consists of the concatenation of all parts of the name; however, quotes and blanks between parts of the name are discarded.
<long node name>
┌◄───────────────────────────────┐ ──┬─┴─/215\─<alphanumeric character>─┴────────────┬────────────────────┤ │ ┌◄──────────────────────────────────┐ │ └─ " ─┴─/215\─<nonquote EBCDIC character>─┴─ " ─┘
A long node name is a sequence of one of the following character types:
-
1 to 215 alphanumeric characters, including
-
Digits
-
Uppercase letters
-
Hyphens (-)
-
Underscore characters (_)
-
-
1 to 215 EBCDIC characters, except the quotation mark enclosed in quotation marks (""") The sequence can include any EBCDIC character for which the hexadecimal code is greater than or equal to 4"40" and that is not the EBCDIC character quotation mark (").
<file name>
┌◄───── / ────┐ ──┬──────────────────────┬─┬─┴─/12\─<name>─┴───────────┬───────────────┤ ├─ ( ──<usercode>── ) ─┤ │ ┌◄────────── / ─────────┐ │ └─ * ──────────────────┘ └─┴─/20\─<long node name>─┴─┘
An asterisk (*) at the beginning of a file name indicates the file is not stored under a usercode. The usercode indicates the usercode under which the file is stored.
A file name can be split across multiple input records as long as individual nodes are not split. If a node must be split, use the tilde ( ) character. The ( ) character cannot be used to concatenate quoted and non-quoted tokens.
<file title>
──<file name>── ON ──<family spec>───────────────────────────────────────┤
<family spec>
──<identifier>─┬─ ONLY ────────────────────┬───────────────────────────┤ └─ OTHERWISE ──<identifier>─┘
<usercode>
──<name>───────────────────────────────────────────────────────────────┤
A usercode serves as an identification code that establishes a user identity, controls security, and provides a means of differentiating files stored under one usercode from files stored under other usercodes.
<password>
──<name>───────────────────────────────────────────────────────────────┤
A password is a code that permits verification of the right to use the associated usercode. While <password> is specified as <name>, it is encrypted by the system before it is stored.
Passwords containing lowercase characters and special characters do not need to be surrounded by quotation marks if the CASESENSITIVEPW security option is TRUE.
Passwords are not displayed or printed. The $LIST or $COPY function presents the password in hashed form, as a question mark followed by a number of non-printable EBCDIC characters.
The only password information found on a printer listing is the number of passwords.
SYSTEM/MAKEUSER can be recompiled with $SET VISIBLE, in which case the non-printable EBCDIC characters are letters. These characters are printable representations of the encrypted form of password, but they do not match the password as it was originally defined.
Installation management has no way to determine a user password. If the password is forgotten, it is for all practical purposes irreversibly lost.
However, the security administrator can use Security Center or SYSTEM/MAKEUSER to install a new password for the usercode and then tell the user that password. The user can then change that password later.
<accesscode spec>
──<accesscode>─┬──────────────────┬────────────────────────────────────┤ └─ / ──<apassword>─┘
<accesscode>
──<name>───────────────────────────────────────────────────────────────┤
An accesscode is an identification code subordinate to a usercode, which is used to further establish a user identity, control security, and restrict access to files.
<apassword>
──<name>───────────────────────────────────────────────────────────────┤
The accesscode password (apassword) functions similarly to the password. The accesscode password is entered by a user during log-on to verify the right to use the associated accesscode.
Accesscode passwords containing lowercase characters and special characters do not need to be surrounded by quotation marks if the CASESENSITIVEPW security option is TRUE.
<chargecode>
┌◄───── / ────┐ ──┴─/12\─<name>─┴──────────────────────────────────────────────────────┤
A chargecode is a sequence of names separated by slashes (/). The length of a chargecode, including slashes, cannot exceed 60 characters.
A group of users working on a common project can all share the same CHARGECODE. This mechanism simplifies the process of determining what system resources are used for the project.
<identifier>
──<letter>─┬───────────────────────────────────┬───────────────────────┤ │ ┌◄──────────────────────────────┐ │ └─┴─/16\─<alphanumeric character>─┴─┘
<home menu identifier>
──<letter>─┬───────────────────────────────────┬───────────────────────┤ │ ┌◄──────────────────────────────┐ │ └─┴─/17\─<alphanumeric character>─┴─┘
<timevalue>
──<hour>── : ──<minute>─┬───────────────┬──────────────────────────────► └─ : ──<second>─┘ ►─<month>── / ──<day>── / ──<year>─────────────────────────────────────┤
The time value is used to specify a time and date. All <timevalue>attributes are integers, as follows:
Attribute or Attributes |
Value Range |
---|---|
Hour |
0 through 23 |
Minute and Second |
0 through 59 |
Month |
1 through 12 |
Day |
1 through 31 |
Years 1970 through 1999 |
70 through 99, 1970 through 1999 |
Years 2000 through 2035 |
0 through 35, 2000 through 2035 |
<datevalue>
──┬─<month>── / ──<day>── / ──<year>─┬─────────────────────────────────┤ └─<Julian date>────────────────────┘
A date is specified as integers, either in the format (MM/DD/YY or MM/DD/YYY) or as a Julian date, (YYDDD or YYYYDDD) (for dates following December 31, 1999), as follows:
Attribute |
Value Range |
---|---|
MM |
01 through 12 |
DD |
01 through 31 |
YY |
0 through 35, 70 through 99 |
YYYY |
1970 through 2035 |
DDD |
1 through 366 |
<host name>
┌◄──────────────────────────────┐ ──┴─/17\─<alphanumeric character>─┴────────────────────────────────────┤
A host name is a unique name that identifies each host in a BNA or Transmission Control Protocol/Internet Protocol (TCP/IP) network.
<IP address>
An IP address is a numerical designator that uniquely identifies a host within a specific local area network (LAN) or wide area network (WAN) that forms part of an Internet Protocol (IP) network. An IP address is entered as an unquoted string; both IPv4 and IPv6 formats are accepted.
──┬─<IPv4 address>─────────┬───────────────────────────────────────────┤ ├─<IPv6 address>─────────┤ ├─<IP address prefix>────┤ └─<partial IPv4 address>─┘
<IP address prefix>
──┬─<IPv4 address>─┬─ / ──<prefix length>──────────────────────────────┤ └─<IPv6 address>─┘
An IPv4 address contains four numbers in the range 0 through 255, separated by periods.
An IPv6 address contains eight hexadecimal numbers in the range 0 through FFFF, separated by colons. Consecutive nodes of 0000 can be eliminated, leaving a double colon (::). Only one double colon can occur in an address.
A prefix length is a number in the range 1 through 32 for IPv4 and 1 through 128 for IPv6. It represents the leftmost valid bits in the address it follows.
A partial IPv4 address contains up to three numbers in the range 0 through 255, separated by periods.
When an IP address is stored in the USERDATAFILE, it is stored in a normalized format, using the same format in which the YOURIPADDRESS file attribute is returned. This format is required for matching purposes.
Previously, IPv4 addresses were stored in the USERDATAFILE as entered through the MAKEUSER utility. Therefore, the address 192.168.016.002 was stored as 192.168.016.002 rather than as 192.168.16.2. To allow such addresses to be deleted, you must set the OLDRU control option. See the OLDRU topic for more information about the OLDRU option.
Note: | Partial IPv4 addresses are deprecated in favor of IP address prefixes. |
<domain name>
A domain name is an identifier for directing queries relating to addressing in an Internet Protocol (IP) network. A domain name uniquely identifies a host system or host-dependent entity in terms of the logical tree structure that defines the domain name space. The name is written in the form of a unquoted series of nodes, progressing from local to general. For example, HOSTA.SITENY.COINC.COM is a hypothetical domain name that uniquely identifies the host HOSTA within the Internet network.
A domain name can be either of the following types:
-
<complete domain name>
A fully specified domain name identifies a unique host in an IP network.
-
<partial domain name>
A partially specified domain name is a domain name that does not identify a particular host, but has a number of different hosts that are members of the domain identified by the partially specified domain name. When specifying a partially specified domain name in a REMOTEUSER command, the remote user entry affects all hosts that are members of the domain specified by the partial domain name.