1 votes

PostgreSQL installé par Homebrew pour une utilisation par plusieurs comptes

J'utilise Homebrew pour installer PostgreSQL (PG) sur un Macbook Air.

admin utilisateur brew install éd PostgreSQL.

J'aimerais qu'un autre utilisateur (compte mobile) puisse utiliser la base de données pour le développement Rails. admin est propriétaire de /usr/local/ mais mobile l'utilisateur est membre d'un groupe disposant de l'autorisation rwx. brew doctor est heureux et l'utilisateur mobile peut réussir brew install

Comment configurer au mieux les autorisations pour que cela fonctionne ?

par exemple, en exécutant initdb /usr/local/var/postgres -E utf8 de la admin a créé une base de données pour l'utilisateur admin. Et, maintenant, il semblerait qu'il veuille que PG soit lancé par cet utilisateur administrateur.

J'aimerais vraiment qu'un compte neutre lance le processus de PG ou idéalement, le compte mobile doit pouvoir lancer et quitter une instance de PG selon les besoins.

Le fait est que PG n'a pas besoin de tourner TOUT le temps (LaunchDaemon). Idéalement, il s'agit d'un LaunchAgent dans le compte de l'utilisateur mobile.

Réflexions ?

2voto

P.T. Points 1629

D'après la sortie de postgres, vous devez exécuter le serveur postgres avec le même utilisateur que celui qui a créé la base de données avec initdb.

mr-clean:~ smurf$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "smurf".
This user must also own the server process.

Cela signifie que le même utilisateur devra lancer le processus du serveur postgres. Les autres utilisateurs pourront toujours lancer le client et s'y connecter. Il vous suffit donc d'effectuer les tâches d'"administration" - configuration et contrôle des démons - avec le compte propriétaire.

Si vous voulez tout faire avec le seul mobile il suffit d'exécuter initdb comme mobile au lieu de admin après avoir fait le brew install postgresql comme d'habitude. (Ce n'est pas qui vous brew install c'est ce qui compte, c'est ce que vous initdb comme.) Cela créera la base de données, et rwx les autorisations sur /usr/local/var (pas /usr/local ) suffira à le permettre. Ensuite, faites tout votre travail de PG en tant que mobile . L'agent de lancement devrait fonctionner avec cette approche, mais je ne l'ai pas testé.

Pour permettre à plusieurs utilisateurs de gérer efficacement le serveur postgres (lancer et arrêter le démon), il faut le configurer de la même manière, avec une adresse postgres (ou mobile ) qui fait à la fois le compte initial de l initdb et fait monter ou descendre le serveur. Créez ensuite un petit script pour ssh à localhost comme postgres et exécutez la commande pour faire monter ou descendre le serveur avec la même commande que celle que vous utiliseriez dans le cas d'un utilisateur unique. Et configurez les clés ssh pour que tous les comptes que vous voulez gérer pour PG puissent se connecter en ssh en tant que postgres (c'est-à-dire, cat leurs clés publiques dans le fichier ~/.ssh/authorized_keys de postgres). Maintenant, vous pouvez effectivement avoir plusieurs utilisateurs qui gèrent Postgres sans dévier du modèle d'utilisateur-daemon dédié que Postgres attend et en jouant avec les permissions de fichiers et ainsi de suite.

Cette technique ssh fonctionne pour tout service qui doit être contrôlé par un compte dédié, et s'applique au cas où vous faites fonctionner vos choses sur différentes machines.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X