在我的 Debian 中气喘吁吁系统中,我注意到 postgres 用户“postgres”(“PostgreSQL 管理员”)使用/bin/bash
shell。但是,我不明白为什么需要这样做。将其更改为/bin/false
仍然允许我使用该命令psql
。
那么,为什么系统用户postgres
需要 shell,它是否必须是特定的/bin/bash
?
答案1
它说系统用户的这种模式是
- 在 Debian 中很常见,在其他发行版中则不太常见。
- 被几个人认为是错误/真正的安全问题。
- 需要以该用户身份运行 cron 作业,如果某些脚本使用 su -c 以该用户身份运行,则可能还需要这些脚本。检查这些应该很容易。检查属于 psql 的 cron 作业。检查 postgres 包 (
dpkg-query -L
) 中的脚本并 grep 它们以供使用su
。
它还建议,如果您主要担心的是涉及 SSH 登录的某种滥用该用户的情况,那么在 sshd_config 中使用 AllowGroups 可能会很方便。 (sshlogin
按照建议创建一个组Ubuntu 服务器指南)。
该模式已于今年早些时候在基础系统中修复 - 请参阅错误#274229。因此,如果您认为 postgres 也可以修复,最好联系软件包维护者,例如通过提交错误。