PostgreSQL用户配置如何在MacOSX上运行?

时间:2015-03-18 08:45:06

标签: macos postgresql unix

我刚安装了Postgres 9.4(EnterpriseDB package),我对系统中看到的用户感到困惑。

如果我打印/etc/passwd,我会看到_postgres用户:

$ cat /etc/passwd | grep postgres
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false

但如果我尝试使用它登录,我仍然会认同我的用户。

$ su _postgres
Password:
$ whoami
motta

奇怪的行为是我可以使用postgres用户登录,即使/etc/passwd

中没有列出
$ su postgres
Password:
$ whoami
postgres

这对我来说真的很奇怪 有人可以解释一下发生了什么吗?

谢谢

1 个答案:

答案 0 :(得分:2)

  

_postgres:*:216:216:PostgreSQL服务器:/ var / empty:/ usr / bin / false

/etc/passwd条目的最后一个组件是用于该用户的shell。如果它像/bin/sh那样它会像你期望的那样工作(与没有下划线的postgres的条目相比。编辑:实际上不,不要打扰,因为它可能不存在)。< / p>

由于它是/usr/bin/false,它会立即终止并将控制权交还给调用者,而不是等待shell命令。

这意味着作为用户的_postgres并不意味着用于shell访问。