Pourquoi «postgres» nécessite-t-il un shell?

13

Dans mes systèmes Debian Wheezy , j'ai remarqué que l'utilisateur postgres 'postgres', "l'administrateur PostgreSQL", utilise /bin/bashcomme shell. Cependant, je ne peux pas comprendre pourquoi cela est nécessaire. Changer cela /bin/falseme permet toujours d'utiliser la commande psql.

Alors, pourquoi l'utilisateur du système a-t-il postgresbesoin d'un shell, et doit-il être spécifiquement /bin/bash?

timothymctim
la source
5
Cela était nécessaire pour l'exécution de cronjob pg_autovacuum.
Simon Richter

Réponses:

14

Découvrez pourquoi l'utilisateur «bin» a besoin d'un shell de connexion?

Il indique que ce modèle pour les utilisateurs du système est

  • Commun dans Debian, et pas tellement dans d'autres distributions.
  • Considéré comme un bug / véritable problème de sécurité par plusieurs personnes.
  • Requis pour exécuter des tâches cron en tant qu'utilisateur, et peut-être aussi par certains scripts s'ils utilisent su -c pour s'exécuter en tant que cet utilisateur. Il devrait être facile de les vérifier. Recherchez les tâches cron appartenant à psql. Recherchez les scripts dans le package postgres ( dpkg-query -L) et appliquez-leur à grep su.

Il est également suggéré que si votre principale préoccupation est une sorte d'abus de cet utilisateur impliquant des connexions SSH, il pourrait être pratique d'utiliser AllowGroups dans sshd_config. (Création d'un sshlogingroupe, comme recommandé par le Guide du serveur Ubuntu ).

Le modèle a été corrigé dans le système de base plus tôt cette année - voir bug # 274229 . Donc, si vous pensez que les postgres pourraient également être corrigés, ce serait bien de contacter les mainteneurs du paquet, par exemple en signalant un bogue.

sourcejedi
la source