[CentOS] Cronjob and sudo

Thu Feb 12 18:57:34 UTC 2015
Valeri Galtsev <galtsev at kicp.uchicago.edu>

On Thu, February 12, 2015 12:45 pm, Valeri Galtsev wrote:
>
> On Thu, February 12, 2015 12:32 pm, Matt wrote:
>> I need to remove empty files out of a directory that are over 6 hours
>> old so I created this script and put it in cron.hourly.
>>
>> #!/bin/sh
>> cd /var/list
>> sudo -u matt find /var/list -mmin +360 -empty -user matt -exec rm {} \;
>>
>> I want to run it as matt rather than root for just an added bit of
>> safety.  Problem is I get this.
>>
>> "sudo: sorry, you must have a tty to run sudo"
>>
>> Is there another way to do this?  As I understand the reason for this
>> is requiretty in sudo config.  If that improves security I would
>> rather not change that setting.
>
> Did you try to use su instead? E.g., in my /etc/rc.local I have a bunch of
> stuff run on behalf of users other than root. Like:
>
> /bin/su lmgrd -c 'export
> IDL_DIR=/usr/local/opt/flexlm/idl;/usr/local/opt/flexlm/idl/bin/lmgrd -c
> /usr/local/opt/flexlm/licenses/license.dat -l /var/log/flexlm/idl.log >
> /dev/null 2>&1'
>

As a second thought (which should have been firth thought), you may be
able to just add cron job for that user (if that user isn't deprived the
ability to have cron jobs). Assuming you are root, edit that user's
crontab:

crontab -u matt

and either put that single long command line in user's crontab (note, you
also need to specify time parameters, take a look into man crontab) or
point to script (which should be readable and executable by that user).

Valeri

++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev
Sr System Administrator
Department of Astronomy and Astrophysics
Kavli Institute for Cosmological Physics
University of Chicago
Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++