Wednesday, January 12, 2011

the error occured a command in sudo from crontab.

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?

  • 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.

    ffffff : Nice!! I get It!, but "you must have a tty to run sudo" what ? what's tty?
    Kevin Beck : 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.
    From LapTop006
  • 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
    
    From pgs
  • 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 comments:

Post a Comment