我来自 Linux 世界,对 OS X 管理员不熟悉。现在我想切换到另一个用户,但就是不行...这里哪里出了问题?
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $ su - postgres
Password:
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $
我输入了正确的密码,但为什么我无法通过 su 进入 postgres?
抱歉,这是一个愚蠢的问题,但我整个晚上都被这个问题困扰着……
多谢 !
答案1
su
应该可以在 OS X 中正常工作。@Scott Warren 关于 postgres 用户 shell 的想法是一种可能的解释,但 OS X 不使用 /etc/passwd,除非在启动期间。普通用户(和组等)存储在 /var/db/dslocal/nodes/Default/ 下的 .plist 文件中。查看(和修改)它们的简单方法是使用以下命令dscl
:
dscl . -read /Users/postgres # prints all user attributes
dscl . -read /Users/postgres UserShell # prints just the default shell
如果需要的话,你可以用同样的方式设置shell:
sudo dscl . -create /Users/postgres UserShell /bin/bash
答案2
我没有安装 Postgres,但请检查您的 /etc/passwd 文件。该用户帐户的最后一个条目将是该用户使用的 shell。在我的 passwd 文件中,不应登录的帐户(_lp、_postfix 等)的 shell 为 /usr/bin/false,但可以登录的帐户通常是 /bin/sh。