为什么`postgres` 需要一个shell?

tim*_*tim 13 shell postgresql accounts

在我的 Debian Wheezy系统中,我注意到 postgres 用户“postgres”,即“PostgreSQL 管理员”,/bin/bash用作 shell。但是,我无法弄清楚为什么需要这样做。将此更改为/bin/false仍然允许我使用命令psql.

那么,为什么系统用户postgres需要一个 shell,它必须是专门的/bin/bash吗?

sou*_*edi 14

查看为什么“bin”用户需要登录 shell?

它说系统用户的这种模式是

  • 在 Debian 中很常见,在其他发行版中并不多见。
  • 几个人认为是一个错误/真正的安全问题。
  • 为了以该用户身份运行 cron 作业是必需的,如果某些脚本使用 su -c 以该用户身份运行,则可能也是必需的。检查这些应该很容易。检查属于 psql 的 cron 作业。检查 postgres 包 ( dpkg-query -L)中的脚本并将它们 grep 以供使用su.

还建议,如果您主要担心涉及 SSH 登录的对该用户的某种滥用,那么在 sshd_config 中使用 AllowGroups 可能会很方便。(sshlogin按照Ubuntu 服务器指南的建议创建一个组)。

该模式已于今年早些时候在基本系统中修复- 请参阅错误 #274229。因此,如果您认为 postgres 也可以修复,那么最好联系软件包维护者,例如通过提交错误。