![我能够通过“psql”以“posgres”的身份使用任何 Linux 用户登录 - 这是一个安全问题吗?](https://linux22.com/image/602697/%E6%88%91%E8%83%BD%E5%A4%9F%E9%80%9A%E8%BF%87%E2%80%9Cpsql%E2%80%9D%E4%BB%A5%E2%80%9Cposgres%E2%80%9D%E7%9A%84%E8%BA%AB%E4%BB%BD%E4%BD%BF%E7%94%A8%E4%BB%BB%E4%BD%95%20Linux%20%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%20-%20%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98%E5%90%97%EF%BC%9F.png)
我sudo su postgres
以 Linux 用户身份登录时使用并设置了我的数据库postgres
。退出到我的普通 shell 后,以非 root 用户身份登录,我可以轻松使用psql -U postgres
任何数据库、Postgres 用户等,然后对它们执行任何我想执行的操作。这是正常的吗?这会带来安全风险吗?
答案1
听起来您的pg_hba.conf
设置是trust
用于local
连接的。如果您信任本地用户,那还不错,尽管我认为这对于生产来说不是一个好主意。
制作非常肯定这trust
不是为host
(网络)连接设置的 - 允许 127.0.0.1 是可以的trust
,但我实际上只会考虑在测试设置中这样做,永远不会在生产中这样做。您应该md5
对网络客户端使用密码验证或强大的安全机制,如证书验证、Kerberos 等。