Postgresql无法使用-u快捷方式切换到root用户

17

最近从Postgresql 9.1升级到9.3

一切正常,但我注意到现在当我输入:

sudo -u postgres psql

我试图更改到根目录,但是却遭遇到了 权限被拒绝的错误

"无法更改到 /home/root 目录。

不过,当我使用以下命令时:

sudo su - postgres 
psql

它可以正常访问。我该如何修复这个问题?

3个回答

23

试一试这个:

sudo -i -u postgres psql

这将实现(几乎)与您的相同的功能。

sudo su - postgres 
在上面的命令中,- 表示您想要使用 postgres 账户的环境变量。如果您删除 -,它将类似于 sudo -u 失败。 -i 表示您要运行 postgres 帐户的登录 shell(因此会 cd 到其主目录)。

23

切换到一些PostgreSQL可以访问的目录:

cd /tmp
sudo -u postgres psql

那么为什么su命令可以工作呢?它应该可以访问该目录,或者我不应该得到相同的错误吗? - Johnathan
我不知道。我看过这篇文章(https://dev59.com/pW445IYBdhLWcg3w_PG3),但我找不到有意义的差异。 - Kirk Roybal
请参见我的回答。使用sudo su postgres命令也会出现类似的错误。 - DylanYoung

0

对我来说,这个方法很管用(否则你会收到一个无法更改到“/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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接