su
должно нормально работать в OS X. Идея @Scott Warren о пользовательской оболочке postgres - возможное объяснение, но OS X не использует / etc / passwd, кроме как во время загрузки. Обычные пользователи (и группы и т. Д.) Хранятся в файлах .plist в / var / db / dslocal / nodes / Default /. Их проще всего просмотреть (и изменить) с помощью команды dscl
:
dscl . -read /Users/postgres # prints all user attributes
dscl . -read /Users/postgres UserShell # prints just the default shell
При необходимости вы можете настроить оболочку таким же образом:
sudo dscl . -create /Users/postgres UserShell /bin/bash
У меня не установлен Postgres, но проверьте ваш файл / etc / passwd. Последней записью для этой учетной записи будет оболочка, которую использует пользователь. В моем файле passwd учетные записи, которые не должны входить в систему (_lp, _postfix и т. Д.), Имеют оболочку / usr / bin / false, но учетные записи, которые могут входить в систему, обычно /bin/sh.