2

In the following script in Upstart, I'm unable to read /etc/shadow in pre-script phase, unless I use $(echo mypass | sudo -S cat /etc/shadow | grep myusername)

The script works fine if I provide my sudo pass, but I'm wondering if there is a way to do this without having to write my pass in the conf file?

# node-example.conf
description     "Starting Node with Upstart and Forever"

start on filesystem or runlevel [2345]

stop on runlevel [06]

expect fork

respawn 

respawn limit 5 30

console output

setuid myusername

env HOME=/home/myusername

env ARGS_FILE=/etc/shadow

. /etc/shadow

script

cd $HOME

exec forever start -a -l /tmp/forever.log -o /tmp/forever.stdout.log -e /tmp/forever.stderr.log --watch --watchDirectory /home/myusername/myapp/server /home/myusername/myapp/server/server.js

end script

pre-start script

ori='myusername:$6$P...'

**# cur=$(echo mypass | sudo -S cat /etc/shadow | grep myusername) -> this works**

**cur=$(cat $ARGS_FILE | grep myusername) -> this doesn't work**

if [ "$ori" = "$cur" ]

then encfs code

else rm -rf somefile

fi

end script

0

You must log in to answer this question.

Browse other questions tagged .