Как уже написано в комментариях к вопросу, runuser - это, по сути, su, который не использует стек PAM.
Чтобы предоставить немного больше деталей, согласно сообщению в блоге Дэна Уолша - одного из авторов runuser - кажется, что runuser фактически скомпилирован из источников su, за исключением того, что стек PAM исключен из компиляции. Разница в том, что использование runuser вместо su может предотвратить некоторые ошибки SELinux. Этот пост также говорит это:
Когда служба работает от имени пользователя root и хочет изменить UID с помощью оболочки, она должна использовать runuser.
Когда вы вошли в оболочку как пользователь и хотите стать пользователем root, вы должны использовать su. (Или еще лучше sudo)