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
没有.psqlrc
或psqlrc
文件在/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
调用时,该命令将使用相同的配置文件。如果希望使用该帐户完成常规数据库管理,这可能会很方便,但主要的数据库维护或恢复操作可能仍然需要数据库管理员在极少数情况下登录。debian
postgres
debian
postgres