Title : A Guide to Data General's AOS/VS Part I
Author : Herd Beast
==Phrack Magazine==
Volume Four, Issue Forty-Four, File 14 of 27
()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()
A Guide to Data General Corporation's
AOS/VS System
PART I
by Herd Beast
INTRODUCTION
~~~~~~~~~~~
This file is a full (as full as such a file can get) guide to the AOS/VS
system. The main reason for writing it is that from what I've seen,
there is practically no info (in the form of files or otherwise) about
it. I won't say I'm the only one who knows anything about it, but I had
a hell of a time getting any sort of help when I started hacking these
systems (I didn't get that help, in case you were wondering, and wrote
this file all by myself 'cause I'm a MAN! Hahaha! <snort> <snort>).
I will explain a little about AOS/VS and then explain some of the
commands and security features in it. This file is not a buffer of any
help facility, although much information can and will be found in the
help facility.
I can be contacted (hopefully) at [email protected]. If you
want a nice start, and a front page on Newsweek, some Texaco ("Star of
the American Road") systems run AOS/VS.
I cannot, will not, and do not assume liability for ANY of the effects
of the use of this file. Also, I cannot guarantee that EVERYTHING will
work EVERYWHERE, so treat this file as a reference. This file by no
means covers everything about AOS/VS.
IDENTIFYING THE SYSTEM
~~~~~~~~~~~~~~~~~~~~~
Should you just fall at the system prompt, you might mistake it for a
VMS. However, blank prompts like that are rare. An AOS/VS will
identify itself like this: (this and all other buffered info in this
file are from an AOS/VS II with CLI32. Only the best for Phrack)
AOS/VS II 2.20.00.12 / EXEC-32 2.20.00.07 31-May-93 22:51:25 @CON177
Username:
Password:
Another thing different will be the incorrect login message:
Invalid username - password pair
The header line lists the system version, current time/date and the console
you are using.
When you reach the maximum incorrect logins defined in the system, it
will show the line below and disconnect:
Too many attempts, console locking for 10 seconds
When you do succeed to log on, the system will display:
------
Copyright (C) Data General Corporation, 1980 - 1992
All rights reserved.
Licensed material -- property of Data General Corporation
This software is made available solely pursuant to the
terms of a DGC license agreement which governs its use.
((NOTE: Or something else. This is the default))
--------
Most recent logon 1-Jan-93 10:10:01
Very clear. Before you do anything, type CHARACTERISTICS. You will
then get output like this:
/605X/LPP=24/CPL=80/BREAK=BMOB/TCC=40000/TCD=5000/TDW=1000/THC=2000/TLT=2000
/ON/ST/EB0/ULC/WRP/CTD
/OFF/SFF/EPI/8BT/SPO/RAF/RAT/RAC/NAS/OTT/EOL/UCO/MRI/FF/EB1/PM/NRM/MOD/TO/TSP/
C/FKT/VAL/HOFC/SHR/OFC/IFC/16B/ACC/SRDS/XLT/AUTOBAUD/CALLOUT/MDUA/HDPX/SMCD/RT
D/HIFC/G1G0/DKHW/NLX
Look for "/NAS". It stands for non ANSI standard, which means that if
you are using ANSI (probably you are), you needs to issue
CHARACTERISTICS/OFF/NAS, should you find "/NAS" listed after "/ON".
Upon logging off from the system (BYE), you will see:
AOS/VS II CLI Terminating 1-JAN-93 11:11:01
Process 180 Terminated
Elapsed Time 0:16:26, CPU Time 0:00:02.447, I/O Blocks 281
(Other console jobs, same USERNAME -- 16)
User 'HBT' logged off @CON228 1-Jan-93 11:11:01
SYSTEM DEFAULTS
~~~~~~~~~~~~~~
These are accounts I usually found existing. As usual, they are really
similar to those of any other system.
USERNAME
--------
((Privileged accounts))
OP EXEC default username
SYSMGR System manager
CEO_MGR If the system is running CEO
OPER
OPERATOR
((Regular accounts))
CEO.xxxxx If the system is running CEO, a CEO
user, xxxxx being his number.
As for password guessing, well, it's all been said. Try the username,
with some modification, you might get in. As dumb as it sounds, yes,
people do have weak passwords, even today, although not everywhere.
SYSTEM STRUCTURE
~~~~~~~~~~~~~~~
In this section I'll try to describe the real basics of AOS/VS. I will
describe a few commands HERE, and not under "Command List", these
commands will be the basic commands: change directory, list files, etc,
needed to survive in any system.
The AOS "shell" is called CLI (Command Line Interpreter). There are
two versions of CLI, CLI16 and CLI32, with CLI32 being more advanced.
The CLI version affects the system prompt, the way commands are handled
by the system and by the user, and more. For example, some command
switches do not exist under CLI16 (unless very important, I omitted
switches that work only under CLI32 from this file).
Here are the privilege levels available under AOS/VS:
CLI16 PROMPT CLI32 PROMPT PRIVILEGES MODES
-------------+--------------+--------------------------
) ) None
Sm) System Manager
+) Sp) Superprocess
*) Su) Superuser
SmSp) System Manager and Superprocess
SmSu) System Manager and Superuser
#) SpSu) Superprocess and Superuser
SmSpSu) System Manager, Superprocess, Superuser
AOS/VS doesn't grant privileges upon logon. A user's profile may state
the user can access privilege level So-And-So, and if the user later
needs that level, he calls upon a SUPER utility to grant him that
level. This is the place to explain how several different utilities
work. OPERATOR grants the user the ability to access diskettes in dump
or load sessions (see the section titled "System Commands") in sequential
order, instead of accessing them one by one. SUPERUSER turns off all
access checking, enabling the user to do anything with any file on the
system. SUPERPROCESS gives the user the ability to terminate, block,
unblock, or change priorities of any process on the system. The last
command, PRIVILEGE, which is available only under CLI32, enables the user
to set both SUPERUSER and SUPERPROCESS access. It also offers the only
way to set SYSTEMMANAGER access, which is required for operations like
changing time or date.
Command are executed by calling their names, or any part of their name
that only fits them. For example, SUPERUSER can be abbreviated as
SUPERU. It is important to remember that command switches MUST follow
the command without any space, or else the command will try to process
the switches! For example, CHARACTERISTICS /OFF/NAS will result in an
"Error: Illegal filename character characteristics,/off/nas".
The root directory directory is called ':'. Any other directories are
under it, for example ':OUT' and ':OUT:RALF'. If, for example, you FTP
into an AOS/VS and use "cd /" you will be moved in ':'. If you use "cd
/out/ralf" you will be moved into ':OUT:RALF'. To make this much more
clearer (right):
:
HBT
|
|
TEXT
/ \
PHRACK SEX
Legal characters in file or directory names are all the alphabet and
numbers, plus '$', '_', '.' and '?'.
Moving from directory to directory is done by using the "DIRECTORY"
command. Without any arguments, DIRECTORY shows the current path. With
an argument, DIRECTORY changes to that directory.
DIRECTORY [directory]
---------------------
/I Changes to the initial directory
/I path Changes the initial directory to "path"
/P Changes to the previous directory
To list files in a directory, use "FILESTATUS". Without arguments,
FILESTATUS lists files in the current directory. With a path argument,
FILESTATUS lists file in that path.
FILESTATUS [directory]
----------------------
/[AFTER|BEFORE]/[TCR|TLA|TLM]=date and/or time
Shows files matching the selection date or time. The
selections are: time created (TCR); time last accessed (TLA);
and time last modified (TLM). The difference between accessed
and modified is pretty clear, for example if the file is an
executable. The date/time format is: for TIME - hour-minute-sec
(xx-xx-xx); for DATE - day-month-year (xx-xxx-xx); for BOTH -
dd-mmm-yy:hh:mm:ss. Example command lines will be
FILESTATUS/AFTER/TCR=11 Created after 11 AM
FILESTATUS/BEFORE/TLM=01-JAN-90 Modified before 01/01 1990
FILESTATUS/AFTER/TLA=01-JAN-90:11 Accessed after 11 AM,
01/01, 1990
/ASSORTMENT
Normally, FILESTATUS output is just file name. With
/ASSORTMENT, FILESTATUS shows file type, time/date of
creation, and length in bytes. Similar to Unix, if the file
is a link, the file type is set to LNK and FILESTATUS shows
its path.
/COUNT Tells how many files are in the directory. [CLI32]
/[DCR|DLA|DLM]
Shows date of creation (DCR); date last accessed (DLA); and
date last modified (DLM).
/LENGTH Displays file length in bytes.
/LINKNAME
If the file is a link, FILESTATUS displays the information
about the file that it's linked too. For example, if BOB is
linked to RON, FILESTATUS/LINKNAME BOB would display RON's
details. Otherwise, nothing happens.
/TYPE=[\]type
Displays files of type, or all files not of that type (if
\type) was used. See below for valid file types.
/UDA If the file has a UDA (user data area), its presence is displayed.
The CLI's wildcards (sort of), are '=', '^', ':' and '@. '=' means the
current directory. '^' means the parent directory. ':' is (as already
said) the root directory. '@' means the devices directory (where
consoles, tape drives, modems, etc are. Similar to /dev on Unix). Note
that when talking about directories, the ':' is already included. For
example, if you're in :UDD:HBT:TEXT, and want to move to :UDD:HBT:BIN,
you'd type DIRECTORY ^BIN, and not DIRECTORY ^:BIN. File wildcards are
'+', which is equivalent to '*' at DOS, and '#' which is equivalent to
'*.*' at DOS. For example, FILE +.CLI will show all the files whose
names end with ".CLI"; FILE :UDD:# will display all the files in UDD
(which won't happen if you just issue FILE :UDD -- in that case, you'll
see only information about the directory UDD, and not the files within
it).
As with Unix, you can enter more than one command on a line if you
separate the commands with a ';' (a semicolon). If you need more than a
line for your commands, type an '&' before pressing Return, and the CLI
will just keep on reading, instead of processing the command line and
try to run it. This goes ONLY for a sequence like this: "&<Return>", an
'&' anywhere else acts just like any other character.
There are several control characters the CLI takes and uses:
CONTROL CHAR WHAT IT DOES
------------------+-------------------------------
Ctrl-C Begins a Ctrl char sequence.
Ctrl-D End of file.
Ctrl-L Clear screen.
Ctrl-P Don't interpret the following
character in any special way.
Ctrl-S Stops output to the terminal.
Ctrl-Q Resumes output to the terminal.
Ctrl-U Cancel (delete) current input line.
Ctrl-C Ctrl-A Interrupt current process.
Ctrl-C Ctrl-B Terminates current process.
Ctrl-C Ctrl-C Empties the input buffer.
Ctrl-C Ctrl-E Terminates current process and
create a break file (where
termination message is stored).
If the CLI is run with a /NOCA switch, it will ignore Ctrl-C Ctrl-A
sequences, so if put in the start of a macro file, it won't allow you to
break that macro and enter the CLI.
AOS/VS had many file types. File types are three letter acronyms
(although not always) for the file; the same way DOS and VMS have
extensions, the file type controls what the file is (it can have any
extension in its name). File types have a decimal numbers assigned to
them, as well. There are 70 file types, although the operating
system reserves space for 128. The user can define his own file types.
These are some of the he AOS/VS file types:
TYPE NUMBER TYPECODE MEANING
-------------+------------+-----------------
All these types / 11 LDU Logical disk unit
are directories -| 12 CPD Control point directory
\ 10 DIR Directory
0 LNK Link
68 TXT Text
1 SDF System data file
2 MTF Magnetic tape file
13 MTV Magnetic tape volume
22 MTU Magnetic tape unit
49 CON Console
51 RMA Remote host (RMA)
52 HST Remote host (X.25 SVC)
54 PVC Remote host (X.25 PVC)
64 UDF User data file
69 LOG System log file
74 PRV AOS/VS program file
75 WRD Word processing file
87 UNX Unix file (created on a Unix)
95 SPD Spreadsheet file
104 PIP Pipe
105 TTX Teletex file
"Generic files" are actually pointers that help using devices and files.
For example, the @NULL generic file functions like /dev/null on Unix.
Here are the generic files:
@CONSOLE The process' (user's) console.
@DATA A long file created by the user that will be used as
data by a program. @DATA is set using DATAFILE.
@INPUT A short file created by the user that will be used
as input by a program. @INPUT is set using
PROCESS/INPUT=.
@NULL Well, null.
@LIST A long output file that will be used as a program's
output. @LIST is set using LISTFILE.
@OUTPUT A short output file for a program. @OUTPUT is set
using PROCESS/OUTPUT=.
When a program is run, it will sometime try to open one of these generic
files. If they're not set, it will fail on error 21 (non existent
file). But if the file is set, it can use it. So, for example, you can
use PROCESS/OUTPUT=@CONSOLE PROGRAM for output to go to you, or
PROCESS/OUTPUT=OUT_FILE PROGRAM for it to go to OUT_FILE.
"Device files" are files the connect to hardware parts, such as modems,
printers, tapes, diskette drives, FAX machines, etc. In due time, a
program called EXEC makes a connection between processes and devices and
utilizes those devices (see the section titled "The 'EXEC' Program").
Some devices are also used by the backup related programs DUMP and LOAD,
and more. Some of these are:
@MTB0:x The magnetic tape unit #0, x being a dumpfile on the
tape (x starts from 0).
@DPJ A diskette device name.
@LFD A generic labeled diskette file name.
The equivalent of a PATH (usually environment variable) in other systems
is called SEARCHLIST in AOS/VS. When you call a command, or ask for
help, the CLI looks through your SEARCHLIST for the files. So, assuming
you typed HELP MODEM, and somewhere in your searchlist there exists a
file called MODEM.CLI, HELP will show you,
modem - Macro, File :UTIL:COMM:MODEM.CLI
The same goes for other commands, even TYPE (TYPE MODEM.CLI from
:UDD:HBT, if :UTIL:COMM is in your searchlist and there's no MODEM.CLI
in :UDD:HBT will work).
To display your searchlist, just use plain SEARCHLIST. To change it,
use SEARCHLIST path,path,path ...
It's possible to set a password for your current CLI session. This
password is not the password used upon login! It's a password the user
sets to protect his session. He then types LOCK, and from then, anyone
wishing to use the user's CLI (from the user's console), must enter the
password first. Legal passwords are up to 32 characters long, not
including Ctrl characters.
The CLI offers several levels to the user. It starts on the highest
level, 0, and the user may create other level, and use POP to move up a
level, and PUSH to go down a level. When a user POPs to a level,
the CLI environment of the older (higher) level remains (the environment
of the level he was in until that time is therefore changed). When he
PUSHes, the current level's environment is copied to the lower level.
To display the current CLI level, use LEVEL. To display the level's
environment, use CURRENT. To display an upper level's environment
(except when at the highest level), use PREVIOUS.
When you want to print a file, or run something in the background, you
have to submit it as a job. The submit a printing job, use the QPRINT
command (will print the file). To submit a batch job, which is for
executing a command, use QBATCH (for example, QBATCH MASM ASMPROG).
AOS/VS had a facility called "queues", managed by the EXEC program (see
"The 'EXEC' Program"). A queue is a place where file transfer, batch,
and printing jobs are stored until the right process can take them and
execute them. The standard queues are:
QUEUE NAME JOB TYPE CONTENTS
--------------+------------+----------------------------------
BATCH_INPUT Batch Batch input files.
Submitted by QBATCH or QSUBMIT.
BATCH_OUTPUT Printing Output files from finished
batch jobs (usually sent to a
line printer).
BATCH_LIST Printing List files from finished batch
jobs (usually sent to a line
printer).
((Batch jobs are submitted through QBATCH.))
LPT Printing Print jobs submitted by QSUBMIT.
MOUNTQ Mount Tape mount requests.
Submitted by MOUNT.
After a job has been submitted, use QDISPLAY to show its status. Use
QHOLD to hold jobs and QUNHOLD to release them. Last, to display the
status of all queues, use QDISPLAY as well.
AOS/VS also has an extensive help facility. For help on broad topics,
use HELP (to list topics) and then HELP *TOPIC. For help on system
commands, use HELP COMMAND (for a list of switches) or HELP/V COMMAND for
more details.
CLI MACRO PROGRAMMING
~~~~~~~~~~~~~~~~~~~~
Macro filenames usually end with ".CLI" are usually text files (filetype
TXT). A macro is a file that will be executed when called (adding .CLI
to the name when calling isn't necessary), and perform the commands (or
other macros) in it. If the macro matches the name of a CLI command,
the macro must be called together with the .CLI part of its name. Macros
expand arguments in the following way:
Range Arguments (like filenames):
%x% Argument number x, with its switches. %0% is the macro's
name.
%-% All the arguments, with their switches, except for %0%.
%x-y,i% Arguments x through y, in jumps of i. If x or i are missing,
the CLI assumes 1. If y is omitted, 32767 is assumed. For
example, if the arguments were "1 2 3 4 5 6 7", a %2-6,2% call
expands to "2 4 6".
Switch Arguments:
%x/% All the switches of argument x.
%x\% Argument x, without its switches.
%x/y% Argument x, with switch number y.
%x/y=% The value of argument's x switch number y.
%x\y% All the switches of argument x, including their values, except
for switch number y.
Conditionals are used in the form of [CONDITIONAL,ARGS]. If a
conditional returns TRUE, the CLI executes everything after it until it
reaches an ELSE or an END. Otherwise, it skips to an ELSE or an END
(basic programming).
!EQUAL True if both arguments equal alphabetically.
!NEQUAL True if both arguments don't equal alphabetically.
!UEQ True if both arguments equal numerically.
These are called pseudo macros, and are usually built like conditionals,
although sometimes they just substitute for a part of the environment.
There are about 60 of them, but I'll only list a selected few for
brevity.
[!ACL path] Expands for the ACL of path.
[!ASCII octnum] Expands to the ASCII character with the octnum octal
number. For example, newline is octal 12.
[!CLI] Expands to CLI32 or CLI16, according to the CLI.
[!DATE] Date, like 01-Jan-93.
[!SYSTEM] Expands to the type of OS.
[!SEARCHLIST] Expands to the search list.
[!LEVEL] Expands to the current CLI level.
[!CLI] Expands to the CLI type.
[!EXPLODE args] Puts a comma between each pair of character in args.
When used with STRING, in converts spaces and tabs
too. When used with WRITE, in converts into space.
[!LISTFILE] Expands to the path of the listfile.
[!USERNAME] Expands to the username of the person running the
macro.
[!LOGON] Returns CONSOLE if logged on to a terminal or BATCH
if logged in on a batch stream (only works for EXEC
logons).
[!DATAFILE] Expands to the path of the datafile.
[!HID [host]] Returns the host ID. With [host] return the host ID
of [host].
[!HOST [host]] Returns the host name.
[!STRING] Expands to the value of the CLI string.
A more complex pseudo macro is !READ:
[!READ[/args] text]
!READ prints text to the output and then expands to what was received
from the input (which is considered finished when a newline is
received). !READ's args are functional only under CLI32 and are:
/EOF=str
The string that will be returned if EOF is met.
/FILEID=file
Reads from file instead of @OUTPUT. The file must be already
opened using OPEN.
/LENGTH=x
Read until x characters were typed.
/S
Discards all typed after a semicolon (';') or a left bracket
('['). Otherwise, that text must be a valid CLI command or
macro, or a pseudo macro or macro ending with a right bracket
if following the left bracket.
Note that all pseudo macros, including !READ can be used at the command
line and not just in CLI macro files.
Here's an example:
COMMENT -------------------------------------------------
COMMENT Examples of the use of conditionals and arguments
COMMENT in macros.
COMMENT This macro was invoked like this:
COMMENT HMAC 9 0 000
COMMENT -------------------------------------------------
[!EQUAL,%1%,]
WRITE,,,,Execute with arguments please!
[!ELSE]
[!EQUAL,%2%,%3%]
WRITE,,,,%2% and %3% do match ALPHABETICALLY.
[!ELSE]
WRITE,,,,%2% and %3% don't match ALPHABETICALLY.
[!END]
[!UEQ,%2%,%3]
WRITE,,,,%2% and %3% do match NUMERICALLY.
[!ELSE]
WRITE,,,,%2% and %3% don't match ALPHABETICALLY.
[!END]
[!UEQ,%1%,%2%]
WRITE,,,,%1% and %2% do match NUMERICALLY.
[!ELSE]
WRITE,,,,%1% and %2% don't match NUMERICALLY.
[!END]
[!END]
COMMENT -------------------------------------------------
COMMENT The output would be:
COMMENT 0 and 000 don't match ALPHABETICALLY.
COMMENT 0 and 000 do match NUMERICALLY.
COMMENT 9 and 0 don't math NUMERICALLY.
COMMENT -------------------------------------------------
[!EQUAL,[!READ What's your name?,,],HBT]
WRITE,,,,[!ASCII 12]You're HBT.
[!ELSE]
WRITE,,,,[!ASCII 12]You're not HBT.
[!END]
[!EQUAL,[!CLI],CLI16]
WRITE,,,,[!ASCII 12]I was going to show you something else.
WRITE,,,,Too bad you're using CLI16 which won't let READ take arguments.
[!ELSE]
STRING [!READ/LENGTH=1 Continue? (Y/N)]
[!EQUAL,[!STRING],N]
WRITE,,,,[!ASCII 12]Good man [!USERNAME].
[!ELSE]
[!EQUAL,[!STRING],Y]
WRITE,,,,[!ASCII 12]Too bad Mister I-Use-[!SYSTEM]
[!ELSE]
WRITE,,,,[!ASCII 12]Learn English guy.
[!END]
[!END]
[!END]
WRITE,,,,Thank you for using %0%.
AOS/VS can also be programmed in 16 bit and 32 bit Assembly (and
compiled using MASM), BASIC, Fortran, C, Pascal and probably others.
This second program is actually quite simple. I do not even read the
UPF type file directly; I just feed text into the PREDITOR (see the next
section).
COMMENT -------------------------------------------------
COMMENT Delete the little help screen if you are under
COMMENT CLI16. Or just run CLI32.
COMMENT -------------------------------------------------
[!EQUAL,%1%,]
WRITE,,,,[!ASCII 12]Format is: %0%/A NAME
WRITE,,,,,,,,,,,,or /L NAME
[!ELSE]
[!EQUAL,%1%,]
WRITE,,,,,,,Which user exactly?
[!ELSE]
[!NEQUAL,%0/L%,]
WRITE/L=?USER.TMP L
WRITE/L=?USER.TMP %1%
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP b
PROC/DEF/IOC/IN=?USER.TMP/BLOCK PREDITOR
DEL ?USER.TMP
[!ELSE]
WRITE/L=?USER.TMP c
WRITE/L=?USER.TMP %1%
WRITE/L=?USER.TMP y
WRITE/L=?USER.TMP %1%
WRITE/L=?USER.TMP n
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP
WRITE/L=?USER.TMP b
PROC/DEF/IOC/IN=?USER.TMP/BLOCK PREDITOR
DEL ?USER.TMP
[!END]
[!END]
[!END]
SYSTEM SECURITY
~~~~~~~~~~~~~~
The AOS/VS login is performed in the following manner.
Every username has a file associated with it in the :UPD directory.
That file is its profile, and contains the account profile. Once the
user has entered a correct username/password pair, the operating system
loads the user's profile (which includes how much memory and disk space
the user is allowed to use and the user's allowed privileges) into its
internal tables. Several privileges which can be set are the initial
user directory and initial program that will be executed upon completion
of the login (eg, the CLI); how many processes the user may run; what
process priorities the user has; and what SUPER privileges the user has
(eg, SUPERUSER, SUPERPROCESS).
As mentioned, if the user has SUPER privileges, he must activate them
himself (using the right command, or PRIVILEGE if using CLI32).
An important thing to know about password security is that if the system
is running Data General's XODIAC networking software, user's might not
be able to access remote machines through the network if the passwords
are encrypted. Therefore, if you are on a XODIAC host, chances are the
passwords won't be encrypted. The ACL of the :UPD directory doesn't let
every user can access it, though.
Passwords are changed by the user by pressing Ctrl-L immediately after
entering the password at login. This will only work for users that have
the privilege to set their own passwords. Legal passwords are 6 to 15
characters.
This the format (the fields) of the AOS/VS profiles:
* Password
* Initial program To be executed after login
* Initial IPC file The LOGON file
* Initial directory
* Default user priority The user's process priority
* Maximum queue priority The highest queue priority which the user can
set for a batch job. The lower the number, the
higher the priority (1-255).
* Unlimited son processes
* Maximum son processes If the above option if off.
* Disk quota in blocks
* Logical address space Allows the user to control the size of the
(batch) logical address space in which his programs
will be executed. If -1, the system sets.
* Minimum working set The minimum number of pages a user can have in
(batch) their active processes. If -1, the system
determines the value according to the program's
demands.
* Maximum working set
(batch)
* Logical address space
(non batch)
* Minimum working set
(non batch)
* Maximum working set
(non batch)
* Encrypt password
* Superuser
* Superprocess
* Use IPC Allows the user to make IPC calls.
* Use console
* Use batch
* Use virtual console Virtual consoles are created by networked
logins.
* Use modem A modem is a console with the characteristic of
/MOD on.
* Change password
* Change priority
* Change type
* Change username Allows user to become another username without
actually logging in into that user's profile.
* Access devices Allows user to directly issue Assembly
instructions to devices.
* Create without block Allows the user to start a son process without
blocking the father process.
* System manager privileges
* Access local devices remotely
* Change addr. space type Allows 32 bit processes to be called from 16
bit processes (usually on, since there is a
CLI16, but most programs are 32 bit).
* Change working set limit Allows user to change the working set size of
programs.
* Comments
User profiles can be created, deleted, read, and modified from the
AOS/VS User Profile Editor: PREDITOR. PREDITOR gives you a prompt
from which you can read any account and the values of its fields.
PREDITOR does not, however, display the password field, whether it's
encrypted or not -- just an indication of what the Encrypt Password
field is set to. This is easily overcome, since if you can execute the
PREDITOR, you can just as well SED the :UPD:USERNAME file and look at
the password (it's right up there) -- PREDITOR can only be loaded by a
user that can become Superuser.
Legal commands for the PREDITOR are Create, Delete, Edit, List,
Question, Rename, and Use. They can all be abbreviated to their first
letter. When CREATE is called, it first asks if you want to set the
password, and depending on the answer asks you to enter a password. It
then queries about the other fields, giving you three options (usually):
YES, NO, and NL, the system's default. DELETE just asks for a
confirmation on deleting the user, and also his home directory. EDIT is
just like CREATE, allowing you to modify any field in the user's profile
(including the password). LIST lists the status of every field in the
profile (by using a template profile, such as '+', one could view every
user on the system). QUESTION sets the system defaults, which will later
be used by CREATE and EDIT. RENAME allows you to rename a user to another
name, and USE changes the value in the !DEFAULT variable (your username).
Logins are handled by a program called EXEC (that's what the EXEC-32
x.xx.xx.xx part in the login message means). EXEC just reads the
username/password and if correct, logs the user in. After EXEC has been
completed, the Initial Program from the profile is run. The commands for
logins are CONTROL @EXEC DISABLE and ENABLE. See "The 'EXEC' Program"
for more information about EXEC.
When using ENABLE, the console receives login capabilities; apart from
actually logging in, EXEC will also display :UTIL:LOGON.BANNER.SCREEN.
ENABLE
------
/ALL Gives all the consoles the said capabilities.
/TRIES=x Sets maximum login tries to x.
/STOP This will have the same result as if an operator issued
CONTROL @EXEC DISABLE <console> after the maximum login tries
was exceeded.
/CONTINUE
Lock console for 10 seconds and then continue.
/FORCE Change the other parameters while the console is enabled.
SYSTEM COMMANDS
~~~~~~~~~~~~~~
Every command has its own switches. However, all commands accept the
/1, /2, /L and /Q switches (and /STR=string and /ESTR=string under
/CLI32).
/1=ERROR|ABORT|IGNORE|WARNING
/2=WARNING|ERROR|ABORT|IGNORE
Controls what the program will do under a class 1 or 2 error.
The first option listed is the default. ERROR displays
"Error: something" and stops command execution. ABORT aborts
the command. IGNORE ignores the error, and WARNING displays
"Warning: something" and continues with the command.
/L=path The command will store all its output in 'path'.
/Q Display output in columns with on space separating them (an
exception to this switch is TYPE).
/STR=string
/ESTR=string
The command will store its output in the 'string' string
variable, which can be viewed later using the STRING command.
If there is no output or the command is TYPE or COPY the string
is set to null. /ESTR is for error output, /STR is for
regular output.
Some important AOS/VS commands are listed next. I included information
about the DUMP and LOAD commands for information purposes only; as they
require diskettes, I don't think you'll use them daily. However, I
didn't go into diskette handling, etc in detail.
Sorted alphabetically:
ACL <path>
----------
ACL is a utility to control the ACL (Access Control List). An ACL is
just what is sounds like: it includes a list of usernames and what kind
of access they have to the file. ACL used one-letter access code, as
follows.
LETTER TYPE/FILE TYPE/DIR
-----------+---------------------------------+------------------------
A(ppend) Append to a file. Create files in the
directory or move files
into it.
E(xecute) Execute the program. Allows access to
the directory
(changing into it,
reading, etc).
O(wner) Allows the user to change the ACL or erase the file/dir.
R(ead) Read a file. List the files in
the directory.
W(rite) Write to a file. Create, delete or
change ACLs of files
in the directory.
The default ACL for any file is OWARE for the user.
ACL <path> shows the ACL. To modify the ACL:
ACL <path> [user,access] [...]
Access being one of the OWARE group, for example:
ACL PHRACK43 HBT,OWARE (There is NO space between 'username' and
'access'!)
ACL PHRACK42 HBT,OWARE +,R (In this example, the '+' template was
used, '+' standing for all the users. This means that HBT has full
access to the file, while the rest of the users can only read it.
If templates are used, they should be used last, with specific usernames
before them.)
Under CLI32 group access is also available in the format of:
ACL <path> [user:group,access] [...]
Switches:
/[BEFORE|AFTER]/[TCR|TLA|TLM]=date and/or time
/TYPE=type
These function just like the same switches in FILESTATUS.
/D Use the default settings (OWARE). Defaults may be changed
using DEFCAL.
/K Delete ACL - no one but a superuser will be able to access the
file.
/V Show each file changed.
BROWSE
------
BROWSE is a program to browse (view, search, scroll in any direction)
through any number of ASCII or binary files. While in BROWSE help is
available by using 'H' or '?'. BROWSE starts at the end of file and
lets you move backward (but you can change this).
No further details are included since BROWSE can run only on CRT
terminals (the actual terminals the employees usually sit at), and I
didn't have the pleasure of using one of these (nor do I think will the
information be of any use).
CHARACTERISTICS
---------------
CHARACTERISTICS displays or sets the characteristics of a device
attached to a terminal (not a printer, for example). To change
characteristics of a device permanently and not just for the current CLI
level, you must be PID 2 (local console) or have SYSTEMMANAGER privilege
on. To this, you must use EXEC first to DISABLE the device, use
CHARACTERISTICS, and then use EXEC to ENABLE the device (see the section
titled "The 'EXEC' Program"). The CHARACTERISTICS switch will be
/DEFAULT/[default device characteristics] device. "device" for example,
is @CON100.
CHARACTERISTICS switches look like this:
CHARACTERISTICS /[ON|OFF]/SWITCH. It's self explanatory.
/8BT
Interpret all 8 bits of an ASCII char as data. (For use with
8 bit character sets, of course.)
/16B For Asian language translation.
/4010I Device is a DG model 4010I terminal.
/6012 Device is a DG model 6012 terminal.
/605X Device is a DG DASHER model 6052, 6053, D210 or D211 terminal.
/6130 Device is a DG DASHER model 6130, D410 or D460 terminal.
/ACC Line requires modem access control (only users with the Use
Modem privilege may login).
/AUTOBAUD
The system will automatically determine the terminal's baud
(it's bps, damnit!) rate.
/BAUD=b
Sets a device's bps rate to b. b can be 45.5, 50, 75, 110,
134.5, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200,
9600, 19200, 38400.
/BREAK=[BMOB|CAOB|CBOB|CFOB|DCOB]
How the system will respond to a BREAK:
BMOB (default) Clears binary mode and restore normal character
handling
CAOB Issues Ctrl-C Ctrl-A
CBOB Issues Ctrl-C Ctrl-B
CFOB Issues Ctrl-C Ctrl-F
DCOB Disconnect user
/CALLOUT Allow host initiated calls (outside calls).
/CHARLEN=[5|6|7|8]
Character length in bits, *including* stop bit.
/CONTYPE=connection type
Connection types are:
BITMAPPED Windowing terminal
DIRECT Standard connection
PAD From PAD hardware
PBX From a PBX controller
PCVT From a DG/PC*i controller
TERMSERVER From terminal server hardware
TELNET Through telnet
VIRTUAL Through a virtual terminal
/CPL=[8-255]
The maximum number of characters per line.
/CTD Disconnect line if the user doesn't respond to login after a
while.
/DEFAULT Displays the default characteristics of the terminal.
/DKHW If OFF, and /16B and /8BT are on, enable support for Chinese
characters.
/EB0 Specify the echoing of control characters.
/EB1 When both off, nothing is echoed.
When EB0 is on and EB1 is off, echos ^char.
When EB0 is off, and EB1 is on, echos exactly what was entered.
/EOL Don't output a newline if the number of characters in input
has exceeded the line length.
/ESC Interpret an escape as a Ctrl-C Ctrl-A interrupt.
/FF Output a formfeed when the device opens.
/G1G0 Enables the G1G0 character set (Taiwanese characters). /16B
and /8BT must also be ON.
/HARDCOPY Device is a printing terminal.
/HDPX Provide half duplex support for a modem line.
/HIFC Use CTS/RTS input flow control, cannot be on if /HDPX or /MOD are
on.
/HOFC Use CTS/RTS output flow control.
/IFC Enables XON/XOFF to control terminal input (the Ctrl-S/Ctrl-Q
control characters).
/LEVEL=x Sets characteristics to the same as those in CLI level #x.
/LPP=[4-255]
The number of lines per page.
/MDUA Allows direct access to the modem on the line (/MOD must also
be set). You can then use ?WRITE to send commands to the
modem. See the section titled "CLI Macro Programming".
/MOD Use modem interface on this line.
/MRI Monitor line for rings.
/NAS Device is non ANSI standard.
/NLX Enable Asian natural language translation. /16B and /8BT must
also be ON.
/NRM Suppress messages (from SEND) not sent from PID 2 (something
like "mesg n" in Unix).
/OFC XON/XOFF output flow control.
/OTT Convert characters sequence "~}" to an escape (use with VT100
emulation, or how will you escape).
/P Sets the characteristics to be the same as those used on the
previous CLI level.
/PARITY=[ODD|EVEN|NONE]
Default is NONE.
/PM Enable page mode, which pauses output every LPP lines (as set
with the /LPP switch, default is 24). Ctrl-Q resumes.
/RESET Reset characteristics to the default value.
/RTSCD Check carrier detect before processing RTS signals. /HDPX
must be ON.
/SFF Simulate formfeeds.
/SMCD Ignore carrier detect on modem lines. /MOD and must be ON,
and this must be set if /HPDX is ON.
/ST Simulate a tab every 8 columns.
/STOPBITS=[1|1.5|2]
/TCC=[time to wait for a carrier detect signal after the modem connect]
Default is 40000 ms.
/TCD=[time to wait for a carrier detect signal to return after it drops]
Default is 5000 ms.
/TDW=[delay between modem connect and the first I/O]
Default is 2000 ms.
/THC=[the amount of time after disconnecting for the modem to settle]
Default is 10000 ms.
/TLT=[time to wait between sending the last char and dropping RTS]
Default is 0 ms. /HPDX must be ON.
/TO Enable timeouts.
/UCO Convert lowercase input to uppercase when displaying it.
/ULC Accept both uppercase and lowercase as input.
/WRP Wrap on a long line.
/XLT Enable VT100 terminal emulation.
Knowledge is knowledge, but AT&T is something different. Here is how
you'd open a modem line for calling out: (You must be SYSTEMMANAGER)
CLEARDEVICE/RXON @CON999
CONTROL @EXEC DISABLE @CON999
CHARACTERISTICS/ON/MOD/MDUA/CTD/CALLOUT @CON999
CONTROL @EXEC ENABLE @CON999
((And here's how you put it back))
CLEARDEVICE/RXON @CON999
CONTROL @EXEC DISABLE @CON999
CHARACTERISTICS/DEF @CON999
CONTROL @EXEC ENABLE @CON999
CLEARDEVICE <device>
--------------------
You must be PID 2 (local console) or have SYSTEMMANAGER privileges
turned on to use CLEARDEVICE on a terminal that isn't yours. <device>
must be a terminal line (eg, @CON100).
/RXON Simulates a XON character from the device.
/SBREAK Sends a break character to the device.