Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

When I execute shell, but it is carried out by cron "sudo: sorry, you must have a tty to run sudo" appears. but how should this have dealt?

share|improve this question
add comment

3 Answers

up vote 1 down vote accepted

You don't need sudo to run programs as other users in cron (at least with the system crontab).

Just change the user field from root to the target user.

If you really want su does work in cron.

share|improve this answer
    
Nice!! I get It!, but "you must have a tty to run sudo" what ? what's tty? –  freddiefujiwra May 27 '09 at 2:24
2  
Historically, tty is "teletype". Really the error means that sudo can only be run from an interactive shell. For example, a shell receiving its input from a teletype. –  Kevin Beck May 27 '09 at 3:45
add comment

You can also simply reconfigure sudo to not require a tty by:

Editing (as root) the file

/etc/sudoers

And commenting out the line that says:

Defaults requiretty
share|improve this answer
add comment

You can add NOPASSWD: to the relevant entry in the sudoers file to stop it asking for a password, which I think will help.

You're better off running it from the crontab of the desired user in the first place, and avoiding the need for sudo.

To edit fred's crontab:

su - fred
crontab -e
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.