PostgreSQL 用户默认在 unix 套接字上进行对等身份验证,其中 unix 用户必须与 PostgreSQL 用户相同。所以人们经常使用su或sudo成为postgres超级用户。
我经常看到人们使用以下结构:
sudo su - postgres
Run Code Online (Sandbox Code Playgroud)
而不是
sudo -u postgres -i
Run Code Online (Sandbox Code Playgroud)
我想知道为什么。同样,我见过:
sudo su - postgres -c psql
Run Code Online (Sandbox Code Playgroud)
代替
sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)
如果没有领导sudo的su版本可能会做出一些感觉,如果你是一个老平台没有sudo。但是为什么要在比史前时代更短的 UNIX 或 Linux 上使用sudo su?
可能的重复:
sudo -i 和 sudo su - 有什么区别
我知道这两个命令都会导致获得 root-shell。但也有一些区别。在某些服务器上,例如提示不同:
nomike@testerver:~> sudo -i
root@testerver:~> logout
nomike@testerver:~> sudo su -
[root@testerver ~]#
Run Code Online (Sandbox Code Playgroud)
所以我猜“.bashrc”、“.bash_profile”和“.profile”的处理方式有些不同。
一个会调用登录 shell 而另一个不调用吗?