为什么`postgres`需要外壳?


13

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

那么,系统用户为何postgres需要外壳,并且必须特别指定外壳/bin/bash


5
这对于cronjob运行是必需的pg_autovacuum
Simon Richter 2014年

Answers:


14

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

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.