作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚安装了 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
这对我来说真的很奇怪。
谁能解释一下这是怎么回事?
谢谢
最佳答案
_postgres:*:216:216:PostgreSQL Server:/var/empty:/usr/bin/false
此 /etc/passwd
条目的最后一个组成部分是用于该用户的 shell。如果它是类似 /bin/sh
的东西,它会像你期望的那样工作(与没有下划线的 postgres
的条目比较。编辑:实际上没有,不要打扰,因为它可能不存在)。
因为它是 /usr/bin/false
,它会立即终止并将控制权交还给调用者,而不是等待 shell 命令。
这意味着 _postgres
作为用户不应该用于 shell 访问。
关于macos - PostgreSQL 用户配置如何在 MacOSX 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117429/
我是一名优秀的程序员,十分优秀!