2011-12-17 8 views
0

のPostgreSQL 8.4は、私が権限をチェックして、ルート適切な権限を与えている/usr/lib/postgresql/8.4/bin/pg_ctlPostgreSQL 8.4がUbuntu 10.10で起動できないバグ?

ldd /usr/lib/postgresql/8.4/bin/pg_ctl 
    linux-gate.so.1 => (0xb77e4000) 
    libpq.so.5 => /usr/lib/libpq.so.5 (0xb77a2000) 
    libc.so.6 => /lib/libc.so.6 (0xb7645000) 
    libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0xb75fb000) 
    libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0xb74ac000) 
    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb73fd000) 
    libcom_err.so.2 => /lib/libcom_err.so.2 (0xb73f9000) 
    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb73ca000) 
    libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7398000) 
    libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0xb7351000) 
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7337000) 
    /lib/ld-linux.so.2 (0xb77e5000) 
    libdl.so.2 => /lib/libdl.so.2 (0xb7333000) 
    libz.so.1 => /lib/libz.so.1 (0xb731e000) 
    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb72fa000) 
    libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb72f1000) 
    libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb72ed000) 
    libresolv.so.2 => /lib/libresolv.so.2 (0xb72d9000) 
    liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0xb72cc000) 
    libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb72b4000) 
    libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb7218000) 
    libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb7207000) 
    libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xb7193000) 
    libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb718e000) 

上のUbuntu 10.10

lddを実行している
sudo /etc/init.d/postgresql start 
    * Starting PostgreSQL 8.4 database server                                      
    * Error: could not exec /usr/lib/postgresql/8.4/bin/pg_ctl /usr/lib/postgresql/8.4/bin/pg_ctl start -D /var/lib/postgresql/8.4/main -l /var/log/postgresql/postgresql-8.4-main.log -s -o -c config_file="/etc/postgresql/8.4/main/postgresql.conf" : 

に起動しない、と私はルートとしてのPostgreSQLを実行しようとしています。

+0

'/ usr/lib/postgresql/8.4/bin/pg_ctl'は実行可能ですか? – Todd

+0

はい '-rwxr-xr-x 1 root root' –

+0

postgresユーザーは、'/var/lib/postgresql/8.4/main'に対して完全な読み書き権限を持っていますか? –

答えて

1

PostgreSQLはrootとして実行することを拒否します。これは、バックエンドのバグと、信頼できない言語で書かれた関数のバグを使って、システム全体にわたって任意のアクションを実行できないようにするためです。 PostgreSQLは比較的限られたユーザとして実行する必要があります。通常はpostgresユーザであり、起動スクリプトは通常これを強制します。

rootではなくpostgresユーザーに許可を与えます。その後、すべて正常に動作するはずです。

関連する問題