新PostgreSQL安装中奇怪的权限错误

新安装的PostgreSQL(覆盖configuration)不会启动:

$ sudo service postgresql start * Starting PostgreSQL 9.1 database server * Error: could not read /etc/postgresql/9.1/main/postgresql.conf: Permission denied 

看起来应该可以阅读它:

 $ ls -l postgresql.conf -rw------- 1 postgres postgres 19450 2012-06-14 10:07 postgresql.conf 

但很好,我会joinchmod +r来testing它是否有效。

 $ sudo chmod +r postgresql.conf $ sudo service postgresql start * Starting PostgreSQL 9.1 database server * The PostgreSQL server failed to start. Please check the log output: Error: Could not open log file /var/log/postgresql/postgresql-9.1-main.log 

咦?

 $ ls -l /var/log/postgresql/ total 4 -rw-r----- 1 postgres adm 827 2012-06-14 10:07 postgresql-9.1-main.log 

我不明白。 这里有什么可能是错的? 这曾经工作过。

我可以监视什么进程试图打开文件?


这是EC2上的Ubuntu 11.10,使用厨师。 为了完整性,这里是配方:

 # Install PostgreSQL package "postgresql-9.1" # Stop server service "postgresql" do action :stop end # Overwrite configuration (setting data dir) template "/etc/postgresql/9.1/main/postgresql.conf" do source "postgresql-conf.erb" owner "postgres" group "postgres" end # Start server service "postgresql" do action :start end 

自定义configuration文件( postgresql.conf )指向一个不存在的数据目录。 当然,这是一个问题(我通过设置数据目录解决了这个问题),但是与打印的错误无关。 再次,PostgreSQL错误没有那么有用。

更新:

当数据目录存在时,我得到了同样的错误, 但拥有不正确的所有权 。