On 10/30/14 13:56, Vijay Sankar wrote:
> Quoting Alexander Hall <[email protected]>:
>
>> On October 30, 2014 1:26:25 PM CET, Vijay Sankar <[email protected]>
>> wrote:
>>> I have been using a simple script
>>>
>>> # mypasswd.sh
>>> /usr/bin/passwd -l
>>> if [[ $? != 0 ]]; then
>>> /usr/bin/logger "Unsuccessful attempt to change password"
>>> else
>>> /usr/bin/logger "Changed login password"
>>> fi
>>>
>>> to get syslog entries whenever I change my password. I looked for a
>>> better way but could not find any solutions for this in the archives.
>>>
>>> Is there a better way to do this? Please let me know if possible.
>>
>> Unless there is any functionality you're missing, and scripting nits
>> aside, this seems fine.
>>
>> Please elaborate on why you think it shouldn't be.
>>
>> /Alexander
>>>
>>> Thanks very much,
>>>
>>> Vijay
Hi Vijay,
your script didn't work for me with /bin/sh so I modified it, and
changed the logger's to echos so that I don't pollute my logs. I have
found a small race in your script and I'd like to address it with an
expect script I wrote for you:
#!/usr/local/bin/expect --
spawn ./vijays-mypasswd.sh
expect Changing
stty cooked
expect Old?password:
send \n
send "^C"
stty raw
expect -re ^Unsuccessful
Also I have provided to you my version of vijays-mypasswd.sh
----
#!/bin/sh
trap "" 2
/usr/bin/passwd -l
if [ $? -eq 0 ]; then
echo "Unsuccessful attempt to change password"
else
echo "Changed login password"
fi
----
Notice the trap, hash it out to see what doesn't happen.
Regards,
-peter