HP OpenVMS Systemsask the wizard |
The Question is: How do I create a Fortran program that can be installed with priviledges. I've look in the Fortran, Linker, and Programmer User Guide, but am still having trouble putting it all together. I can install the image with protection, but when the program executes the user still can not perform the task. The privs are not granted while the program runs. The Answer is :
The only mandatory considerations in creating a privileged image is that
it must be linked /NODEBUG/NOTRACEBACK, and it must be an executable
image. (A shareable image cannot grant privileges, and a privileged
shareable image does not use the INSTALL/PRIVILEGE mechanism -- please
see the Shareable Image Cookbook referenced in the OpenVMS FAQ for
details on shareable images.)
The OpenVMS Wizard recommends that the first executable statement in a
privileged image be a call to $SETPRV to turn OFF all privileges. Code
that requires privilege should specifically enable the needed privilege(s)
immediately prior to using the privilege and disable the privilege(s)
immediately afterwards. This minimises the chances that the program will
open an unexpected security hole in your system.
The executable image needs to be installed with privilege using the
INSTALL utility. It is important that the image is activated using
exactly the same name as it was installed with. The simplest way to
guarantee this is to define a SYSTEM logical name at EXECUTIVE mode
and use it exclusively when referring to the image. For example:
$ DEFINE/SYSTEM/EXECUTIVE MYPRIV DKA100:[WIZARD]PRIV_IMAGE.EXE
$ INSTALL MYPRIV /OPEN/HEADER/SHARED/PRIVILEGE=(WORLD,SYSLCK)
$ RUN MYPRIV
Do not specify the file version number on the logical name or during
the image activation. (This overrides the known-image activation.)
Also consider using a subsystem identifier, as this can avoid the need
INSTALL an executable image with additional privilege(s).
|