I was recently working on a Perl script that would SSH to another server and run a sudo command on the remote server that was failing. The error that was received is below.
Error: sudo: sorry, you must have a tty to run sudo
The reason for this is an update along the way with sudo locked it down further by adding the below line to /etc/sudoers configuration file.
Defaults requiretty
To allow a remote script to login and run a command via sudo simply comment out that line as shown below.
# Commented out so remote script can login and run a command without a tty # Defaults requiretty
I would suggest making a comment in the sudoers file along with the actual script that is running just in case there is another systems administrator that is tasked with working on this server at a later date. Now when your script runs it will not throw that error and should be able to run the remote command that was initially required.
- sudo: unable to resolve host I ran in to the weirdest error today. “sudo: unable...
- Compiling ruby on OS X 10.5: readline.c:703: error: ‘filename_completion_function’ undeclared When compiling Ruby 1.8.6 (in this case, p287) on OS...
- NGINX – SSL received a record that exceeded the maximum permissible length When configuring NGINX with SSL the configuration stated you could...
- Authentication refused: bad ownership or modes for file .ssh/authorized_keys When configuring SSH keys to be able to login to...
- TFTP: Error code 1: File not found You may get the below error code when attempting to...
Tags: error, perl, requiretty, script, SSH, sudo, sudoers, tty
























Entries (RSS)
While I don’t have much else to add to this post, I am certainly grateful that the author took the time to talk about this. I agree with most of what was talked about, and look forward to learning some more from you. Thank you.
[Reply]
alex Reply:
March 8th, 2010 at 3:15 PM
Hello SEO Tools,
Thanks for taking the time to leave feedback relating to the sudo article.
Thanks.
alex
[Reply]