Назад | Перейти на главную страницу

Как отправить запрос другому пользователю в Mac OS X?

Я пришел из мира Linux и не знаком с администратором OS X. Теперь я хочу выполнить su другому пользователю, но он просто не работает ... Что здесь происходит не так?

smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $ su - postgres
Password:
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $

Я ввожу правильный пароль, но почему я не могу использовать su to postgres?

Извините, если это тупой вопрос, но я застрял в нем всю ночь ...

Большое спасибо !

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.