Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!columbia!rutgers!ames!ucbcad!ucbvax!YALE.ARPA!LEICHTER-JERRY From: LEICHTER-JERRY@YALE.ARPA Newsgroups: comp.os.vms Subject: Re: System login command files - minor correction Message-ID: <8704210320.AA09530@ucbvax.Berkeley.EDU> Date: Mon, 20-Apr-87 22:20:37 EST Article-I.D.: ucbvax.8704210320.AA09530 Posted: Mon Apr 20 22:20:37 1987 Date-Received: Wed, 22-Apr-87 00:02:52 EST Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Distribution: world Organization: The ARPA Internet Lines: 62 Many weeks back I posted a query about how people used the SYS$SYLOGIN logical name and the LGICMD qualifier in AUTHORIZE in conjunction with users' LOGIN.COM files. I received quite a few interesting replies.... First, though, this exercise revealed two erroneous (or at least misleading) points in the VMS documentation (System Manager's Reference Manual v4.4, page 5-7): 1) Under the heading "User-specified command file", it says "If individual [i.e. LGICMD] or system [i.e. SYS$SYLOGIN] login command procedures are not implemented, the system looks for a command file called LOGIN in the user's login directory....The file name must be LOGIN." Aside from the fact that everyone I know calls such a file LOGIN.COM instead of LOGIN., The documentation is correct - "file name" has a specific meaning in VMS: In the (partial) file SPECIFICATION "LOGIN.COM", the file NAME is "LOGIN"; ".COM" is the file TYPE. (Compare this to the "item" argument to F$PARSE().) The specification of the user's login file is produced by a parse analogous to: F$PARSE(,"SYS$LOGIN:LOGIN.;") is USUALLY "COM", but actually depends on the process's default CLI: DCL uses "COM", VAX RSX "CMD", and DEC Shell the null type. BTW, I'm not certain but I suspect similar parsing is done for SYS$SYLOGIN - something like: F$PARSE("SYS$SYLOGIN",".;") On systems where users may have default CLI's other than DCL, trying to execute a DCL SYS$SYLOGIN file would not work very well. This way, if you define SYS$SYLOGIN to be "SYS$SYSTEM:SYLOGIN" and provide, say, BOTH an "SYLOGIN.COM" and an "SYLOGIN.CMD", both DCL and RSX users would be able to execute a correct system-wide login file. the condition is incorrectly stated. A user's LOGIN.COM is executed even if SYS$SYLOGIN is defined (in which case the file defined by SYS$SYLOGIN is executed first, and the user's LOGIN.COM second). On the other hand, defining the LGICMD qualifier within AUTHORIZE does indeed turn off automatic execution of the user's LOGIN.COM. I suspect the language referring to "system login command procedures" is a hold-over from pre-V4 systems, and was originally meant to refer not to SYS$SYLOGIN, which didn't exist at the time, but to a system-wide login file specified by the LGICMD parameter. One result of this is that if you want to have the system-wide login command file invoke the user's, you probably don't want to use the SYS$SYLOGIN mechanism to invoke the system-wide file: the user's LOGIN.COM will be executed twice if you do. Also note that if you invoke the user's file explicity from SYLOGIN, it will be executed *before* any file you specify with LGICMD. If you really and truely want to execute the user's LOGIN.COM from within SYS$SYLOGIN, simply set LGICMD to _NL:. -- Jerry -------