【问题标题】:Postgresql cannot change to root with -u shortcutPostgresql 无法使用 -u 快捷方式更改为 root
【发布时间】:2016-03-03 20:29:43
【问题描述】:

最近从 Postgresql 9.1 更新到 9.3

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

sudo -u postgres psql

我在将 dir 更改为 root 时遇到 permission denied 错误

“无法将目录更改为 /home/root。

但是,当我使用:

sudo su - postgres 
psql

它可以很好地访问它。我怎样才能解决这个问题?

【问题讨论】:

    标签: linux postgresql


    【解决方案1】:

    将目录更改为 postgres 可以访问的位置:

    cd /tmp
    sudo -u postgres psql
    

    【讨论】:

    • 为什么 su 工作?它应该可以访问该目录,或者我应该得到同样的错误,不是吗?
    • 我不知道。我通过这篇文章弄清楚了stackoverflow.com/questions/4598001/…,但我找不到有意义的区别。
    • my answersudo su postgres 会给你类似的错误。
    【解决方案2】:

    试试这个:

    sudo -i -u postgres psql
    

    这完成(几乎)与您的相同的事情

    sudo su - postgres 
    

    上面的-表示要使用postgres账号的环境。如果您删除-,它将与sudo -u 类似地失败

    -i 表示您要运行 postgres 帐户的登录 shell(因此 cding 到他们的主目录)。

    【讨论】:

      【解决方案3】:

      对我来说,这是成功的(或者你会得到一个could not change directory to "/root": Permission denied),注意引号(')

      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'
      

      注意-Hiufor sudo,或使用su - postgres

      您也可以使用 crontab -e 将其放入 root 的 cronjob 中

      【讨论】:

        猜你喜欢
        • 2014-08-13
        • 2018-07-13
        • 2011-02-06
        • 1970-01-01
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多