2

I have an AIX 6.1 server where I need to run a remote sudo command in a bash script.

Here is my bash script simplified:

testSudo.sh

#!/usr/bin/bash
set -x

sudo env

I can run the sudo command locally without password:

[user@server]$ sudo env
VAR=VAL
...

I can run the script locally:

[user@server]$ /tmp/testSudo.sh
+ sudo env
VAR=VAL
...

I can run sudo on the remote host:

[user@client]$ ssh user@server sudo env
VAR=VAL
...

I can run the script on the remote host with tty:

[user@client]$ ssh -t user@server /tmp/testSudo.sh
+ sudo env
VAR=VAL
...

I can't run the script on the remote host without tty (and I can't add the -t option in my context):

[user@client]$ ssh user@server /tmp/testSudo.sh
+ sudo env

It hangs there.

5
  • Does running sudo on the remote server require a password?
    – jw013
    Jul 17, 2013 at 17:12
  • So why not run ssh -t? Jul 17, 2013 at 23:47
  • @jw013 No there is no password required while runnig sudo on the remote server.
    – Pilou
    Jul 18, 2013 at 7:56
  • @Gilles I'm making the request, is an extarnal program who does, so I can't change the ssh options.
    – Pilou
    Jul 18, 2013 at 7:57
  • Possibly helpful: unix.stackexchange.com/q/79960/117549
    – Jeff Schaller
    Jun 19, 2018 at 20:15

1 Answer 1

1

Sudo when executed w/o terminal requires a helper program to handle password query:

SUDO_ASKPASS    Specifies the path to a helper program used to read the
password if no terminal is available or if the -A option is specified.

Normally when you connect via ssh and sudo will need a password but terminal is not allocated it will blow an error - on AIX this can behave different.

Check your sudo settings and enable NOPASSWD from all remote machines also, correct rule should look like that (add it on the end of /etc/sudoers) :

user ALL= NOPASSWD:/tmp/testSudo.sh

2
  • 2
    I don't understand why I need to add 'user ALL= NOPASSWD:/tmp/testSudo.sh' in my sudoers. This script is not played in a sudo but it plays a sudo : 'sudo env'. I allready have a line saying 'user ALL= NOPASSWD:env'.
    – Pilou
    Jul 18, 2013 at 8:06
  • 8 mnths delay in answer - hope you accept that ;) I would make a try and use fullpath to env ( like '/usr/bin/env' ) both in sudo config and your script.
    – MAQ
    Apr 5, 2014 at 14:42

You must log in to answer this question.

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