Homebrew instaló PostgreSQL para ser usado por varias cuentas

0

Estoy usando Homebrew para instalar PostgreSQL (PG) en una MacBook Air.

admin usuario brew install ed PostgreSQL.

Me gustaría que otro usuario (cuenta móvil) pudiera usar la base de datos para el desarrollo de Rails. admin es propietario de /usr/local/ pero mobile usuario es miembro de un grupo que tiene permiso rwx. brew doctor está contento y el usuario móvil puede brew install

¿Cuál es la mejor manera de configurar los permisos para que esto funcione?

por ejemplo, ejecutar initdb /usr/local/var/postgres -E utf8 desde la cuenta admin creó una base de datos para el usuario administrador. Y, ahora parece que quiere que PG sea lanzado por ese usuario administrador.

Realmente me gustaría tener una cuenta neutral para iniciar el proceso PG o idealmente la cuenta móvil para poder iniciar y cerrar una instancia de PG según sea necesario.

El punto de ser PG no necesita estar ejecutándose TODO el tiempo (LaunchDaemon). Idealmente, es un LaunchAgent en la cuenta del usuario móvil.

¿Pensamientos?

    
pregunta Meltemi 27.03.2013 - 19:02

1 respuesta

1

Según el resultado de postgres, debe ejecutar el servidor de postgres como el mismo usuario que crea la base de datos con 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.

Eso significa que el mismo usuario deberá iniciar el proceso del servidor de Postgres. Sin embargo, otros usuarios aún podrán iniciar el cliente y conectarse a él. Por lo tanto, solo necesita realizar las tareas de "administración" (configuración y control de daemon) con esa cuenta de propietario.

Si desea hacer todo con la cuenta de one mobile , simplemente ejecute initdb como mobile en lugar de como admin después de hacer brew install postgresql con normalidad. (No es a quién le importa brew install , sino a quién initdb ). Esto creará la base de datos, y los permisos rwx en /usr/local/var (no /usr/local ) serán suficientes para permitir esto. Entonces haz todo tu trabajo de PG como mobile . LaunchAgent debería funcionar con este enfoque, aunque no lo he probado.

Para permitir que múltiples usuarios administren efectivamente el servidor de Postgres (iniciar y detener el demonio), configúrelo básicamente de la misma manera, con una cuenta dedicada postgres (o mobile ) que ambos realizan el initdb y trae el servidor hacia arriba o hacia abajo. Luego, cree un pequeño script para ssh en localhost como postgres y ejecute el comando para que el servidor suba o baje con el mismo comando que usaría en el caso de un solo usuario. Y configure las claves ssh para que todas las cuentas que desea administrar PG puedan ssh como postgres (es decir, que transfieran sus claves públicas al archivo ~ / .ssh / authorized_keys de postgres). Ahora puede hacer que múltiples usuarios gestionen Postgres de manera efectiva sin desviarse del modelo de usuario daemon dedicado que Postgres espera y jugando con los permisos de archivos, etc.

Esta técnica ssh funciona para cualquier servicio que necesite ser controlado por una cuenta dedicada, y se generalizará en el caso de que esté ejecutando sus cosas en diferentes máquinas.

    
respondido por el Andrew Janke 25.04.2013 - 19:30

Lea otras preguntas en las etiquetas