20.4. Autenticación Trust #

Cuando se especifica la autenticación trust, PostgreSQL asume que cualquiera que pueda conectarse al servidor está autorizado a acceder a la base de datos con cualquier nombre de usuario de la base de datos que especifique (incluso nombres de superusuario). Por supuesto, siguen aplicándose las restricciones indicadas en las columnas database y user. Este método solo debe utilizarse cuando exista una protección adecuada a nivel de sistema operativo en las conexiones al servidor.

La autenticación trust es adecuada y muy cómoda para conexiones locales en una estación de trabajo monopuesto. Normalmente no es adecuada por sí misma en una máquina multiusuario. Sin embargo, podrías utilizar trust incluso en una máquina multiusuario si restringes el acceso al archivo de socket de dominio Unix del servidor utilizando los permisos del sistema de archivos. Para ello, configura los parámetros de configuración unix_socket_permissions (y posiblemente unix_socket_group) tal y como se describe en Section 19.3. O bien, podrías configurar el parámetro de configuración unix_socket_directories para colocar el archivo de socket en un directorio convenientemente restringido.

La configuración de los permisos del sistema de archivos solo ayuda para las conexiones por socket de Unix. Las conexiones TCP/IP locales no están restringidas por los permisos del sistema de archivos. Por lo tanto, si deseas utilizar los permisos del sistema de archivos para la seguridad local, elimina la línea host ... 127.0.0.1 ... de pg_hba.conf, o cámbiala por un método de autenticación distinto de trust.

La autenticación trust solo es adecuada para conexiones TCP/IP si confías en cada usuario de cada máquina a la que se le permite conectarse al servidor mediante las líneas de pg_hba.conf que especifican trust. Rara vez es razonable utilizar trust para conexiones TCP/IP que no sean las procedentes de localhost (127.0.0.1).