为什么postgres可以使用不在自己的主目录中的配置文件?

为什么postgres可以使用不在自己的主目录中的配置文件?

debian是我操作系统中的普通帐户:

debian@debian:~$ cat /etc/passwd  |grep  debian
debian:x:1000:1000:debian,,,:/home/debian:/bin/bash

主目录postgres/var/lib/postgresql

debian@debian:~$ cat /etc/passwd  |grep  postgres
postgres:x:117:129:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

没有.psqlrcpsqlrc文件在/var/lib/postgresql,我已经在 中写了一个配置文件/home/debian/.psqlrc

我发现如果我用帐户进入shellpostgres

sudo -i -u  postgres

/home/debian/.psqlrc为什么用户可以调用设置on (不是postgres的主目录) postgres

答案1

.psqlrc用于psql命令,这是一个Postgres数据库客户。系统(或任何其他系统)上的任何用户都可以使用此类客户端;数据库可能会或可能不会配置为接受来自不同主机和用户的传入连接。

对于像您这样的服务帐户,postgres主目录的意义可能比用于常规人类登录的用户帐户的意义要小。特别是对于 PostgreSQL,用户的主目录postgres也可能用作数据库的默认位置,或者它可能只是存在,以便 PostgreSQL 数据库引擎的核心转储有一个默认位置,以防它崩溃,或者 cron如果由于某种原因无法邮寄 cron 作业结果,则运行的作业postgres可以有一个地方可以放置其文件。dead.letter

如果/home/debian/.psqlrc用户可读postgres并且有一行类似

PSQLRC=/home/debian/.psqlrc 

~/.bashrc在用户的中postgres,那么当作为或用户psql调用时,该命令将使用相同的配置文件。如果希望使用该帐户完成常规数据库管理,这可能会很方便,但主要的数据库维护或恢复操作可能仍然需要数据库管理员在极少数情况下登录。debianpostgresdebianpostgres

相关内容