如何在 mac OS X 中 su 到另一个用户?

sma*_*ufo 4 su mac-osx sudo

我来自 Linux 世界,不熟悉 OS X 管理员。现在我想 su 给另一个用户,但它不起作用......这里出了什么问题?

smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $ su - postgres
Password:
smallufo@miniserver:~ $ whoami
smallufo
smallufo@miniserver:~ $
Run Code Online (Sandbox Code Playgroud)

我输入了正确的密码,但为什么我不能 su 到 postgres?

对不起,如果这是一个愚蠢的问题,但我整晚都被它困住了......

非常感谢 !

Gor*_*son 5

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
Run Code Online (Sandbox Code Playgroud)

如有必要,您可以以相同的方式设置 shell:

sudo dscl . -create /Users/postgres UserShell /bin/bash
Run Code Online (Sandbox Code Playgroud)