RBAC/ExamplesCGI/appl/cgi. The
scripts use a few libraries of Perl subroutines located in
RBAC/cgi/lib. The tool implements the following functions:
add/remove users, add/remove roles, assign/de-assign roles to/from users,
add/remove inheritance relation between two roles, establish/de-establish
SSD and DSD relations between two roles. The execution of each
administrative operation is preceded by a test of the RBAC/Web
Database consistency and a test of the conditions associated with that
operation assuring the preservation of the database consistency. If any of
these tests fails, the administrative operation is not performed.
In the definition of HTTP 1.1, the semantics of PUT are pretty much
"implementation defined". The RBAC/Web CGI implements two kinds of
PUT. One where the resource addressed is simply replaced and one where the
resouce addressed becomes the latest "version", i.e., the resouce addressed
is renamed to an earlier version and the current version becomes that which
was PUT. In the distribution as installed, the CGI is configured for the
simple replacement PUT. The RBAC/Web CGI also permits a PUT to be
passed to another CGI. The mlsput CGI in the
RBAC_v1.1/RBAC/ExamplesCGI/appl/cgi directory is an example of
such a PUT CGI.
RBAC_v1.1/RBAC/cgi directory. This program is how the user
establishes an RBAC Session. i.e., creates the active role set
(<user>.active_roles) for the user.
It is possible to use this distribution without using the Session Manager assuming one does not use any of the role relationships: inheritance, and dynamic and static separation of duties. In an elementary RBAC system, a user only has assigned roles, those roles are the only ones that can become active, and every assigned role is always active. Thus, the Session Manager is not necessary. The active role sets for each user can be created with an editor and left permanently in place.
RBAC_v1.1/RBAC/DOCs directory. Included in that directory are
this README.html file, the RBAC/Web Design Document,
design.html, documentation for RBAC/Web CGI,
CGI_Doc.html, and the user agreement, rbacweb.agreement.
Please read the user agreement.
RBAC_v1.1/RBAC/ExamplesCGI directory contain many
examples of how this distribution of RBAC/Web may be used. The
bank and MLS demos are in the
RBAC_v1.1/RBAC/ExamplesCGI/appl directory. The
RBAC_v1.1/RBAC/admin/users file contains the users defined in
the demos. The password for each user is that user's name. The user
admin is the user assigned the role role_admin, which is the
required role for running the RBAC/Web Admin Tool. The other
directories in the RBAC_v1.1/RBAC/ExamplesCGI directory contain
tests specifically for the CGI. See the CGI Documentation in
RBAC_v1.1/RBAC/DOCs/CGI_Doc.html. RBAC_vi.1/RBAC/src provides the source to compile each of these
systems. For the SunOS system, the file RBAC_v1.1/RBAC/src/Makefile
must have the macro SYSTEM defined as PreSolaris.
Compilation can be avoided, for these systems, by using the appropriate binary
distribution nph-RBACcgi, which is available in
RBAC_v1.1/binaries.
umask 0tar xf
rbac_v1.1_dist.tarRBAC_v1.1. In that directory is this README.html file and
rbacweb.agreement, the user agreement file for use of this software.
./RBAC_v1.1/SetProperOwner.sh
<name_of_user_ID_of_http_server> ScriptAlias /RBAC/ <RBAC_root>/cgi/ Alias /RBAC_DOCs/ <RBAC_root>/DOCsAlias
/RBAC-CGI_src/ <RBAC_root>/srcAlias /RBAC_DOCs <RBAC_root>/DOCsAlias
/RBAC-CGI_src <RBAC_root>/src<RBAC_root>/conf.sess,
change:
$RBAC_BASE_URL="http://$RBAC_SERVER/RBAC";
to$RBAC_BASE_URL="http://$RBAC_SERVER/RBAC_other"; If a name other than "RBAC_DOCs" is used in the Alias above (e.g.,
"RBAC_DOCs_other"), then in <RBAC_root>/conf.cgi, change:
docsURL /RBAC_DOCs to docsURL
/RBAC_DOCs_other If a name other than "RBAC-CGI_src" is used in the Alias (e.g.,
"RBAC-CGI_src_other"), then in <RBAC_root>/conf.cgi,
change:
srcURL /RBAC-CGI_src to srcURL
/RBAC-CGI_src_other
<RBAC_root>/ExamplesCGI contains files, both
documents and CGI scripts, whose access is controlled by RBAC/Web.
Consequently, the HTTP Server administrator should not provide any
Alias or ScriptAlias which permits access to the
<RBAC_root>/ExamplesCGI directory or any of its contents
by means of the HTTP Server directly. This caveat applies equally to any
other files whose access is to be controlled by RBAC/Web. <RBAC_root>/conf.cgi, changes are required to run
the RBAC/Web demos.
To run the bank and the MLS demos change:
Pass /applData/*
/export/RBAC_v1.1/RBAC/ExamplesCGI/appl/docs/* toPass
/applData/* <RBAC_root>/ExamplesCGI/appl/docs/*
Exec /applCGI/*
/export/RBAC_v1.1/RBAC/ExamplesCGI/appl/cgi/* toExec
/applCGI/* <RBAC_root>/ExamplesCGI/appl/cgi/*
To run RBAC/Web CGI demos change:
Pass /Example/* /export/RBAC_v1.1/RBAC/ExamplesCGI/*
toPass /Example/* <RBAC_root>/ExamplesCGI/*
Exec /ExecTest/* /export/RBAC_v1.1/RBAC/ExamplesCGI/cgi/*
toExec /ExecTest/* <RBAC_root>/ExamplesCGI/cgi/*
Pass /ExecTestPath/*
/export/RBAC_v1.1/RBAC/ExamplesCGI/AddPathInfo/* toPass
/ExecTestPath/* <RBAC_root>/ExamplesCGI/AddPathInfo/*
<RBAC_root>/conf.sess, change:$RBAC_SERVER=$ENV{'SERVER_NAME'};
to$RBAC_SERVER="$ENV{'SERVER_NAME'}:$ENV{'SERVER_PORT'}";
AuthUserFile /export/RBAC_v1.1/RBAC/htpasswd
toAuthUserFile <RBAC_root>/htpasswd <RBAC_root>/cgi,<RBAC_root>/cgi/lib,<RBAC_root>/admin,<RBAC_root>/ExamplesCGI/cgi,
and<RBAC_root>/ExamplesCGI/appl/cgi #!/usr/local/bin/perl to the location of
perl. It may be possible to use softlinks so that these lines need not
be changed.
<RBAC_root>/cgi/nph-RBACcgi by either copying
the appropriate distribution file from
RBAC_v1.1/binaries/YourSystem/nph-RBACcgi or compiling from the
provided sources.
To generate nph-RBACcgi from the sources, perform the following:
cd <RBAC_root>/src<RBAC_root>
address.<RBAC_root>/cgi.make http://<your_server>/RBAC/login <RBAC_root>/admin/users file and that same name as the
password. To add a new user:
<RBAC_root>/cgi/.htaccess and
<username>'s password to <RBAC_root>/htpasswd
according to HTTP Server instructions.
<RBAC_root>/ExamplesCGI/appl/docs/tmp directory. Make this
directory writable by the user ID of the HTTP Server process.
Each user has a directory in the directory
<RBAC_root>/ExamplesCGI/appl/docs/tmp. It contains
temporary files accessible only by <username> in the role whose name is
<username>. This "self" role is automatically generated by the
login process and may also be used for discretionary access control.
The "self" role does not appear in any of the files in
<RBAC_root>/admin except for <username>.active_roles.
Note that in the bank and MLS demos, the <username> item
on the menu should return an error. Discretionary access control has not been
implemented for these demos.
<RBAC_root>/ExamplesCGI/appl/docs/tmp/<username>
directory, create a .RBAC_acl file with the single line: