sudo: sorry, you must have a tty to run sudo

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.

 

  1. Defaults requiretty 
Defaults requiretty

To allow a remote script to login and run a command via sudo simply comment out that line as shown below.

  1. # Commented out so remote script can login and run a command without a tty  
  2. # Defaults requiretty  
# 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.

 

Instead of commenting it out for everybody, you can just turn it off for certain users (or user groups)

Defaults:alex !requiretty

你可能感兴趣的:(ssh,perl)