1 votos

Homebrew instaló PostgreSQL para el uso de múltiples cuentas

Estoy usando Homebrew para instalar PostgreSQL (PG) en un Macbook Air.

admin usuario brew install ed PostgreSQL.

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

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

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

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

El punto es que PG no necesita estar funcionando TODO el tiempo (LaunchDaemon). Lo ideal es que sea un LaunchAgent en la cuenta del usuario móvil.

¿Qué opinas?

2voto

P.T. Puntos 1429

De acuerdo con la salida de postgres, necesitas ejecutar el servidor 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 tendrá que lanzar el proceso del servidor postgres. Sin embargo, otros usuarios podrán lanzar el cliente y conectarse a él. Así que sólo tienes que hacer las tareas de "administrador" - configuración y control del demonio - con esa cuenta de propietario.

Si quieres hacer todo con el mobile cuenta, entonces sólo tiene que ejecutar initdb como mobile en lugar de como admin después de hacer el brew install postgresql con normalidad. (No se trata de quién brew install como eso importa, es quien initdb as). Esto creará la base de datos, y rwx permisos en /usr/local/var (no /usr/local ) será suficiente para permitirlo. A continuación, haga todo su trabajo de PG como mobile . El LaunchAgent debería funcionar con este enfoque, aunque no lo he probado.

Para permitir que varios usuarios administren efectivamente el servidor postgres (lanzar y detener el demonio), configúrelo básicamente de la misma manera, con un postgres (o mobile ) que tanto hace la cuenta inicial initdb y sube o baja el servidor. Entonces crea un pequeño script para ssh a localhost como postgres y ejecuta el comando para subir o bajar el servidor con el mismo comando que usarías en el caso de un solo usuario. Y configure las claves ssh para que todas las cuentas que desee administrar PG puedan entrar por ssh como postgres (es decir, catar sus claves públicas al archivo ~/.ssh/authorized_keys de postgres). Ahora usted puede tener efectivamente múltiples usuarios para manejar Postgres sin desviarse del modelo de usuario-demonio dedicado que Postgres espera y jugar con los permisos de archivo y así sucesivamente.

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X