2

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?

3 Answers 3

2

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.

2
  • Nice!! I get It!, but "you must have a tty to run sudo" what ? what's tty? May 27, 2009 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, 2009 at 3:45
3

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
0

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .