From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 1-NOV-1990 12:48:30.74 To: MRGATE::"ARISIA::EVERHART" CC: Subj: re: Is it possible to talk without GRPNAM Received: by crdgw1.ge.com (5.57/GE 1.76) id AA17217; Thu, 1 Nov 90 12:36:41 EST Received: From VENUS.YCC.YALE.EDU by CRVAX.SRI.COM with TCP; Thu, 1 NOV 90 08:39:45 PDT Received: from BULLDOG.CS.YALE.EDU by Venus.YCC.Yale.Edu; Thu, 1 Nov 90 11:36 EST Received: from lrw.UUCP by BULLDOG.CS.YALE.EDU via UUCP; Thu, 1 Nov 90 11:27:25 EST Received: by lrw.UUCP (DECUS UUCP w/Smail); Thu, 1 Nov 90 10:52:34 EDT Date: Thu, 1 Nov 90 10:52:34 EDT From: Jerry Leichter Subject: re: Is it possible to talk without GRPNAM To: INFO-VAX@KL.SRI.COM Message-Id: <9011011627.AA20518@BULLDOG.CS.YALE.EDU> X-Envelope-To: info-vax@kl.sri.COM If I log into two separate terminals with the same account, Is there any way to communicate between them using a mailbox without having the GRPNAM (I think that is the spelling) priv set? Sure. The ability to communicate through a mailbox is dependent only on the access rights you need to get to that mailbox. If both processes are running under the same UIC, they will both gain access via the OWNER protection of the mailbox, which normally will be set to allow access. You can set the protection to allow or deny access to GROUP, WORLD, and SYSTEM, or you can be even more selective an use an ACL. So, where does GRPNAM come in? In order to communicate through a mailbox, you have to know WHICH mailbox to communicate through. Normally, you define a logical name in some appropriate logical table accessible to all the processes that need to use the mailbox. In general, the logical is put in the job table for temporary mailboxes (and is thus accessible throughout the job tree) and in the system table for permanent ones. That won't work here, since there is normally no table shared by the two independently-started jobs. There are at least three alternatives you can use, however: - Have the creator of the mailbox store its number in a file. Every- one else reads the file. Since the file need only be accessed when a process wants to open the mailbox, the overhead should not be excessive. - Create a system-wide table accessible to both processes. This requires privileges, but need only be done once, probably at system startup. The table would be a system-wide table accessible only to the particular UIC involved. The logical defining the mailbox can be placed directly into that table by simply redefining LNM$TEMPORARY_MAILBOX. - Hack approach. LNM$JOB translates to an a system-wide table, owned by your UIC, of the form LNM$JOB_xxxxxxxx, where the x's are hex digits. (They actually are the hex representation of the address of the JIB - Job Information Block - for the job. It would have made things SO much simpler if they were the hex representation of the PID of the process at the top of the job tree....) So, while you normally have no reason to do it, you CAN access the job tables of any of your jobs on the system - IF you can find them. There's no easy way to find the JIB's of your other jobs, nor can you do wildcard access to a logi- cal name table from a program; but you CAN from DCL with the SHOW LOGICAL command. Try SHOW LOGICAL/STRUCTURE for the quickest look - it shows you all tables that you have access to, so automatically sorts out which JOB_xxx tables are yours. -- Jerry