sendmail on SCO ODT + uucp

Robert A. Kukura rk at theep.boston.ma.us
Mon Apr 1 03:24:39 AEST 1991


In article <1991Mar29.175919.17154 at edm.isac.CA> steve at edm.isac.CA (Steve Hole) writes:

   In the orginal article Scott Simpers writes:
   > We are having a peculiar problem with sendmail, and I would
   > appreciate any ideas, suggestions, or solutions.
   > 
   > Sendmail is running on an SCO ODT 1.0 system, which is our UUCP
   > gateway.  The problem appears sending UUCP mail from other hosts on
   > our Lan to UUCP sites.  It works fine delivering, via SMTP, to all
   > our local machines, and sometimes works OK when sending, via UUCP,
   > to other hosts.
   > 
   > The probem is that it will someimes get into a state where it says
   > "Cannot exec '/usr/bin/uux' errno=13".  This doesn't seem to be a
   > problem when sending UUCP mail from the local (ODT) system, but
   > rather when another systemon our networkis attempting to get it to
   > send UUCP mail.  Once it gets into this state where it will only
   > send local UUCP mail, the only solution appears to be to kill and
   > restart sendmail.
   > 

Most likely, if this is the problem I've seen before, incoming SMTP
mail is not being reliably delivered either.

   OK, Scott, you are not going crazy.  I have noticed the identical
   problem, except that I am running smail v3.19.   First of all let me
   refine the occurrence of the problem a little.  The problem occurs on
   our machine under the following conditions:

   1.  If I start sendmail from the rc as a an stmp daemon with the
       following arguments:

       /usr/lib/sendmail -bd -q1h

       the any messages recieved via SMTP and routed to an external
       connection via uucp will fail with a similar error message to the
       one you show above.  If I kill the daemon started by the rc, and run
       it from the command line, everything works fine.

   2.  If I start smtpd via inetd.conf, it fails similarly every time.

   Therefore, it would seem that smtp daemon processes started without a
   controlling terminal cannot execute uux.  I have absolutely no idea why.
   Perhaps something in the environment of a process started from a shell
   command line is required and not present when started from either the rc
   or inetd.

Its not the controlling terminal or the environment, its SCO's
infamous security feature, the LUID, or login user id.  The init
process that runs the rc scripts does not have one, and therefore the
sendmail daemon started from the rc script does not have one either.
This means that the kernel prevents the sendmail daemon from execing
/usr/bin/uux, which I believe (I'm not on an SCO system at the
moment), has the SUID bit set.

When a user sends mail, the sendmail that is invoked has the user's
LUID, so it is permitted to exec /usr/bin/uux, and delivery succeeds.
When mail arrives via SMTP for forwarding, its handled by the sendmail
daemon with no LUID and it fails.  If you kill and restart the
sendmail daemon by hand, it has your LUID, and succeeds.

The solution is to give the sendmail daemon started by init an LUID by
editing /etc/rc2.d/S85tcp to read something like:

	/bin/su root -c "/usr/lib/sendmail -bd -q1h"

I hope this helps.

-- 
-Bob Kukura		internet: rk at theep.boston.ma.us
			uucp: spdcc!theep!rk



More information about the Comp.unix.admin mailing list