You receive the error because the 'hbase' user does not have a login shell assigned to it.
You can set a shell for the 'hbase' user on the machine, to allow direct 'su' based login to that user, by following
http://www.cyberciti.biz/faq/howto-set-bash-as-your-default-shell/However, if your goal is to simply use the 'hbase' user for running superuser level commands, we instead recommend using 'sudo' style commands. For example:
~> sudo -u hbase hbase hbck
~> sudo -u hbase hbase shell
You can also invoke a shell as the 'hbase' user in certain cases, via:
~> sudo -u hbase /bin/bash