3 votes

Comment installer PostgreSQL pour qu'il fonctionne sous un utilisateur système différent de "postgres" ?

J'installe PostgreSQL sur RedHat Linux à l'aide d'installateurs rpm et j'essaie d'obtenir que l'application soit possédée et exécutée par un utilisateur système autre que "postgres", par exemple "dbuser5". Il semble que je pourrais changer les permissions sur l'application postgres et les fichiers de base de données après l'installation, mais alors le /etc/init.d/postgresql script aura toujours des références à l'utilisateur système postgres. Comme il peut y avoir d'autres fichiers qui font référence à cet utilisateur système par défaut, j'espère qu'il existe un meilleur moyen de le faire.

De préférence, j'aimerais configurer cela pendant l'installation, mais si je dois le faire après coup, cela devrait également fonctionner.

0 votes

L'utilisateur de l'application et l'utilisateur de la base de données sont indépendants. Il n'y a aucune raison d'utiliser le même compte, et cela ne vous donne pas une meilleure sécurité. Vous pouvez toutefois créer des rôles et des autorisations pour votre utilisateur d'application à partir de postgres.

0 votes

Je me rends compte que l'utilisateur de l'application que j'utilise n'a pas vraiment d'importance, la seule raison pour laquelle j'envisage de changer cela est de me conformer à une politique concernant les identifiants d'utilisateur système.

0 votes

Cela semble être une politique stupide alors :) cela semble définitivement causer plus de mal que de bien. Comme l'a correctement souligné voretaq7, il faut faire attention aux mises à jour, etc. En outre, tout ce qui repose sur / vérifie un utilisateur postgres échouera probablement.

1voto

voretaq7 Points 78924

Arrêtez le serveur de base de données, changez la propriété sur le répertoire de données Postgres, mettez à jour vos scripts de démarrage pour référencer le bon utilisateur, et redémarrez le serveur de base de données.
Documentez vos changements Ainsi, quelqu'un qui s'attend à ce que Postgres s'exécute sous un compte utilisateur Postgres traditionnel ne sera pas désagréablement surpris.

Si vous utilisez l'installation Postgres packagée de RedHat (installée à partir de yum/RPMs), vous devrez être conscient de ce changement et veiller à vérifier le script de démarrage lors de la mise à niveau pour vous assurer qu'il n'a pas été écrasé.

0 votes

J'y ai pensé juste après avoir posé la question et cela semble fonctionner. Ce serait toujours bien si je pouvais spécifier un utilisateur différent pendant l'installation, ou exécuter une commande spécifique pour changer l'utilisateur, mais ce n'était pas si difficile de faire ces changements manuellement.

0 votes

La dernière fois que j'ai regardé les paquets Redhat, c'était il y a plusieurs années, mais ils n'avaient aucun moyen de spécifier ces choses - tout était codé en dur. Vous pouvez consulter podría faire votre propre RPM qui prend l'utilisateur système postgres comme option (ou variable facilement configurable en haut du script). Il est vraiment plus facile d'éditer simplement le script cependant :)

0 votes

C'était un peu plus facile que ce à quoi je m'attendais, donc votre point sur les mises à niveau est la seule chose qui me préoccupe maintenant. Je devrais peut-être en faire une raison pour conserver l'utilisateur "postgres" par défaut :)

0voto

Charlie Reitzel Points 131

Je suis sur le point de tester cette approche, mais il semble que le système PostgreSQL pg_ident.conf peut être utilisé pour faire correspondre le nom d'utilisateur requis pour le système d'exploitation au nom d'utilisateur par défaut de la base de données installée par le RPM, par ex. postgres .

https://www.postgresql.org/docs/current/auth-username-maps.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X