Error - sudo: no tty present and no askpass program specified


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Error - sudo: no tty present and no askpass program specified
# 1  
Old 08-13-2012
Error - sudo: no tty present and no askpass program specified

Hi

I am trying to automate the deployment of a tar ball onto a set of remote servers and am getting this error from the ssh -

Code:
sudo: no tty present and no askpass program specified

What I have done is add some code into the user's ssh key that does a few things like delete the existing directory structure and untar the new one and so on.

It works fine from the command line, but I get this error when trying to embed the code in a script.

From the error it seems to be expecting a terminal session or an askpass program.

I don't really understand why I see this as the code is deployed and untarred ok???

At the moment, in the shh key I have -

Code:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="set -- ${SSH_ORIGINAL_COMMAND}; PSWD=$1; [[ $PSWD == welcome ]] || exit; [[ -f /tmp/muse.tar ]] || exit; NEWVERSION=$(tar xfO /tmp/muse.tar muse/lib/muse_version); [[ -n $NEWVERSION ]] || exit; OLDVERSION=;  [[ -f /usr/bin/muse/lib/muse_version ]] && OLDVERSION=$(cat /usr/bin/muse/lib/muse_version); [[ -n $OLDVERSION ]] && [[ $OLDVERSION -ge $NEWVERSION ]] && exit; [[ -d /usr/bin/muse ]] && sudo /bin/rm -rf /usr/bin/muse; sudo /bin/tar xvf /tmp/muse.tar -C /usr/bin && sudo /bin/chown -R musedeploy:muse_user /usr/bin/muse "

and in my sudoers.d file -

Code:
Cmnd_Alias MUSE_CMD = /bin/mv /tmp/muse.* muse.tar, /bin/rm -rf /usr/bin/muse,/bin/tar xvf /tmp/muse.tar -C /usr/bin,/bin/chown -R musedeploy\:muse_usr /usr/bin/muse
%musedeploy ALL = (root) NOPASSWD: MUSE_CMD

At the moment I am using the command -

Code:
ssh musedeploy@${SERVER} ${PSWD} || die "Deployment failed"

I could just not trap the error and dump stderr, but I'd rather understand what's going on if anyone can suggest anything.

Cheers

Steady
# 2  
Old 08-14-2012
For the 'no tty present', open up your sudoers file and look for a line that says
Quote:
Defaults requiretty
Change it so the requiretty has the negate character in front. Make it look like
Quote:
Defaults !requiretty
Notice the exclamation (negate) character in front of the requiretty

I'm confused by the code you are using
ssh musedeploy@${SERVER} ${PSWD} || die "Deployment failed"That looks like you are just trying to login to $SERVER as the user musedeploy and the failure is on the passwd. Does this account execute something on login?

Your sudo entry, is that on the $SERVER or is that on the local system? If you are wanting to execute the command on $SERVER then put the entry into the sudoers on $SERVER. You may want to setup passwd-less login for ssh as well.

With the !requiretty and the sudoers entry on $SERVER you could try your command as such:
Code:
ssh musedeploy@${SERVER} 'sudo $MUSE_CMD'

As you have NOPASSWD in the sudoers there is no need to worry about that.

The MUSE_CMD sudoers entry, is that suppose to be a single command or are they a string of separate commands? It appears you have multiple individual commands, they are not executing in succession. Is that what you are trying for?
# 3  
Old 08-15-2012
Hi Raggmop

Thanks for the reply.

Actually I got it working and it turned out to be a bug in my code. Nothing to do with the tty at all.

Embedding code in the key is perfect for what I wanted to do but awful to parse for bugs etc as it all has to appear on one line. (Unless someone can show me otherwise).

This has been quite a learning curve. If you are ever looking for creative ways to screw up sudo and ssh, I'm your man!

And yes, I was trying to create a passwordless log in that was locked down to just running the code embedded in the key on the server.

Thanks for responding Smilie

Steady
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Python: Redirecting to tty and reading from tty

In bash, you can do something like this: #!/bin/bash echo -n "What is your name? " > /dev/tty read thename < /dev/tty How can I do the same in python? I have a python script that has the following content: #!/usr/bin/python2.7 import getpass import sys import telnetlib import... (2 Replies)
Discussion started by: SkySmart
2 Replies

2. UNIX for Beginners Questions & Answers

No tty present and no askpass program specified

I am trying to rsync files from NodeA to NodeB. Using the below command. /usr/bin/rsync -v -a -e "ssh" --rsync-path="sudo -u msd rsync" /home/ansible/templates/app/Sprint6/webapps eric@NodeB:/opt/msdp/ca/iam_cac I can only ssh into NodeB as eric user but I want files placed as msd user.... (4 Replies)
Discussion started by: Junaid Subhani
4 Replies

3. Solaris

[Solved] No tty present and no askpass program specified!

Hi Guys, I use a script sdcmdeploy.ksh to deploy java application to respective dev/test environment. This script is being executed on SunOS. These apps are weblogic apps & the script internally calls weblogic deploy script to deploy application to weblogic cluster. But at this point it... (2 Replies)
Discussion started by: raj100
2 Replies

4. Shell Programming and Scripting

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

Hi, Have a need to run the below command as a "karuser" from a java class which will is running as "root" user. When we are trying to run the below command from java code getting the below error. Command: sudo -u karuser -s /bin/bash /bank/karunix/bin/build_cycles.sh Error: sudo: sorry,... (8 Replies)
Discussion started by: Satyak
8 Replies

5. UNIX for Dummies Questions & Answers

linux sudo: no tty present and no askpass program specified

Hi I have an Oracle DBA that is trying to install an RPM from Stratavia which is a web based portal and it executes the following: Instance Wrapper=sudo -u oracle /opt/datapalette/jython/jython Server Wrapper=sudo -u root /opt/datapalette/jython/jython I've compared the /etc/sudoers... (8 Replies)
Discussion started by: jeff-fafa
8 Replies

6. Red Hat

sudo: no tty present and no askpass program specified

i am trying overide the below error sudo: sorry, you must have a tty to run sudoi am aware of ssh -t option. But just experimenting with OS :D So, tried commenting out Defaults requiretty from my sudoers file after which i am getting the below error sudo: no tty present and no askpass... (4 Replies)
Discussion started by: chidori
4 Replies

7. Shell Programming and Scripting

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

Hi All, I running a unix command using sudo option inside shell script. Its working well. But in crontab the same command is not working and its throwing "sudo: sorry, you must have a tty to run sudo". I do not have root permission to add or change settings for my userid. I can not even ask... (9 Replies)
Discussion started by: Apple1221
9 Replies

8. Shell Programming and Scripting

how to execute a program present on another server using SFTP in perl

Hi, I want to execute a program which is present on another server. i want to use SFTP in perl, is it possible? how ? thanks. (1 Reply)
Discussion started by: anandgodse
1 Replies

9. Red Hat

sudo: no tty present and no askpass program specified

Hi Gurus: Can you help me get out of this message ? I already commented out the ff line in /etc/sudoers file but still prompts me for this message. #Defaults requiretty -sh-3.2$ ./check_diskErrors itag3.pm.staging.intra /dev/sda sudo: no tty present and no askpass program specified... (3 Replies)
Discussion started by: linuxgeek
3 Replies

10. Solaris

How to remove sudo program

How to completely uninstall sudo program? Thank u in advance (1 Reply)
Discussion started by: unitipon
1 Replies
Login or Register to Ask a Question