2011-12-17 4 views
0

PostgreSQL의 8.4 내가 권한을 확인하고 루트 적절한 권한을 준 /usr/lib/postgresql/8.4/bin/pg_ctlPostgreSQL 8.4가 Ubuntu 10.10에서 시작되지 않습니다. Bug?

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) 

에 우분투 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 루트 루트 ' –

+0

postgres 사용자는'/ var/lib/postgresql/8.4/main'에 대한 완전한 읽기 및 쓰기 권한을 가지고 있습니까? –

답변

1

PostgreSQL은 루트로 실행하는 것을 거부합니다. 이것은 백 엔드의 버그와 신뢰할 수없는 언어로 작성된 함수의 버그를 사용하여 전체 시스템에서 임의의 작업을 수행하지 못하도록하기위한 것입니다. PostgreSQL은 상대적으로 제한된 사용자 (일반적으로 postgres 사용자)로 실행해야하며 시작 스크립트는 일반적으로 이것을 시행합니다.

루트가 아닌 postgres 사용자에게 사용 권한을 부여하십시오. 그러면 모든 것이 잘 작동합니다.