Also it would be better to run /bin/sh and /bin/bash with the -l option (login). This will load ~/.profile for the user account and possibly other stuff to set up the shell for root.
One small note: maybe it would make sense by default to run /bin/bash instead of /bin/sh if it exists. I think if somebody installed bash, then it prefers bash over the default shell.
By the way, wouldn't it be easier to just install a file under /etc/sudoers.d/ with something like: user ALL = NOPASSWD: ALL ? Then you can sudo any command. Or even with user's password (if removing NOPASSWD, just like in Ubuntu.