最近从Postgresql 9.1升级到9.3。
一切正常,但我注意到现在当我输入:
sudo -u postgres psql
我试图更改到根目录,但是却遭遇到了 权限被拒绝的错误。
"无法更改到 /home/root 目录。
不过,当我使用以下命令时:
sudo su - postgres
psql
它可以正常访问。我该如何修复这个问题?
最近从Postgresql 9.1升级到9.3。
一切正常,但我注意到现在当我输入:
sudo -u postgres psql
我试图更改到根目录,但是却遭遇到了 权限被拒绝的错误。
"无法更改到 /home/root 目录。
不过,当我使用以下命令时:
sudo su - postgres
psql
它可以正常访问。我该如何修复这个问题?
试一试这个:
sudo -i -u postgres psql
这将实现(几乎)与您的相同的功能。
sudo su - postgres
在上面的命令中,-
表示您想要使用 postgres 账户的环境变量。如果您删除 -
,它将类似于 sudo -u
失败。
-i
表示您要运行 postgres 帐户的登录 shell(因此会 cd
到其主目录)。切换到一些PostgreSQL可以访问的目录:
cd /tmp
sudo -u postgres psql
对我来说,这个方法很管用(否则你会收到一个无法更改到“/root”的目录:权限被拒绝
)注意引号(')
sudo -Hiu postgres 'pg_dump --column-inserts --data-only --table=someTable entities_db > /var/backups/anywhere/$(date +%Y%m%d_%H%M%S)_someTable.sql'
注意使用-Hiu
来进行sudo,或者使用su - postgres
你也可以将其放入root的cronjob中,使用crontab -e
sudo su postgres
命令也会出现类似的错误。 - DylanYoung