<<< VAXAXP::NOTES$:[NOTES$LIBRARY]VMSNOTES.NOTE;1 >>> -< VAX and Alpha VMS - Digital Internal Use Only >- ================================================================================ Note 1413.5 %JBC-E-NOCMKRNL, operation requires CMKRNL privilege 5 of 8 GIDDAY::GILLINGS "a crucible of informative mistake" 62 lines 25-AUG-1996 21:52 -< Not so fast... >- -------------------------------------------------------------------------------- Although I take quite a few calls on this subject, I cannot agree with modifying INSTALL to prevent installing a shareable image with (apparent) privilege. There *IS* a circumstance where it makes a differece, and there are probably applications out there which will be broken if the behaviour is changed. You can take an ordinary MAIN program and link it /SHARE. It can even have a transfer vector so other images can link against it's routines. Now, if you take such an image and install it with /PRIVILEGE, you *WILL* get the privilege if you execute the image as a MAIN program, but, of course, you *WON'T* get them if it's activated as a shareable image. INSTALLed images work this way on both Alpha and VAX. A simple example, the image contains a subroutine which displays process image masks and a main program which calls that routine. The program called "caller" is the same main program compiled separately: $ link/notrace/share privimag+sys$input/opt symbol_vector=(ShowPrivs=PROCEDURE) $ $ run privimag ! Before installing - no image privileges AUTHPRIV = SETPRV,TMPMBX,NETMBX,READALL CURPRIV = SETPRV,TMPMBX,NETMBX,READALL IMAGPRIV = PROCPRIV = SETPRV,TMPMBX,NETMBX,READALL $ link caller+sys$input/opt privimag/share $ run caller AUTHPRIV = SETPRV,TMPMBX,NETMBX,READALL CURPRIV = SETPRV,TMPMBX,NETMBX,READALL IMAGPRIV = PROCPRIV = SETPRV,TMPMBX,NETMBX,READALL $ install add privimag/open/head/share/priv=cmk $ run caller ! still no privileges for the caller AUTHPRIV = SETPRV,TMPMBX,NETMBX,READALL CURPRIV = SETPRV,TMPMBX,NETMBX,READALL IMAGPRIV = PROCPRIV = SETPRV,TMPMBX,NETMBX,READALL $ run privimag ! but direct execution does get the privileges AUTHPRIV = SETPRV,TMPMBX,NETMBX,READALL CURPRIV = CMKRNL,SETPRV,TMPMBX,NETMBX,READALL IMAGPRIV = CMKRNL PROCPRIV = SETPRV,TMPMBX,NETMBX,READALL Now, I can think of some circumstaces under which this might be a handy feature. I'm sure some customers have discovered it and are using it to their advantage. Yes it generates calls (I think I deal with most of them in Australia), but at least they're very easy to fix and never involve critical production systems. If INSTALL broke this behaviour, the resulting calls would be much more serious as they would be far more likely to affect existing production systems and would be substantially harder to fix and to justify to the customer. Perhaps an informational message would be a good compromise: %INSTALL-I-TANSTAAPSI :-) John Gillings, Sydney CSC