On 08/04/2010, at 11:09 PM, Aaron Bartell wrote:
Basically I am in need of some insight on how best to setup locked
down
environments for RPG CGI development. I need to give RPG developers
enough
access to accomplish a tutorial but not allow them to touch anybody
elses
stuff (i.e. jobs, libraries, spool files, etc).
Has anybody setup such an environment and would you be willing to
share your
thoughts and ideas?
The usual way (i.e., education class stuff) to do this is to create a
set-up program (usually in CL) that accepts a number of students and
creates a library, directory, and all necessary objects for each
student. Student IDs are usually pre-defined (e.g., RPGCGInnn) and all
primary objects (e.g., libraries, job descriptions, etc.) are given
the same name. The library and directory authority should be *PUBLIC
*EXCLUDE to keep students out of other students stuff.
You would have a base library or directory of partial or template
objects and this would be duplicated into the student library during
the set-up process. Truly common objects that students needed to use
but not change could be in a common library or directory.
Course instructions should have students create most things using the
name of their student ID thus HTTPSVR(RPGCGInnn). Programs, files,
etc. can have different names but must be created in their student
library or directory.
If you are running this on a dedicated system/LPAR that's about all
you need to do. If you have other stuff such as development occurring
on the same machine then you'll want to secure other stuff from the
students (you'll find at least one attempts to explore stuff outside
the course).
All user libraries and directories should be *PUBLIC *EXCLUDE. Secure
all STR*, END*, CRT*, DLT*, ADD*, RMV*, CHG*, etc. commands with an
authorisation list that excludes the student IDs from commands they
don't need. Securing the commands is somewhat extreme because if the
are properly excluded from a library/directory they can't use commands
on the contents anyway but I mention it only for completeness.
Create commands and CL programs to manage facilities they might need
such as a way to start and end an HTTP instance. These commands would
be a subset of the IBM originals and only allow managing the students
own instance(s). The CL program would adopt sufficient authority to
run the real secured commands. Compile with USRPRF(*OWNER) and then
change the owner to something suitable.
A cleanup program blows away everything after the course is run.
This basic structure works well for standard courses but fails if you
need to give students *ALLOBJ such for a security course. In that case
your best bet is to use a dedicated system.
Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists
http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------
As an Amazon Associate we earn from qualifying purchases.