[Cialug] cron gpg

Barry Von Ahsen barry at vonahsen.com
Mon Aug 28 10:48:51 CDT 2006


I have a process that gpgs and ftps a file.  When I run it from the 
command line (as root), everything works fine.  When cron tries to run 
it (as root), it claims it can't find the gpg key it needs.  Is there 
anything special I need to do?  Is cron really running as root, or as 
some root-equivalent user?  This is on RHEL 4.3

I just noticed SHLVL is different, but I re-ran from SHLVL=2 on the 
command line and it worked fine

Here is cron's env:
SHELL=/bin/bash MAILTO=root OLDPWD=/ USER=root 
PATH=/sbin:/bin:/usr/sbin:/usr/bin PWD=/home/dir/lmsfile HOME=/ SHLVL=2 
LOGNAME=root _=/bin/env

Here is root's env (from the same dir):
HOSTNAME=www.server.com
SHELL=/bin/bash
TERM=screen
HISTSIZE=1000
USER=root
LS_COLORS=*snip*
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/home/dir/lmsfile
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env
OLDPWD=/root

and the gpg error:
gpg: entsys: skipped: public key not found
gpg: /home/dir/lmsfile/file.clr: encryption failed: public key not found

and the relevant script line:
/usr/bin/gpg -v -r entsys --yes --always-trust --output ${GPGFILE} 
--encrypt ${CLEARFILE} >> gpg_putfiles.log 2>&1

and the crontab line:
30 20 * * * root sh /etc/cron.d/runlms > /dev/null 2>&1

this all worked fine on mandrake, then went to crap on rhel until I 
figured out I couldn't directly execute the script, I had to run it 
through sh

-barry



More information about the Cialug mailing list