1608 lines
71 KiB
TeX
1608 lines
71 KiB
TeX
% If you somehow got this file without fullpage.sty, delete
|
|
% ``fullpage'' from the list of style options. It just pulls out the
|
|
% margins a bit.
|
|
\documentstyle[11pt,twoside,fullpage]{article}
|
|
% New commands
|
|
%-------------
|
|
% Intro copied from prospero-protocol-v5.txt
|
|
|
|
% for meta-symbols
|
|
\newcommand{\meta}[1]{{\bf \mbox{\(<\)#1\(>\)}}}
|
|
% for literal tokens.
|
|
\newcommand{\lit}[1]{{\tt \mbox{#1}}}
|
|
%for attributes
|
|
\newcommand{\atr}[1]{\mbox{\sc #1}}
|
|
% for identifying text
|
|
\newcommand{\text}[1]{{\em #1}\/}
|
|
|
|
% Start and end of One or More
|
|
\newcommand{\ooms}{\([\,\)}
|
|
\newcommand{\oome}{\(\,]^+\)}
|
|
% start and end of zero or more
|
|
\newcommand{\zoms}{\([\,\)}
|
|
\newcommand{\zome}{\(\,]^*\)}
|
|
% Start and end of zero or one
|
|
\newcommand{\zoos}{\([\,\)}
|
|
\newcommand{\zooe}{\(\,]\)}
|
|
% start an OR
|
|
\newcommand{\ors}{{\bf (\,}}
|
|
\newcommand{\ore}{{\bf \,) }}
|
|
\newcommand{\metaor}{{\em \,or\, }}
|
|
\newcommand{\hexnum}[1]{\(\mbox{#1}_{16}\)}
|
|
\newcommand{\unix}{{\sc unix}}
|
|
\newenvironment{command}{\begin{verse}\sloppy}{\end{verse}}
|
|
\newcommand{\commandsize}{\large}
|
|
|
|
%\newtheorem{example}{Example}
|
|
% Uncomment this for almost-double spacing
|
|
%\renewcommand{\baselinestretch}{1.7}
|
|
%\newcommand{\hozline}{\rule{\textwidth}{0.3mm}}
|
|
%\newcommand{\hozline}{\makebox[\textwidth]{\hrulefill}}
|
|
%\newcommand{\bex}{\begin{example} \begin{rm}}
|
|
%\newcommand{\eex}{$\Box$ \end{rm} \end{example}}
|
|
%\newcommand{\cbs}{\chgbarbegin}
|
|
%\newcommand{\cbe}{\chgbarend}
|
|
%\newcommand{\cbs}{}
|
|
%\newcommand{\cbe}{}
|
|
|
|
%\newcommand{\ptag}{\begin{flushright} {\rm ($P$)} \end{flushright} }
|
|
|
|
|
|
\begin{document}
|
|
|
|
\pagenumbering{arabic}
|
|
\pagestyle{plain}
|
|
|
|
\renewcommand{\thepage}{\arabic{page}}
|
|
|
|
|
|
\begin{titlepage}
|
|
|
|
\renewcommand{\thefootnote}{}
|
|
\footnotetext{\hspace*{-21pt}
|
|
Digital copies of the latest revision of this document may be obtained
|
|
through Prospero as
|
|
\mbox{\verb"/papers/subjects/operating-systems/prospero/doc/user-manual.PS.Z"},
|
|
in the \mbox{\tt \#/INET/EDU/ISI/swa} virtual system, or through
|
|
Anonymous FTP from \mbox{\tt PROSPERO.ISI.EDU} as
|
|
\mbox{\verb"/pub/prospero/doc/prospero-user-manual.PS.Z"}
|
|
}
|
|
\footnotetext{\hspace*{-21pt}
|
|
This work was supported in part by the National Science
|
|
Foundation (Grant No. CCR-8619663), the Washington Technology Center,
|
|
Digital Equipment Corporation, and the Defense Advance Research
|
|
Projects Agency under NASA Cooperative Agreement NCC-2-539.
|
|
The views and conclusions contained in
|
|
this document are those of the authors and should not be interpreted as
|
|
representing the official policies, either expressed or implied, of
|
|
any of the funding agencies.
|
|
The authors may be reached
|
|
at USC/ISI, 4676 Admiralty Way, Marina del Rey, California\ \ 90292-6695, USA.
|
|
Telephone +1 (310) 822-1511, email \mbox{\verb"info-prospero@isi.edu"}. }
|
|
\renewcommand{\thefootnote}{\arabic{footnote}}
|
|
|
|
|
|
\vspace*{\fill}
|
|
\begin{center}
|
|
\LARGE Prospero User's Manual\\
|
|
\Large Version 5\\
|
|
\vskip 1.5em
|
|
{\large Draft of 8 July 1993} \\
|
|
{\large Document Revision No. 0.2} \\
|
|
\end{center}
|
|
\vspace{.5in}
|
|
|
|
\Large \hspace*{\fill} B. Clifford Neuman
|
|
%\footnotetext{\hspace*{-18pt}
|
|
% To Contact the Authors: \\
|
|
% Electronic Mail: \mbox{\verb"info-prospero@isi.edu"} \\
|
|
% Telephone: +1 (310) 822-1511 \\
|
|
% Mail: USC Information Sciences Institute, 4676 Admiralty Way,
|
|
% Marina del Rey, California 90292--6695\ \ U.S.A.
|
|
%}
|
|
\hfill Steven Seger Augart \hspace*{\fill} \\
|
|
\vspace{.2in}
|
|
\begin{center}
|
|
\Large Information Sciences Institute \\
|
|
University of Southern California
|
|
\end{center}
|
|
\vspace*{1.2in}
|
|
\vspace*{\fill}
|
|
\end{titlepage}
|
|
|
|
\tableofcontents
|
|
|
|
\section{Introduction}
|
|
|
|
The Prospero file system is based on the Virtual System Model.
|
|
\nocite{nfclosure,vsmldos}
|
|
% \nocite{phdneuman,vsmtp}
|
|
It differs from traditional distributed file systems in several ways.
|
|
In traditional file systems, the mapping of names to files is the same
|
|
for all users. Prospero supports user centered naming: users
|
|
construct customized views of the files that are accessible. A
|
|
virtual system defines this view and controls the mapping from names
|
|
to files. Objects may be organized in multiple ways and the same
|
|
object may appear in different virtual systems, or even with multiple
|
|
names in the same virtual system.
|
|
|
|
Prospero directories can contain references to files and directories
|
|
that are stored on remote nodes. This allows distribution at a much
|
|
finer level of granularity than is possible in traditional distributed
|
|
file systems. Prospero also provides several tools to support
|
|
customization. Among them are the union link and the filter.
|
|
|
|
\section{The Directory Mechanism}
|
|
|
|
{In \samepage Prospero, the global file system consists of a collection of {\it
|
|
virtual file systems}. Virtual file systems usually start as a copy
|
|
of a prototype. The root contains links to files or
|
|
directories\footnote{To distinguish them from directories and links in
|
|
traditional systems, and because they are often illusory, directories
|
|
and links in Prospero are sometimes referred to as virtual directories and
|
|
virtual links.} selected by the user. Directory links can be of
|
|
several types: conventional, union, and filtered.}
|
|
|
|
A conventional link is similar to a hard link in traditional file
|
|
systems. It may be made to any type of object, including a directory.
|
|
It maps a name for an object to the information needed to access the
|
|
object. As long as an unexpired link to an object exists the object
|
|
may be accessed by that name. If the object moves, a forwarding
|
|
pointer will allow continued access using the same name. An object is
|
|
only deleted when no unexpired links to it remain.
|
|
|
|
A union link can only be made to a directory. With a union link, the
|
|
objects included in the linked directory become part of the virtual
|
|
directory containing the link. Thus, the contents of a virtual
|
|
directory are the union of the collection of conventional links it
|
|
contains, and the contents of all directories included through union
|
|
links.
|
|
|
|
Filters may be attached to either type of link. A filter alters the
|
|
set of links that are seen in directories whose paths pass through the
|
|
filtered link. A filter can specify which links are to appear and
|
|
which are to be ignored, it can change the features of individual
|
|
links, or it can synthesize new links that are not in the original
|
|
directory. Client-side filters are written in C and are dynamically
|
|
linked during name resolution. A filtered link contains a reference
|
|
to the filter and any arguments required by the filter.
|
|
|
|
\section{Using the Prospero File System}
|
|
|
|
This section assumes that Prospero has already been installed on your
|
|
system. Section~\ref{new_system} describes the installation
|
|
procedure.
|
|
|
|
To use Prospero you must first determine the name of the directory
|
|
that contains the executables.\footnote{By default, the installation
|
|
directory is {\it /usr/pfs/bin}.}
|
|
\begin{itemize}
|
|
\item{CSH users} That directory
|
|
contains a file called vfsetup.source, the contents of which must be
|
|
read by the shell. This can be accomplished by {\tt source}ing it.
|
|
For example, if the Prospero file system binaries are stored in {\it
|
|
/usr/pfs/bin} you should either execute the following command or add
|
|
it to your {\it .cshrc} file:
|
|
|
|
\begin{verbatim}
|
|
source /usr/pfs/bin/vfsetup.source
|
|
\end{verbatim}
|
|
|
|
\item{SH users} That directory
|
|
contains a file called {\tt vfsetup.profil}, the contents of which must be
|
|
read by the shell. This can be accomplished with the {\tt .} command.
|
|
For example, if the Prospero file system binaries are stored in {\it
|
|
/usr/pfs/bin} you should either execute the following command or add
|
|
it to your {\it .profile} file:
|
|
|
|
\begin{verbatim}
|
|
. /usr/pfs/bin/vfsetup.profil
|
|
\end{verbatim}
|
|
|
|
\end{itemize}
|
|
|
|
Before you can begin using the Prospero file system a virtual system
|
|
must be created for you. Section~\ref{creating_vfs} explains how the Prospero
|
|
site administrator can create a new virtual system. Don't be frightened away from
|
|
experimenting by these comments! Most Prospero
|
|
sites support a {\it guest} virtual system which can be used until your
|
|
own virtual system is created. Prospero, as shipped, is configured
|
|
so that once you compile the clients you can type ``{\tt vfsetup
|
|
guest}'' and start working right out of the box using a guest virtual
|
|
system at the USC Information Sciences Institute.
|
|
|
|
To use a virtual system, you must first execute the {\tt vfsetup}
|
|
command to initialize your environment. For example, if the name of
|
|
your virtual system is {\it guest} you should execute the following
|
|
command:
|
|
|
|
\begin{verbatim}
|
|
vfsetup guest
|
|
\end{verbatim}
|
|
|
|
\section{Using the menu browser}
|
|
|
|
The menu browser provides a simple straightforward interface to the
|
|
Prospero file system.
|
|
|
|
\subsection{Starting it up}
|
|
In the simplest case, invoke it as ``{\tt menu}''. If you are vfsetup to a
|
|
virtual system and there is a directory named {\tt /MENU} in that virtual
|
|
system, it will use that directory. If you have not run the {\tt
|
|
vfsetup} command or if there is no link named {\tt /MENU} in the
|
|
current virtual system, it will bring up the default menu for your
|
|
site. We have set up a default menu for people who compile Prospero
|
|
to use the default site, the ISI guest site.
|
|
|
|
If you are already vfsetup to a virtual system, you can invoke the
|
|
menu browser as ``{\tt menu {\it linkname}}''. The browser will
|
|
display the Prospero directory {\it linkname} as its root menu.
|
|
|
|
\subsection{Using it}
|
|
|
|
The browser will display a numbered list showing the contents of the
|
|
directory. The items in the list will be followed by one of four
|
|
characters:
|
|
|
|
\begin{itemize}
|
|
|
|
\item[{\tt .}] A file. If it is a data file, you will be able to retrieve
|
|
it and save it. If it is a text file, you can retrieve it and view
|
|
it, and then have the option of mailing it, saving it, or printing it.
|
|
|
|
\item[{\tt $>$}] A directory (submenu). You can select it to see the
|
|
contents, and then type {\tt u} to go up to the previous menu.
|
|
|
|
\item[{\tt \verb"]"}] A portal. This represents a service you will have to
|
|
connect to via {\em telnet} or some similar protocol. Select it in
|
|
order to receive some instructions and begin a {\em telnet} session.
|
|
|
|
\item[{\tt :}] A search. It will display some initiali documentation. It may
|
|
ask you to select among several possible searches, and will then
|
|
prompt you for what you are searching for. Later versions of the menu
|
|
browser will check what you type at the prompts to make sure the
|
|
format is correct. Type {\tt ?} at the
|
|
beginning of any line in order to receive further documentation about
|
|
the meaning of that line.\footnote{If you want to search for an item
|
|
beginning with a literal {\tt ?}, then precede it with a backslash to
|
|
escape it. %type {\tt \verb"\"?}}.
|
|
If you want to search for something beginning with a backslash, then precede it with
|
|
another backslash to excape it.
|
|
%beginning with a literal \verb"\", then type \verb"\\".
|
|
}
|
|
|
|
The results of the search will be displayed as a new menu that
|
|
contains a list of the items that matched the search, possibly
|
|
including subdirectories.\footnote{N.B.: If you make a search that is relayed
|
|
through the Prospero/Gopher gateway, you may be immediately presented with a
|
|
submenu containing a single item, and will have to open that item to
|
|
see the results of your search.}
|
|
\end{itemize}
|
|
|
|
Type the number of the item you wish to explore in order to explore
|
|
that item. Type {\tt q} to quit.
|
|
|
|
\subsection{Making your own menus}
|
|
|
|
The main current deficiency of the menu browser interface is that at
|
|
the moment the browser is read-only. For now, you will have to learn
|
|
a bit about the command-line client interface in order to set up new
|
|
directories under Prospero, in order to change the names of menu
|
|
items, and in order to create new links. We are currently working to
|
|
put most of the power of the command line interface into the menu
|
|
browser so that one does not have to use two user interfaces for most
|
|
purposes.
|
|
|
|
To make your own menus, you will have to learn the {\tt set\_atr}
|
|
command, to set attributes on objects, the {\tt vln} command, to make
|
|
new links, and the {\tt vmkdir} command, to make subdirectories.
|
|
|
|
\section{Using the command-line clients}
|
|
|
|
\subsection{File Names}
|
|
|
|
The slash, colon, pound sign, open and close parenthesis, and backslash
|
|
({\tt /, :, \#, (, ),} and \verb"\") are special characters in
|
|
Prospero. The slash separates components of file names and the colon
|
|
separates information identifying a virtual system from the name of a
|
|
file within the virtual system. These characters should not appear in
|
|
any component of a file name unless they have been quoted.
|
|
|
|
All special characters, including the backslash, can be quoted by
|
|
preceding them with a backslash. This is important to know,
|
|
especially when you're working with names returned by the Prospero
|
|
GOPHER-GW gateway; those names often contain colons, slashes, and other special
|
|
symbols.
|
|
|
|
The slash is used in user-level names to indicate moving into a
|
|
subdirectory, just as it does in {\sc unix}-like operating systems.
|
|
This is the only important special character to know about upon the
|
|
first reading of this document; the others are more specialized.
|
|
|
|
By default, names are resolved relative to the active virtual system.
|
|
If a colon ({\tt :}) appears in a name, the name is resolved relative
|
|
to the name space identified preceding the colon. If the character
|
|
preceding the colon is a pound sign ({\tt \#}), then the name
|
|
preceding the pound sign will be treated as an alias for a previously
|
|
specified virtual system. For this reason, virtual systems should not
|
|
have names ending in a pound sign. A double colon ({\tt ::}) is the
|
|
closure operator. When encountered, the name space identified by the
|
|
{\sc closure} attribute\footnote{See the Attributes appendix to the Prospero
|
|
Protocol specification for the definition of this attribute} of the
|
|
object named before the double colon is used to resolve the name that
|
|
follows.
|
|
|
|
The pound sign ({\tt \#}) is also used to resolve name conflicts when
|
|
the same component of a name is used by more than one object. In this
|
|
case the pound sign is followed by the magic number of the desired
|
|
object. For this reason, unless quoted, the pound sign should not be
|
|
used in a component of a file name if followed by a number (including
|
|
sign), and if there are no intervening non-numeric characters between
|
|
the pound sign and the end of the component.
|
|
|
|
The pound sign ({\tt \#}) is additionally used to indicate that a
|
|
particular named union link is to be followed when resolving a name,
|
|
or to indicate that a filter is to be applied. In these cases, the
|
|
pound sign is the first character of a component in a name and it is
|
|
followed by the name of the union link to be followed or the name of
|
|
the filter to be applied. For this reason, unless quoted, the pound
|
|
sign should not be used as the first character in a component of a
|
|
file name (unless the full name of the component is {\tt \#}).
|
|
|
|
The open and close parenthesis ({\tt (} and {\tt )}) are used to
|
|
delimit the arguments to a filter specified as part of a file name.
|
|
The arguments immediately follow the name of the filter (which itself
|
|
follows a single or double pound sign). If the filter name follows a
|
|
single pound sign, it is a client-side filter. If the filter name
|
|
follows a double pound sign, it is a server-side filter.
|
|
|
|
Therefore, it follows that if the name of a union link ends in a {\tt
|
|
)}, and it is explicitly specified as part of path name, the {\tt )}
|
|
must be quoted.
|
|
|
|
We have not yet specified a syntax for
|
|
differentiating between client-side pre-expansion and post-expansion
|
|
filters, nor for differentiating among directory, hierarchy, object,
|
|
update, and link filters.
|
|
|
|
|
|
If no arguments are required, the null argument list {\tt ()} must be
|
|
included. These uses of the \# convention to specify a filter is not
|
|
currently supported.
|
|
|
|
\paragraph{Loadable Filters}
|
|
|
|
The above filter syntax works for predefined filters. Loadable
|
|
filters are not currently used. The working definition of their
|
|
syntax, which is being redefined due to it being difficult to parse,
|
|
is: If the filter name contains an unquoted colon or slash, then it is
|
|
interpreted as a loadable filter. If the filter name does not, it is
|
|
interpreted as a predefined filter. Note that you can specify a
|
|
loadable filter in the current virtual directory by prefixing its name
|
|
with the sequence {\tt ./}.
|
|
|
|
|
|
\subsection{Finding Things}
|
|
|
|
The Prospero file system provides tools that make it easier to keep
|
|
track of and organize information in large systems. When first
|
|
created, your virtual file system is likely to contain links to
|
|
directories that organize information in different ways. As the
|
|
master copy of each of these directories is updated, you will see the
|
|
changes. You may customize these directories. The changes you make
|
|
to a customized directory are only seen from within your own virtual
|
|
system, but changes made to the master copy will also be visible to
|
|
you. See section~\ref{customizing} for instructions on customizing a
|
|
directory.
|
|
|
|
Users are encouraged to organize their own projects and papers in a
|
|
manner that will allow them to be easily added to the master
|
|
directory. For example, users should consider creating a virtual
|
|
directory that contains pointers to copies of each of the papers that
|
|
they want made available to the outside world. This virtual directory
|
|
may appear anywhere in the user's virtual system. Once set up, a link
|
|
may be added to the master author directory. In this manner, others
|
|
will be able to find this directory. Once added to the master
|
|
directory, any future changes will be immediately available to other
|
|
users.
|
|
|
|
To add a link to the master copy of any of the shared directories,
|
|
send a message to your site administrator. The address should be {\it
|
|
pfs-administrator} on the primary system for the site. If you are
|
|
using a virtual system stored at the USC Information Sciences Institute, the
|
|
address would be {\it pfs-administrator@isi.edu}.
|
|
|
|
\subsection{The Commands}
|
|
|
|
This section
|
|
%steps though the process of creating and using a virtual file system.
|
|
%It
|
|
assumes that the Prospero file system has been installed on the system
|
|
being used. Later sections explain how to install the Prospero file
|
|
system at a new site and on individual systems.
|
|
|
|
Most of the commands that are specific to the Prospero file system
|
|
take a debug option. The form is {\em -D\#} where \# is an optional
|
|
integer and specifies the level of detail. The higher the integer,
|
|
the greater the detail. By itself, {\em -D} sets the debugging level
|
|
to 1. Debugging levels of 9 and above display the actual Prospero
|
|
protocol messages that go across the network.
|
|
|
|
\subsubsection{Initialization and Changing Virtual Systems}
|
|
|
|
\begin{verbatim}
|
|
vfsetup [-n host path , [-r,v] name , -f file]
|
|
\end{verbatim}
|
|
|
|
The {\tt vfsetup}\footnote{Because it changes environment variables,
|
|
this command only has an affect when its output is read by the shell.
|
|
If {\it vfsetup.source} has been {\tt source}ed, then {\tt vfsetup} is
|
|
an alias which will call the {\it vfsetup} executable in the
|
|
appropriate manner.} command sets up the selected virtual system. It
|
|
adds the appropriate directories to the search path and sets all
|
|
necessary environment variables. {\tt vfsetup} can be called in
|
|
several ways. With no arguments, it reads the file {\it
|
|
\verb+~+/.virt-sys} and uses the information found to access the
|
|
virtual system description. The {\em -v} option takes the name of the
|
|
virtual directory containing the system description. The {\em -n}
|
|
option takes the name of a host and the physical name of the virtual
|
|
directory on that host that contains the virtual system description.
|
|
The {\em -f} option takes the name of a Unix file that is to be read
|
|
in place of {\it \verb+~+/.virt-sys}.
|
|
|
|
It is also possible to set up a virtual system by specifying its name.
|
|
If the {\em -r} option is specified, the name is taken to be the
|
|
default name for the virtual system at the local site. If the name is
|
|
specified without a modifier, the name is looked up in the {\sc
|
|
/virtual-systems} directory of the presently active virtual system
|
|
(the site default is used if no virtual system is presently active).
|
|
For example, if the name of your virtual system is {\it guest} you can
|
|
set up the virtual system using following command.
|
|
|
|
\begin{verbatim}
|
|
vfsetup guest
|
|
\end{verbatim}
|
|
|
|
|
|
\subsubsection{Creating Directories}
|
|
|
|
\begin{verbatim}
|
|
vmkdir directory
|
|
\end{verbatim}
|
|
|
|
{\tt vmkdir} creates a virtual directory with the selected name and
|
|
adds a link from its parent directory.
|
|
|
|
\subsubsection{Adding and Deleting Links}
|
|
|
|
\paragraph{vln}
|
|
|
|
\begin{verbatim}
|
|
vln [-i, -u, -s, -m, -a] {-e access-method-info, -n host hsoname, linkname } newname
|
|
\end{verbatim}
|
|
|
|
{\tt vln} adds a new link to a directory. {\em oldname} is an
|
|
existing name for the object to which the link is to be made. {\em
|
|
newname} is the name of the new link. The {\em -u} option indicates
|
|
that the new link is to be a union link. The {\em -s} option is used
|
|
to specify a symbolic link. The {\em -i} option is used to specify an
|
|
invisible link which will not be displayed in a normal directory listing.
|
|
|
|
The {\em -n} option (short for {\em native}) requires the specification of the
|
|
name of the host containing the target. The {\em -n} option indicates
|
|
that the native information for the target has been specified. {\em
|
|
host} is the name of the host on which the target resides and {\em
|
|
oldname} is the name of the target on that host. If the {\em -s}
|
|
option has also been specified, then {\em host} is the name of the
|
|
virtual system to which oldname is relative.
|
|
|
|
The {\em -e access-method-info} (external) option indicates that the
|
|
object resides on a host that does not run Prospero. There are are
|
|
number of possible values for the {\em access-method-info}:
|
|
\begin{description}
|
|
\item[GOPHER {\em host}({\em port}) {\em gopher-selector} \{BINARY {\em or} TEXT\}]
|
|
This access method indicates that the object can be retrieved by
|
|
sending the selector string {\em gopher-selector} to a server running
|
|
at port {\em port} on host {\em host}. You must specify whether you
|
|
want the object to be retrieved using the Gopher binary or text
|
|
retrieval methods.
|
|
\item[TELNET {\em host}[({\em optional-port})] {\em introductory-message}]
|
|
If you do not provide a port inside parentheses, then the default {\em
|
|
telnet} port will be used. The {\em introductory-message} will be
|
|
displayed before the user connects to the service. For example:
|
|
\begin{quote}
|
|
Type {\tt LAX} at the prompt in order to get the current Los Angeles weather
|
|
forecast; type {\tt X} to quit.
|
|
\end{quote}
|
|
\item[AFTP {\em host} {\em path} \{BINARY {\em or} TEXT\}] This access method
|
|
specifies that the object can be retrieved via anonymous FTP, using
|
|
either the {\em binary} or {\em text} retrieval methods.
|
|
\item[AFS {\em afs-path}] This access method specifies that the object is
|
|
available through the Andrew File System. Its name via {\sc afs} is {\em
|
|
afs-path}. You should not precede the {\em afs-path} with {\tt
|
|
/nfs/afs}, {\tt /afs}, or whatever the prefix is that your local
|
|
system prepends to {\sc afs} names.
|
|
\item[{\em \#-of-access-method-args} {\em method-name} \\
|
|
{\em host-type} {\em host} {\em hsoname-type} {\em hsoname} {\em any additional args}]
|
|
This type is used to provide an explicit value for the {\sc access-method}
|
|
attribute. See appendix A of the Prospero protocol specification for
|
|
a discussion of the format of this attribute.
|
|
|
|
\end{description}
|
|
|
|
Note that some of the host names specified in these access methods may
|
|
include a port number inside parentheses. You will probably have to
|
|
quote the port number so that whatever shell you use does not
|
|
interpret it in a way you don't expect.
|
|
|
|
\subparagraph{Some examples of making links}
|
|
|
|
Here I'm making an external Gopher TEXT link to a recipie:
|
|
\begin{verbatim}
|
|
vln -e GOPHER 'ashpool.micro.umn.edu(70)' 0/fun/Recipes/Balls/rum-balls TEXT rum-balls
|
|
\end{verbatim}
|
|
I can now retrieve this document with {\tt vget} or by running ``{\tt
|
|
menu .}''.
|
|
|
|
Here I'm making a link to a telnettable service. In this case, I have
|
|
decided to make the {\em introductory-message} a null string, since
|
|
the service I'm linking to has its own excellent documentation facilities:
|
|
\begin{verbatim}
|
|
vln -e TELNET 'DOWNWIND.SPRL.UMICH.EDU(3000)' '' weather
|
|
set_atr weather OBJECT-INTERPRETATION PORTAL
|
|
\end{verbatim}
|
|
In this case, I also had to run {\tt set\_atr} so that the menu
|
|
browser would know this was a {\sc PORTAL}.
|
|
|
|
Here I'm making a native link to a directory gatewayed through the ISI
|
|
Gopher gateway (shipped as part of this distribution). Note that we are
|
|
currently providing a demonstration Gopher gateway on Prospero server
|
|
on ZEPHYR.ISI.EDU, port 1570.
|
|
|
|
\begin{verbatim}
|
|
vln -n 'ZEPHYR.ISI.EDU(1570)' 'GOPHER-GW/GOPHER.MICRO.UMN.EDU(70)/1/' minnesota-root-gopher
|
|
\end{verbatim}
|
|
|
|
\subparagraph{Specialized capabilities for Closure}
|
|
|
|
If the standard input to {\tt vln} has been redirected, the input will
|
|
be searched for a line of the form ``Virtual-system-name: vs-name''.
|
|
If found, {\em oldname} will be relative to the virtual system which
|
|
has been read from (closed with) the input. If the {\em -m} option
|
|
has been specified, the input will be additionally searched for a line
|
|
for the form ``Virtual-file-name: filename''. If found, {\em
|
|
filename} will be used in place of {\it oldname}. The reading of the
|
|
standard input can be suppressed by specifying the {\em -a} option, in
|
|
which case the currently active virtual system will be used.
|
|
|
|
\paragraph{vrm}
|
|
|
|
\begin{verbatim}
|
|
vrm link
|
|
\end{verbatim}
|
|
|
|
{\tt vrm} removes the named link from a directory. It is important to
|
|
note that {\tt vrm} only removes the link. The object will continue
|
|
to exist if there are any additional links to it. If there are none,
|
|
then the object will become subject to garbage collection at a future
|
|
time.
|
|
|
|
Another important thing to note is that {\tt vrm} will only remove a link
|
|
if it exists in the directly indicated directory. You may be confused
|
|
by {\tt vrm} claiming that a link is not present when you can see it
|
|
quite clearly via {\tt als} or {\tt vls} or {\tt menu}. This problem
|
|
arises because the link you're seeing is actually included via a union
|
|
link. Use the {\em -u} flag to {\tt vls} to see if this is the case.
|
|
You can use the {\em -u} flag to {\tt vcd} to put yourself into the
|
|
directory that actually contains the link and try the {\tt vrm} again.
|
|
This problem also often arises with the {\tt list\_acl}, {\tt
|
|
set\_acl}, and {\tt set\_atr} commands, and it has the same solution.
|
|
|
|
\subsubsection{Listing Directories}
|
|
|
|
Virtual directories may be listed using the {\tt als} command or {\tt
|
|
vls}. {\tt als} produces straightforward output similar to that
|
|
produced by the standard {\sc unix} {\tt ls} utility. We recommend
|
|
its use. {\tt vls} produces more complex output and is more useful
|
|
for maintaining directories than for exploring them. Of course, if
|
|
one is interested in browsing, in our opinion invoking the menu
|
|
broswer program on the current directory (to do this, invoke it as
|
|
{\tt menu .}) gives one the most straightforward user interface.
|
|
|
|
\begin{verbatim}
|
|
vls [-A, -a,-c,-f,-i,-u,-v] [ -A attribute ] [-a attribute ] [path]
|
|
\end{verbatim}
|
|
|
|
{\tt vls} takes the virtual path name for a file or directory. If the
|
|
path is for a directory, the links within that directory are
|
|
displayed. If the path is for any other type of object, then the
|
|
information for the named link is displayed.
|
|
|
|
By default, {\tt vls} displays for each link the link name (i.e., the
|
|
local component of the path name) and the target of the link. The
|
|
target of the link is generally a host and a name relative to that
|
|
host.\footnote{
|
|
We call these names Host-Specific Object Names, or {\sc hsoname}s.}
|
|
Some special characters may precede the link name; their meanings are:
|
|
\begin{itemize}
|
|
\item[U] This is a union link (always to a DIRECTORY or
|
|
DIRECTORY+FILE). Usually only shown if {\it -u} flag was specified,
|
|
unless expanding the link failed.
|
|
\item[I] for an invisible link (only shown if {\it -i} flag specified)
|
|
(could be to a FILE, DIRECTORY, or DIRECTORY+FILE).
|
|
\item[blank (' ')] if a normal link to a FILE.
|
|
\item[S] for SYMBOLIC
|
|
\item[E] for EXTERNAL (to an object on a host that does not run
|
|
Prospero)
|
|
\item[N] for NULL (returned if inadequate permissions),
|
|
\item[D] for DIRECTORY
|
|
\item[B] (Both) for DIRECTORY+FILE
|
|
\item[O] for OBJECT (neither a DIRECTORY nor a FILE, just something
|
|
that can have attributes associated with it.)
|
|
\item[*] Indicates that a filter is associated with the
|
|
link.
|
|
\item[F] Expanding this union link failed.
|
|
\end{itemize}
|
|
|
|
The {\em -v} option causes the object type, and the type of each field
|
|
to be displayed, and it lists the filters associated with the link.
|
|
It also prevents the truncation of fields that are too long to be
|
|
cleanly displayed without the {\em -v} option.
|
|
|
|
The {\em -u} option indicates that union links are not to be expanded.
|
|
By default, union links are expanded, and the results of that
|
|
expansion displayed. To see which union links are included in a
|
|
directory, the {\em -u} option must be specified.
|
|
|
|
The {\em -i} option indicates that invisible links should be
|
|
displayed; they are normally not.
|
|
|
|
The {\em -d} flag indicates that even if the {\it path} argument to
|
|
{\tt vls} is a directory, we want to look at that link instead of
|
|
looking at the contents of the directory. It is just like the {\it
|
|
-d} flag to the UNIX {\tt ls} command.
|
|
|
|
There are cases when a directory might include more than one link with
|
|
the same name. One way this can happen is if the directory contains
|
|
union links. By default, only the first link with a particular name
|
|
is displayed. The {\em -c} option tells {\tt vls} to display all
|
|
links, including those with conflicting names. The name of
|
|
conflicting links will be followed by a ``\#'' and a number that
|
|
allows them to be uniquely identified.
|
|
|
|
The {\em -f} option causes union links which could not be expanded to
|
|
be displayed. This option is presently set by default.
|
|
|
|
The {\em -a} option indicates that the attributes associated with each
|
|
object pointed to by the link are to be displayed. It also forces the
|
|
verbose option. If only a particular attribute is desired, the
|
|
attribute can be specified as
|
|
part of the {\em -a} option itself (e.g. -a{\sc forwarding-pointer}).
|
|
The {\em -a} option by itself displays all attributes. The {\em -A}
|
|
option is similar to the {\em -a} option, but it only lists the
|
|
attributes associated with the link itself, not those associated with
|
|
the object referenced by the link\footnote{When using {\tt vls} to
|
|
list the results of an archie query, the {\em -c} and the {\em -A}
|
|
options should be specified.}.
|
|
|
|
\subsubsection{Moving Around}
|
|
|
|
\begin{verbatim}
|
|
vcd [-u] path
|
|
\end{verbatim}
|
|
|
|
The {\tt vcd}\footnote{Because it changes environment variables, this
|
|
command only has an affect when its output is read by the shell. {\tt
|
|
vcd} is an alias which calls the {\it p\_\_vcd} executable in the
|
|
appropriate manner.} command allows one to change the virtual working
|
|
directory. If no argument is specified, the home directory is
|
|
assumed. Otherwise, paths starting with a slash ({\tt /}) are treated
|
|
as relative to the root of the virtual file system, and other paths
|
|
are treated as relative to the current working directory. ``..''
|
|
specifies the directory above the current working directory along the
|
|
active path from the root.
|
|
|
|
The {\em -u} option allows one to change one's virtual working directory
|
|
to a directory included through a named union link.
|
|
|
|
\begin{verbatim}
|
|
vwd
|
|
vwp
|
|
\end{verbatim}
|
|
|
|
The {\tt vwd} command prints the name of the current virtual directory
|
|
relative to the root of the virtual system. The {\tt vwp} command
|
|
prints the information describing its physical storage location.
|
|
These are actually aliases defined at the time you run {\tt vfsetup}.
|
|
|
|
\subsection{Retrieving Files}
|
|
|
|
\begin{verbatim}
|
|
vget virtual-file [local-file]
|
|
\end{verbatim}
|
|
|
|
The commands described so far allow you to move around the virtual
|
|
file system, but they do not allow you to access the files that it
|
|
names. If a program has been linked with the Prospero compatibility
|
|
library, the program can access files directly.
|
|
|
|
The {\tt vget} command can be used to explicitly retrieve a file. The
|
|
{\it virtual-file} is the name of the file to be retrieved from the
|
|
Prospero file system. {\it local-file} is the real name that you want
|
|
the file to have in your real current working directory. If {\it
|
|
local-file} is omitted the last component of the virtual file name
|
|
will be used.
|
|
|
|
If the standard input to {\tt vget} has been redirected, the input
|
|
will be searched for a line of the form ``Virtual-system-name:
|
|
vs-name''. If found, {\em virtual-file} will be relative to the
|
|
virtual system which has been read from (closed with) the input. If
|
|
the {\em -m} option has been specified, the input will be additionally
|
|
searched for a line for the form ``Virtual-file-name: filename''. If
|
|
found, {\em filename} will be used in place of {\it virtual-file}.
|
|
The {\em -a} option can be used to suppress the searching of the
|
|
standard input.
|
|
|
|
{\tt vget} does not currently open {\em telnet} connections to objects
|
|
with access methods of type {\sc telnet}. Nor does it treat objects
|
|
with an {\sc object-interpretation} {\sc search} in any interesting
|
|
way; you should use the {\tt menu} program to open such objects.
|
|
|
|
\subsection{Customizing a Directory\label{customizing}}
|
|
|
|
|
|
When a change is made to a directory, that change is often
|
|
visible regardless of the path through which the directory is viewed.
|
|
There are times when it is desirable to make a change that is only
|
|
visible when the directory is viewed through a particular path, or
|
|
from a particular virtual system. Such a change creates a customized
|
|
view of the directory; the change will not affect the view of the
|
|
directory when reached through other paths, or from other virtual
|
|
systems.
|
|
|
|
To create a customized view of a directory, create an empty directory,
|
|
add a union link from the directory you just created to the target
|
|
directory, then remove the link to the old directory and replace it
|
|
with a link to the directory that was just created.
|
|
|
|
Links that are added to the customized directory will only be visible
|
|
through the customized directory, but changes to the target directory
|
|
will also be visible through the customized directory.
|
|
|
|
Some directories in your virtual system have already been customized.
|
|
The root of your virtual system is your own. Changes in the root do
|
|
not appear in the roots of other virtual systems. Each of the links
|
|
from the root is also a customized directory. For example, if you add
|
|
a link to the /authors directory, that link will not be visible to
|
|
others. Directories at the next level, however, are not customized.
|
|
Thus, if you add a link to the directory /authors/Shakespeare,William,
|
|
that change will be visible to others unless you first customize that
|
|
directory.
|
|
|
|
You can determine whether a directory has been customized by using the
|
|
{\tt vls -u} command. That command will show the current directory
|
|
without expanding union links. Admittedly, this is a little
|
|
confusing. Future releases will support the concept of an owning
|
|
virtual system. This will clear up some of the confusion by allowing
|
|
automatic creation of a customized directory when one is needed.
|
|
|
|
To have a link added to the master copy of a shared directory you
|
|
should send a message to {\it pfs-administrator} at your site, or to
|
|
{\it pfs-administrator@isi.edu}.
|
|
|
|
\subsection{Attributes}
|
|
|
|
Attributes associated with the object to which a link points may be
|
|
retrieved using the {\it -a} option to the {\tt vls} command.
|
|
Attributes associated with the link itself may be retrieved
|
|
using the {\it -A} option to {\tt vls}. Attributes may be set using
|
|
the {\tt set\_atr} command.
|
|
|
|
Attributes in Prospero have three different value types: {\sc
|
|
sequence, filter, link}. They can be in one of three namespaces: {\sc
|
|
application, field,} and {\sc intrinsic.} They have five different
|
|
precedences: {\sc object, additional, replacement, cached,} and {\sc link.}
|
|
The {\sc filter} type, in turn, has a number of options. These are
|
|
all discussed in depth in the Prospero protocol manual. A link or
|
|
object may have multiple instances of any attribute on it. This array
|
|
of specialized features makes {\tt set\_atr} appear confusing at first.
|
|
|
|
\paragraph{set\_atr}
|
|
|
|
\subparagraph{Shortcuts}
|
|
|
|
However, there are some useful shortcuts: if you are organizing your
|
|
information through Prospero, theattributes you are likely to want to
|
|
set on an object ({\sc collation-order, menu-item-description,} and {\sc
|
|
object-interpretation}) are in the {\sc application} namespace, which
|
|
is the default for {\tt set\_atr}. You almost certainly want to
|
|
just keep one instance of the attribute around, so {\tt set\_atr}
|
|
defaults to using its {\em replace} option. If you want to delete the
|
|
attribute entirely, use the {\em -delete-all} option.
|
|
|
|
If no attribute precedence is explicitly specified, {\tt set\_atr}
|
|
selects what it believes the correct attribute precedences are using
|
|
an adaptive mode: If a link is {\em external}, {\tt set\_atr} will set
|
|
a a {\sc replacement} attribute on it. If a link is to an object
|
|
stored under Prospero, {\tt set\_atr} will set an {\sc object}
|
|
attribute on the object and then cache the value of the {\sc object}
|
|
attribute with a {\sc cached} value on the link itself. If {\tt
|
|
set\_atr} can't modify the object itself, it will override the
|
|
object's value of the attribute by putting a {\sc replacement} value
|
|
on the link.
|
|
|
|
\subparagraph{Examples}
|
|
|
|
Here is an example of how I use {\tt set\_atr} to organize the
|
|
anonymous FTP Area of a host which has just started running a prospero
|
|
server.
|
|
|
|
First, make a starting link to the AFTP area on that host:
|
|
\begin{verbatim}
|
|
vln -n ZEPHYR.ISI.EDU AFTP starting-link
|
|
vcd starting-link
|
|
\end{verbatim}
|
|
I now run an {\tt als} on the directory and verify the contents.
|
|
Let's say it contains a file named ``00README''. I want to make this
|
|
file have a more descriptive name for people using a menu browser. I
|
|
also want to make it appear first in the directory, above any
|
|
files which do not have an explicit {\sc collation-order} specified.
|
|
Moreover, I want another file, {\tt Incomplete}, to appear last in the
|
|
directory:
|
|
\begin{verbatim}
|
|
als
|
|
(contents scroll by)
|
|
set_atr 00README MENU-ITEM-DESCRIPTION 'Information about the files in this directory'
|
|
set_atr -linkprec 00README COLLATION-ORDER NUMERIC 1
|
|
set_atr Incomplete MENU-ITEM-DESCRIPTION 'This file is still unfinished.'
|
|
set_atr -linkprec Incomplete COLLATION-ORDER LAST NUMERIC 1
|
|
\end{verbatim}
|
|
In this case, I specified the additional {\em -linkprec} option to
|
|
set\_atr, because {\sc collation-order} is an attribute that applies
|
|
only to a link in a directory, not to the underlying object.
|
|
|
|
If I know that a file is of a particular type, I can set the {\sc
|
|
object-interpretation} attribute on this file to help the menu browser
|
|
handle the contents effectively:
|
|
\begin{verbatim}
|
|
set_atr group-photo.gif OBJECT-INTERPRETATION IMAGE GIF
|
|
\end{verbatim}
|
|
\begin{sloppy}
|
|
The {\sc object-interpretation} attribute is described in the document\linebreak[4]
|
|
\mbox{{\tt doc/working-notes/object-interpretation.txt}}, which is included
|
|
in the Prospero distribution, but which has not yet been integrated
|
|
into this manual.
|
|
\end{sloppy}
|
|
A quick example of turning a file invisible with the -linkprec option:
|
|
\begin{verbatim}
|
|
set_atr .cap -linkprec LINK-TYPE I
|
|
\end{verbatim}
|
|
|
|
\subparagraph{The full gamut of options}
|
|
|
|
This has not been fully documented yet. Type {\tt set\_atr} by itself
|
|
to receive a full list of options.
|
|
|
|
\subsection{Forwarding Pointers}
|
|
|
|
This release includes preliminary support for forwarding pointers. If
|
|
a file or directory has moved and a forwarding pointer exists, the
|
|
forwarding pointer will be returned and the request retried. At the
|
|
moment, forwarding pointers must be added by hand; there are not
|
|
presently any programs to add them. For information on how to add
|
|
these by hand, send a message to {\it info-prospero@isi.edu}.
|
|
|
|
\section{Protection}
|
|
|
|
Access control lists (ACLs) may be associated with directories in
|
|
Prospero, and with individual links within a directory. These access
|
|
control lists specify how directory information is to be protected.
|
|
They have nothing to do with the protection of the file to which a
|
|
link refers. Table~\ref{acl_perm_tab_man} lists the protection modes
|
|
that may appear within an access control list entry.
|
|
|
|
\begin{table}
|
|
\begin{center}
|
|
\caption{Protection modes in access control lists\label{acl_perm_tab_man}}
|
|
\begin{tabular}{|c|l||c|l|}\hline
|
|
\multicolumn{2}{|c||}{Directory} & \multicolumn{2}{|c|}{Link} \\ \hline
|
|
Character & Meaning & Character & Meaning \\ \hline \hline
|
|
A & Administer & a & Administer \\ \hline
|
|
V & View & v & View \\ \hline
|
|
L & List & l & List \\ \hline
|
|
R & Read & r & Read \\ \hline
|
|
M & Modify & m & Modify \\ \hline
|
|
D & Delete & d & Delete \\ \hline
|
|
I & Insert & \multicolumn{2}{|c|}{does not apply to link} \\ \hline
|
|
B & Administer & \multicolumn{2}{|c|}{does not override link} \\ \hline
|
|
Y & View & \multicolumn{2}{|c|}{does not override link} \\ \hline
|
|
\( > \) & Add-rights & ] & Add-rights \\ \hline
|
|
\( < \) & Remove-rights & [ & Remove-rights \\ \hline
|
|
) & Add-rights & \multicolumn{2}{|c|}{does not override link} \\ \hline
|
|
( & Remove-rights & \multicolumn{2}{|c|}{does not override link} \\ \hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
When an entry appears in both columns, it means that the entry on the
|
|
directory overrides the entry on a link. For example, a user with R
|
|
access to the directory can read a link even if denied r access to the
|
|
link. If a link permission is stored in a directory access control
|
|
list, then that permission indicates the default protection associated
|
|
with links in the directory that do not specify their own access
|
|
control lists.
|
|
|
|
The administer permission allows the changing of the access control
|
|
list. View allows it to be viewed. List allows one to see a
|
|
directory entry using wildcard searches. Read is required to
|
|
determine the binding of a link (the file it references). If one is
|
|
allowed read, but not list, then one can only retrieve the link if its
|
|
exact name is specified. Modify allows one to change the binding of a
|
|
link, but it does not allow one to add or delete links. Insert allows
|
|
links to be added, and delete allows them to be deleted. The add and
|
|
remove rights are a restricted form of administer. They allow an
|
|
individual to add or remove a restricted set of rights. For example,
|
|
``\(>\)r'' allows one to grant read access to someone else without
|
|
also allowing one to grant modify access.
|
|
|
|
Negative rights may be specified by prepending a minus sign (-) to the
|
|
rights field. The order of access control list entries is important.
|
|
For negative rights to have an effect, they must precede any rights
|
|
that authorize access by that individual. When new ACL entries are
|
|
added, they are added at the front of the list, meaning that recent
|
|
entries take precedence over older ones.
|
|
|
|
When access is checked for a link, three access control lists are
|
|
checked. First, the ACL associated with the link itself is checked.
|
|
If the link does not have its own ACL, then the default ACL associated
|
|
with the directory is used. Next, the ACL associated with the
|
|
directory is checked to see if it grants rights that override those in
|
|
the link. Finally, if access has still not been granted, a special
|
|
override ACL is checked. This is maintained by the system and should
|
|
be used only in emergencies. Negative rights in one list does not
|
|
override access granted in another.
|
|
|
|
There are several different ACL entry types. {\sc default}, {\sc
|
|
system}, and {\sc directory} cause other access control lists to be
|
|
included. {\sc default} is the default ACL specified by the system on
|
|
which the Prospero server is running. {\sc system} is also specified
|
|
separately on each Prospero server. It usually grants additional
|
|
access to system administrators. {\sc directory} is the default
|
|
access control list associated with the directory containing a link.
|
|
It allows one to easily specify that the rights on a link are to be in
|
|
addition to the default rights specified in the directory. If no
|
|
rights are associated with these ACL entry types, then the rights
|
|
granted are based on those in the {\sc default}, {\sc system}, or {\sc
|
|
directory} access control lists themselves. If rights are specified
|
|
for such entries, then the rights are the minimum of those specified,
|
|
and those in the included ACL. The ACLs for new files and directories
|
|
allow access to {\sc default} and {\sc system} as defined in those
|
|
lists. Users have the option of removing such access\footnote{The
|
|
{\sc system} access control list is separate from the {\sc override}
|
|
list which can not be removed.}.
|
|
|
|
The {\sc any}, {\sc authent}, {\sc asrthost}, and {\sc trsthost} ACL
|
|
types grant rights to the specified individuals according to the
|
|
accompanying permission list. {\sc any} matches any user. {\sc
|
|
authent} specifies an authentication method, and the name of the
|
|
authorized individual as returned by that method. At present, this
|
|
entry type is not supported. The {\sc asrthost} method specifies a
|
|
list of authorized principals in the form {\em user@internet-address}.
|
|
If no Internet address is specified (and no atsign), then the user is
|
|
matched regardless of the requesting host. Octets of the Internet
|
|
address can be wildcarded, or replaced with a `{\tt \%}'. A wildcard
|
|
matches any number, and a `{\tt \%}' matches the number corresponding to the
|
|
local host. For example, ``{\tt bcn@\%.\%.\%.*}'' matches the user ``bcn''
|
|
on the local subnet. The {\em user} may be specified as {\tt *},
|
|
meaning to match any user at that {\em internet-address}.
|
|
|
|
The {\sc asrthost} type accepts the username asserted by the client.
|
|
It is not possible to verify that the user has not modified the
|
|
software to claim someone else's identity. The Internet address can
|
|
generally be considered accurate, though it too can be spoofed by a
|
|
knowledgeable and determined attacker. The {\sc trsthost} type is
|
|
identical to the {\sc asrthost} type, but is accepted only when the
|
|
request originates from a privileged port on the requesting system.
|
|
Although this method might be used to provide security similar to that
|
|
for the Berkeley R commands, it is not recommended that you install
|
|
Prospero binaries setuid root until the sources have undergone careful
|
|
scrutiny for possible security holes\footnote{By no means should vget
|
|
or vcache be installed setuid root as these command write files to
|
|
paths specified by the user.}.
|
|
|
|
The discussion of ACLs in this section is not inaccurate, but it does
|
|
not yet reflect the new object and container ACLs that are new with
|
|
Prospero version Alpha.5.2. Preliminary documentation on the new
|
|
rights we have developed for object ACLs is available in the text file
|
|
{\tt doc/working-notes/new-acl-types} in the Prospero distribution.
|
|
This text file will be merged into this manual shortly.
|
|
|
|
The {\tt ppw} command, which allows one to set and manipulate a
|
|
password-based authentication mechanism that is stronger than the {\tt
|
|
ASRTHOST} type also needs to be documented here, as do the Kerberos
|
|
version 5 authentication facilities which are present in this release.
|
|
|
|
The system administrator's {\tt pw\_edit} command also must be
|
|
documented here.
|
|
|
|
\subsubsection*{Listing ACLs}
|
|
|
|
The {\tt list\_acl} command may be used to list the contents of an
|
|
access control list.
|
|
|
|
\begin{verbatim}
|
|
list_acl [-d dir] [-i host acl-name] [ -o object ] [link-name]
|
|
\end{verbatim}
|
|
|
|
With no arguments, it lists the ACL for the current directory. If the
|
|
{\em -d} option is specified, the argument that follows the option
|
|
specifies the directory whose ACL is to be listed. An optional
|
|
link-name specifies that the ACL to be listed is that of the named
|
|
link within the directory. The {\em -o} option indicates that the ACL
|
|
should be listed for the underlying object.
|
|
|
|
\subsubsection*{Modifying ACLs}
|
|
|
|
The {\tt set\_acl} command allows one to change the access control list
|
|
associated with a link or directory.
|
|
|
|
\begin{verbatim}
|
|
set_acl [-asirKE,-n,-N] [-t type] [-d dir] [-l link] [-o link-to-object]
|
|
rights principals
|
|
\end{verbatim}
|
|
|
|
The {\em -d} option is followed by the name of a directory. By
|
|
default, the ACL for the directory is modified. The {\em -l} option
|
|
allows one the modify the ACL for an individual link. The {\em -o}
|
|
option allows one to modify the ACL for the object pointed to by the
|
|
link {\em link-to-object}.
|
|
|
|
The {\em -a, -s, -i, -r, -K,} and {\em -E} options indicate the
|
|
operation to be performed on the ACL. They correspond in order to add
|
|
rights, subtract rights, insert a new entry, remove an entry, kill the
|
|
entire ACL (setting it to the default), and replacing the entire ACL.
|
|
|
|
If the {\em -t} option is specified, it must be followed by the type
|
|
of the ACL entry to be added, deleted, etc. If the {\em -t} option is
|
|
not specified, {\sc asrthost} is the default.
|
|
|
|
The first field following the options specifies the rights to be added
|
|
or deleted. All remaining arguments are the names of the principals
|
|
to be included in the particular ACL entry.
|
|
|
|
When an ACL is set to an initial value (using the {\em -K} or {\em -E}
|
|
options), the {\sc system} ACL is automatically included. The {\sc
|
|
system} entry can be removed by using the {\em -r} option in a
|
|
subsequent {\tt set\_acl} command. The addition of the {\sc system}
|
|
entry can be suppressed by using the {\em -n} option in conjunction
|
|
with the original {\em -K} or {\em -E} option. Whenever rights are
|
|
removed from an ACL, the system checks to make sure that the user
|
|
removing the rights will be able to fix any mistakes. If the the
|
|
change would result in the user being unable to make subsequent
|
|
changes, the minimal rights allowing the user to make subsequent
|
|
changes are automatically added back. This safety mechanism may be
|
|
overridden by specifying the {\em -N} option.
|
|
|
|
|
|
|
|
\section{Server Maintenance and Informational Commands}
|
|
|
|
\subsection{\tt pstatus}
|
|
|
|
\begin{verbatim}
|
|
pstatus [<server>]
|
|
\end{verbatim}
|
|
|
|
Use {\tt pstatus} to see if the server {\em server} is alive.
|
|
|
|
\subsection{{\tt padmin}}
|
|
|
|
\begin{verbatim}
|
|
padmin [-D#] [-N<priority>] [-force] { -kill | -restart
|
|
| -motd | {-set <parameter>} | {-get <parameter>}
|
|
| {-command [-headers | -1 ]} } [<server>]
|
|
\end{verbatim}
|
|
|
|
\subsubsection*{Summary}
|
|
|
|
The old {\tt pkl} and {\tt psrvchat} commands have been replaced by the new
|
|
'padmin' command. Padmin can be used to administer a Prospero server
|
|
(kill it, restart it, set the message of the day). It can also be
|
|
used by a programmer to send raw Prospero protocol messages to the
|
|
server (with the {\tt -command} option) and by anybody to retrieve the
|
|
message of the day (with the {\tt -motd} option).
|
|
|
|
\subsubsection*{Long Explanation of the options}
|
|
|
|
The {\tt -D} flag, as usual, sets the debugging level.
|
|
|
|
{\tt -N} ('nice') sets the priority for a query. Setting a priority of
|
|
32765 or greater ({\tt -N} by itself does this) means that this command will
|
|
be processed only after the queue is empty. This is handy for
|
|
terminating or restarting a server that gets a lot of traffic and
|
|
often has requests waiting in the queue.
|
|
|
|
{\tt -kill} kills the server. {\tt -restart} causes a complete
|
|
restart, including reloading the binary (handy if you've just updated
|
|
the binary). If these options are specified, padmin will ask for
|
|
confirmation, unless the {\tt -force} flag is specified.
|
|
|
|
If the {\tt -force} flag is specified, padmin will not confirm the {\tt -kill} and
|
|
{\tt -restart} flags, nor will it output the reply received. (This is
|
|
modeled upon the {\tt -f} flag to rm).
|
|
|
|
{\tt -set} takes an extra argument for a parameter to set on the server. It
|
|
will then read from standard input for the text to send. This can
|
|
only be used to set parameters whose value is a SEQUENCE consisting of
|
|
a single ASCII string. {\tt -motd} is equivalent to {\tt -set} MOTD. (Note that,
|
|
currently, the only parameters defined on most servers are MOTD,
|
|
RESTART, and TERMINATE, and they all have this form.)
|
|
|
|
{\tt -command} reads raw Prospero protocol messages from the standard input
|
|
and sends them to the server, then shows the response to the user.
|
|
|
|
A {\tt -header} option may follow the {\tt -command} option. The {\tt -header} option
|
|
will prefix the messages read from the standard input with standard
|
|
Prospero VERSION and AUTHENTICATE statements for the current Prospero
|
|
version. (Note for Prospero programmers: the headers from the {\tt -header}
|
|
option are generated with the standard {\tt p\_\_start\_req()} pfs library
|
|
call). A {\tt -1} option may follow {\tt -command} instead of {\tt -header}. This will
|
|
generate VERSION and AUTHENTICATE statements for Prospero version 1
|
|
protocol format.
|
|
|
|
{\tt -k}, {\tt -r}, {\tt -f}, {\tt -m}, {\tt -s}, {\tt -g}, and {\tt -c} also work, as synonyms for the spelled
|
|
out options. They can't be grouped together, though; you must specify
|
|
them independently. (i.e., ``{\tt padmin -kfD9}'' won't work; you must say
|
|
``{\tt padmin -k -f -D9}''.)
|
|
|
|
For those used to the previous {\tt pkl} command, the default
|
|
installation procedure also installs {\tt pkl} as a link to {\tt
|
|
padmin}. When invoked with the name {\tt pkl}, {\tt padmin}
|
|
duplicates {\tt pkl}'s full functionality.
|
|
|
|
\section{The compatability library}
|
|
|
|
This section documents what we call the ``compatability library''
|
|
interface to Prospero. The compatability library interface is not
|
|
compiled by default; your site maintainer must specify it. We have
|
|
not focused recent work on it, and it is not as useful an interface as
|
|
the menu browser interface and the command line interface, both of
|
|
which are discussed above.
|
|
|
|
This section does not apply to you unless your maintainer has turned
|
|
on the compatability library interface
|
|
|
|
\subsection{Using Existing Applications\label{exist_app}}
|
|
|
|
The Prospero file system is presently implemented as a library. We
|
|
provide versions of {\tt cat} and {\tt ls} which have been linked with
|
|
the Prospero compatability library, which is an additional wrapper
|
|
around the main Prospero library. The relinked versions may be found
|
|
in the same directory as the other Prospero binaries, and will appear
|
|
in your search path once the {\tt vfsetup} command has been executed.
|
|
|
|
If the {\tt venable} command (see section~\ref{exist_app}) has been
|
|
executed to set the default name resolution mechanisms to the virtual
|
|
file system, then the {\tt cd} command may be used to change
|
|
virtual directories.
|
|
|
|
If the {\tt venable} command (see section~\ref{exist_app}) has been
|
|
executed to set the default name resolution mechanisms to the virtual
|
|
file system, then the {\tt ls} command may be used to list virtual
|
|
directories.
|
|
|
|
By default, names which are to be resolved using Prospero must contain
|
|
or be preceded by a colon ({\tt :}). File names that do not contain
|
|
and are not preceded by a colon are treated as native Unix file names.
|
|
The default behavior can be modified by setting the {\sc pfs\_default}
|
|
environment variable. This may be done by using the {\tt venable}
|
|
command. When enabled, names are resolved relative to the active
|
|
virtual system by default. Names that are to be treated as native
|
|
Unix file names must be preceded by an atsign ({\tt @}). {\tt
|
|
vdisable} will return the default to its original state. The meanings
|
|
of the values for the {\sc pfs\_default} environment variable are
|
|
listed in Table~\ref{pfs_default_tab}.
|
|
|
|
\begin{table}
|
|
\begin{center}
|
|
\caption{Settings for the {\sc pfs\_default} environment
|
|
variable\label{pfs_default_tab}}
|
|
\vspace{0.1in}
|
|
\begin{tabular}{|c|p{3.9in}|} \hline
|
|
Value & Meaning \\ \hline \hline
|
|
0 & Never resolve names within the virtual system \\ \hline
|
|
1 & Always resolve names within the virtual system \\ \hline
|
|
2 & Resolve names within the virtual system if they contain a : \\ \hline
|
|
3 & Resolve names within the virtual system by default, but
|
|
treat names beginning with an @ or full path names that
|
|
don't exist in the virtual system as native file names \\ \hline
|
|
4 & Resolve names within the virtual system by default, but
|
|
treat names beginning with an @ as native file names \\ \hline
|
|
\end{tabular}
|
|
\vspace{-0.1in}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\section{Filters}
|
|
|
|
Client-side filters are written in C, compiled, and dynamically linked
|
|
during name resolution. Because of portability problems with the
|
|
dynamic linker, client-side filters are not included in this release,
|
|
but are available upon request. There are also server-side filters,
|
|
which are precompiled into the server. These are intended to be used
|
|
by special applications; the only ones currently in general use are
|
|
used by version 3 of Archie.
|
|
|
|
\section{Setting up a new system\label{new_system}}
|
|
|
|
This section explains how to install the Prospero file system on a new
|
|
system. It assumes that the local site has already been configured.
|
|
This section (Section~\ref{new_system}) can be skipped by most users.
|
|
|
|
\subsection{Building the Binaries\label{compiling}}
|
|
|
|
[See the INSTALLATION file in the distribution]
|
|
|
|
\subsection{Running the Server on Unix (like) Systems}
|
|
|
|
If you are installing the Prospero server, a user and group ID must be
|
|
established under which the directory server will run. The directory
|
|
associated with the user ID should be a location in which additional
|
|
information about virtual files and directories can be stored. New
|
|
files which are to exist only within the Prospero file system will
|
|
also be stored under this directory. It is suggested that you chose
|
|
the user name {\it pfs} for this pseudo-user, but other names may be
|
|
used as well.
|
|
|
|
Once the user ID has been set up, install the binaries. The directory
|
|
in which they must be installed is selected at compile time. As
|
|
originally distributed, it is {\it /usr/pfs/bin}. The program {\tt
|
|
pstart} should be installed setuid and setgid the pseudo-user just
|
|
described.
|
|
|
|
\begin{verbatim}
|
|
pstart [hostname]
|
|
\end{verbatim}
|
|
|
|
To start the server run {\tt pstart}. {\tt pstart} takes an optional
|
|
host name. If specified, the host name must be the primary name for
|
|
the host on which the server is running. In most cases, the server is
|
|
able to determine the name on its own and there is no need to specify
|
|
it as an argument.
|
|
|
|
{\tt pstart} will connect to the directory associated with the
|
|
pseudo-user, it will check to make sure that the user id is set
|
|
appropriately, and it will exec the directory server with the
|
|
appropriate arguments.
|
|
|
|
Although it is not recommended, the directory server can also be
|
|
started manually. You must first be logged in as (or be su'ed to) the
|
|
user under whose ID you want the server to run. You can then execute
|
|
{\tt dirsrv} passing as arguments the required directory names.
|
|
|
|
\begin{verbatim}
|
|
dirsrv [-p#portnum] [-m] root shadow data aftpdir afsdir hostname
|
|
\end{verbatim}
|
|
|
|
The {\em -p\#} option allows one to specify an alternate port to run
|
|
the server on. This alternate server can be reached with the hostname
|
|
``your-hostname(portnum)''. For instance, at ISI, we run a publicly
|
|
accessible GOPHER-GW server at {\tt ZEPHYR.ISI.EDU(1570)}.
|
|
Common reasons for running additional servers on alternate ports are
|
|
for testing reasons, to take some of the load off of your primary
|
|
server, or to run a server dedicated to publishing a special
|
|
database.\footnote{Caveat: The common {\sc unix} shells require you to
|
|
quote the {\tt \#} in the {\em -p\#} option in order to keep it from
|
|
being interpreted as the start of a comment.}
|
|
|
|
The {\em -m} (manual) option prevents the directory server from
|
|
dissociating itself from the terminal. It is only useful for
|
|
debugging. {\em root} is the logical root of the system. Only files
|
|
below this point (and those under aftpdir and afsdir) will be
|
|
accessible through the Prospero file system. {\em shadow} is the name
|
|
of the directory that is to contain additional information about files
|
|
and directories. It should typically be the {\it shadow} subdirectory
|
|
of the pseudo-user described above. {\em data} is the local directory
|
|
under in which new virtual directories and their contents will be
|
|
stored.
|
|
|
|
{\em aftpdir} is the name of the directory hierarchy to which
|
|
anonymous FTP has access and {\em afsdir} is the name of the directory
|
|
through which files from the Andrew File System may be accessed. If
|
|
these access methods are not supported by your system, these arguments
|
|
should be the null string.
|
|
|
|
Users can use the Prospero file system even if the server is not
|
|
running, but they will be unable to access files or directories stored
|
|
locally. If {\tt pstart} is installed setuid and setgid to the
|
|
Prospero user and group IDs, then the directory server can be started
|
|
by any user. You may also want to start the directory server from the
|
|
system's {\it /etc/rc} file.
|
|
|
|
As things stand, users can access files and directories created on the
|
|
local system, but they can not create new virtual systems stored
|
|
locally. If you want to allow virtual systems to be stored locally,
|
|
then you must have the site administrator add a reference to the new
|
|
system from the {\it pfs\_storage} virtual directory.
|
|
|
|
\subsubsection*{Adding References to the New System}
|
|
|
|
The remainder of this section describes the actions that are to be
|
|
taken by the site administrator. Systems that are running the release
|
|
as distributed are part of the USC Information Sciences Institute
|
|
guest site. The site administrator is {\it
|
|
pfs-administrator@isi.edu}. This applies even if your system is
|
|
running a server. If you are not a site administrator, you can skip
|
|
this section.
|
|
|
|
If you want to allow virtual systems to be stored locally, several
|
|
links must be added and a new virtual directory must be created. This
|
|
will only be possible if the server has {\bf not} been configured read-only.
|
|
When a new site is established (see Section~\ref{new_site}) these
|
|
links and directories are automatically created on the primary system
|
|
for the site. The following steps are only required when adding
|
|
additional systems.
|
|
|
|
In the following steps, HOST is the fully qualified domain name for
|
|
the host to be added and PATH is the full path of the subdirectory of
|
|
the pseudo-user (described above) which will store the new virtual
|
|
directories. The last component will typically be {\it pfsdat}. If
|
|
that directory does not already exist, it should be physically created.
|
|
|
|
A link must be added from the virtual directory {\it pfs\_storage} to
|
|
the pfsdat directory on the new site. While still in the master
|
|
virtual system, the following steps will add this link.
|
|
|
|
\begin{verbatim}
|
|
vcd /pfs_storage
|
|
vln -n HOST PATH HOST
|
|
\end{verbatim}
|
|
|
|
You will next have to create the {\it local\_vsystems} virtual
|
|
directory. You do this by issuing the commands:
|
|
|
|
\begin{verbatim}
|
|
vcd HOST
|
|
vmkdir local_vsystems
|
|
\end{verbatim}
|
|
|
|
\subsubsection{Creating a Virtual File System\label{creating_vfs}}
|
|
|
|
A virtual file system is created using the {\tt newvs} command. The
|
|
{\tt newvs} command is for use by the site
|
|
administrator\footnote{Systems which are running the release as
|
|
distributed are part of the University of Southern California
|
|
Information Sciences Institute guest site. The site
|
|
administrator is {\it pfs-administrator@isi.edu}. This
|
|
applies even if your system is running a server.}. To have a virtual
|
|
system created, send a message to {\it pfs-administrator} at your
|
|
site.
|
|
|
|
If you want to run a server but don't want the hassle of setting up
|
|
your own site, we can arrange to have virtual systems stored on your
|
|
server but have your server still be part of the ISI guest site. We
|
|
recommend this option.
|
|
|
|
\begin{verbatim}
|
|
newvs [-v#] [-e] [host [name [home [owner [desc_file]]]]]
|
|
\end{verbatim}
|
|
|
|
The {\tt newvs} command is used to create a new virtual system. If
|
|
called with no arguments, the user is prompted for the system on which
|
|
the new virtual system is to reside, the name of the virtual system,
|
|
the home directory, the owner, and the name of the description file.
|
|
|
|
The name of the virtual system is the default name with which it will
|
|
appear in the local site's master list of virtual systems. This name
|
|
is not automatically exported beyond the local site.
|
|
|
|
{\tt newvs} will create the virtual system, assign a global name to
|
|
it, and add the selected name in the master list of virtual systems
|
|
for the local site. It will also copy the links from the {\it
|
|
prototype} virtual system to the newly created one. The {\em -e}
|
|
option will suppress this copying, and will leave the new virtual
|
|
system empty. As a final step, {\tt newvs} will optionally write a
|
|
description file that may be read by {\tt vfsetup}.
|
|
|
|
The {\em -v} option is followed by an integer and sets the verbosity
|
|
level. The meaning of the verbosity levels are presented in
|
|
Table~\ref{newvs_verbosity_tab}.
|
|
|
|
\begin{table}
|
|
\begin{center}
|
|
\caption{Verbosity levels for newvs\label{newvs_verbosity_tab}}
|
|
\vspace{0.1in}
|
|
\begin{tabular}{|l|l|}\hline
|
|
Value & Meaning \\ \hline \hline
|
|
0 (default) & Prompt for required input \\ \hline
|
|
1 (-v) & Explain what is required when asking for input \\ \hline
|
|
2 & List each action taken \\ \hline
|
|
3 & Stop before each step \\ \hline
|
|
4 & Stop before each step and explain the action \\ \hline
|
|
\end{tabular}
|
|
\vspace{-0.1in}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\section{Setting up a New Site\label{new_site}}
|
|
|
|
This section explains how to set up a new site. Systems that are
|
|
running the release as distributed are part of the USC Information
|
|
Sciences Institute guest site. This applies even if your system is running a
|
|
server. If you would like to set up your own site, send a message to
|
|
{\it info-prospero@isi.edu} to obtain the appropriate
|
|
additional files. Unless you are setting up
|
|
your own site, you may skip the remainder of this section.
|
|
|
|
Before you begin, you will have to obtain a global prefix that will
|
|
uniquely identify the virtual systems registered at your site. A
|
|
prefix may be obtained by sending a message to {\it
|
|
pfs-administrator@isi.edu}.
|
|
|
|
The global prefix is part of the low level name for each virtual
|
|
system. It should be thought of as an address. Users employ higher
|
|
level names to specify virtual systems. Registering a prefix will
|
|
allow objects created at your site to be named by others. Even if
|
|
your site will not be reachable by any other sites, it is still
|
|
important to register a prefix. Doing so guarantees that no other
|
|
site has the same prefix. This will make it possible to connect with
|
|
the rest of the global system should a connection ever be established.
|
|
More information on setting up an isolated site is described in
|
|
Section~\ref{isolated}.
|
|
|
|
\subsection{Setting up the Master Directories}
|
|
|
|
To initially set up a new site, run the command {\tt newpsite}.
|
|
{\tt newpsite} will construct a skeletal site configuration based on the
|
|
compile time options described in the previous section.
|
|
|
|
Once the site has been set up, it will be necessary to create
|
|
additional directories and add them to the prototype on which new
|
|
virtual systems will be modeled.
|
|
|
|
\subsection{Setting up an Isolated Site\label{isolated}}
|
|
|
|
As was already mentioned, even if your site will be isolated from
|
|
others, you should still try to register a unique global prefix.
|
|
|
|
If your site will be isolated from other sites you will have to set up
|
|
a replica of the global root. This directory must be reachable with
|
|
the name ``\#'' from your site's master list of virtual systems. To
|
|
create a replica of the global root, create a directory and add nested
|
|
subdirectories corresponding to each component of your sites global
|
|
prefix. The last entry should be a link to your site's master list of
|
|
virtual systems.
|
|
|
|
\subsubsection{If You Cannot Register a Prefix\label{no_prefix}}
|
|
|
|
If it is not possible to contact {\it
|
|
pfs-administrator@isi.edu,} then it may still be possible to
|
|
generate a unique global prefix based on a unique identifier assigned
|
|
by another authority. Right now, the only names that may be turned
|
|
into unique global prefixes are officially registered Internet domain
|
|
names.
|
|
|
|
\paragraph{Internet Domain Names.} If you have an officially
|
|
registered Internet domain name, it may be turned into a global prefix
|
|
by reversing the order of the components, replacing the periods with
|
|
slashes, and prepending ``\#/INET/''.
|
|
\begin{verbatim}
|
|
ISI.EDU = #/INET/EDU/ISI
|
|
\end{verbatim}
|
|
|
|
\section{Glossary}
|
|
|
|
\paragraph{conventional link.} A conventional link is similar to
|
|
a hard link in the Unix file system. It maps a name for an object to
|
|
the information needed to access it.
|
|
|
|
\paragraph{filter.} A filter is a program attached to a link.
|
|
A filter can modify the results of directory queries where the path
|
|
from the root of the virtual file system to the queried directory
|
|
passes through the filtered link.
|
|
|
|
\paragraph{global file system.} The global file system is the collection
|
|
of links and directories that make up the virtual file systems
|
|
accessible to the user. The links and directories form a generalized
|
|
directed-graph.
|
|
|
|
\paragraph{link.} A link is either a conventional link or a union
|
|
link, with or without an attached filter.
|
|
|
|
\paragraph{local system.} The local system is the physical system to
|
|
which a user is logged in, on which processes execute, or on which
|
|
files are stored.
|
|
|
|
\paragraph{master directory.} A master directory is a directory
|
|
maintained at the site level, and included through union links as part
|
|
of the corresponding directory in multiple virtual systems.
|
|
|
|
\paragraph{site.} A site is a collection of virtual systems
|
|
administered by a particular organization. An important
|
|
characteristic of a site is that its virtual systems contain prominent
|
|
references to the other virtual systems that are part of the site.
|
|
|
|
\paragraph{union link.} A union link is a link to a directory that
|
|
causes the links that are part of the linked directory to appear as
|
|
part of the directory containing the union link. A directory's
|
|
contents are the union of the set of conventional links it contains
|
|
and the contents of all directories included through union links.
|
|
|
|
\paragraph{view.} A view is a mapping from names to objects. Name
|
|
spaces, parts of name spaces, and individual directories all define
|
|
views. Because it specifies a name space, a virtual system also
|
|
imposes a view. It is possible for more than one virtual system to
|
|
impose the same or similar views.
|
|
|
|
\newpage
|
|
\paragraph{virtual directory.} A virtual directory is a directory in
|
|
a virtual file system. The contents of a virtual directory might be
|
|
calculated at the time the directory is queried by applying filters or
|
|
expanding union links.
|
|
|
|
\paragraph{virtual file system.} A virtual file system is the file
|
|
system part of a virtual system. It consists of a root directory and
|
|
all the files and directories that can be reached by traversing 0 or
|
|
more links. The virtual file system is a projection of the
|
|
global file system as viewed from the selected root.
|
|
|
|
\paragraph{virtual system.} A virtual system is a distributed system
|
|
that is assembled from the files, processors, services, applications,
|
|
users and other components available over a global network. The owner
|
|
of a virtual system identifies the components of interest, and
|
|
assembles them into a virtual system by assigning names.
|
|
|
|
\newpage
|
|
\section{Quick Reference}
|
|
|
|
\subsection*{Commands affecting the Prospero file system:}
|
|
|
|
This reference sheet is not as up to date as the rest of this manual.
|
|
Sorry.
|
|
|
|
\begin{verbatim}
|
|
vfsetup [-n host path , [-r,v] name , -f file]
|
|
vcd [-u] path
|
|
vwd
|
|
vls [-v] [-u] [-f] [path]
|
|
vln [-u] [-s] [-e] [-n host1] name1 name2
|
|
vmkdir directory
|
|
vrm link
|
|
vget virtual-file [local-file]
|
|
padmin [ -motd | -kill | -restart | -set parameter | -get parameter
|
|
| -command ] [ server ]
|
|
newvs [-v#] [-e] [host [name [home [desc_file]]]]
|
|
list_acl [-d dir] [link-name]
|
|
set_acl [-asirKE,-n,-N] [-t type] [-d dir] [-l link] rights principals
|
|
vdisable ( not at all installations)
|
|
venable ( not at all installations)
|
|
\end{verbatim}
|
|
|
|
\vspace{-.25in}
|
|
\subsection*{Meanings for PFS\_DEFAULT:}
|
|
\vspace{-.12in}
|
|
|
|
The meanings of the values for the {\sc pfs\_default} environment variable
|
|
are:
|
|
|
|
\begin{table}[h]
|
|
\begin{center}
|
|
\caption{Settings for the {\sc pfs\_default} environment variable}
|
|
\vspace{0.1in}
|
|
\begin{tabular}{|c|p{3.9in}|} \hline
|
|
Value & Meaning \\ \hline \hline
|
|
0 & Never resolve names within the virtual system \\ \hline
|
|
1 & Always resolve names within the virtual system \\ \hline
|
|
2 & Resolve names within the virtual system if they contain a : \\ \hline
|
|
3 & Resolve names within the virtual system by default, but
|
|
treat names beginning with an @ or full path names that
|
|
don't exist in the virtual system as native file names \\ \hline
|
|
4 & Resolve names within the virtual system by default, but
|
|
treat names beginning with an @ as native file names \\ \hline
|
|
\end{tabular}
|
|
\vspace{-0.1in}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\end{document}
|