Change version checking behavior to prevent stall

In some cases, calling "su -[v|V]" could result in a broken pipe,
preventing the containing shell from receiving the exit command and
terminating, resulting in an infinite wait. Instead of calling su from
sh now, we directly call su, and work-around the entire problem.