[sudo-users] Test for -E support

Jeffrey Walton noloader at gmail.com
Sat Mar 28 12:17:23 MDT 2020


Hi Everyone,

I've got a recipe that echo's a password during an install:

    echo "$password" | sudo -E -S make install

Some of the older machines in my testing environment does not support
-E. The first thing I need is, detect the problem. Preferably the test
would not use a password. It just tests for the -E option.

My attempts (like below) result in a password prompt that I would like to avoid.

    sudo -E ls

My second attempt used the following. It produces no output on Ubuntu
18.04, but produces the following out on an old PowerMac:

    $ sudo -E -h 1>/dev/null
    sudo: illegal option `-E'
    usage: sudo -K | -L | -V | -h | -k | -l | -v

So I'm thinking I can check for -E with:

    NO_E_OPT=`sudo -E -h 2>&1 | grep -i -c illegal`

And then:

    # PowerMac
    $ NO_E_OPT=`sudo -E -h 2>&1 | grep -i -c illegal`; echo $NO_E_OPT
    1
    # Ubuntu
    $ NO_E_OPT=`sudo -E -h 2>&1 | grep -i -c illegal`; echo $NO_E_OPT
    0

Does that look about right? Or is there a better way to do this?

Thanks in advance.


More information about the sudo-users mailing list