psql: fe_sendauth: şifre girilmedi


19

PostgreSQL veri tabanım var. Şimdi veritabanımdaki bazı işlemleri otomatikleştirmek istiyorum ancak şifre ile ilgili bir sorunum var.

Aşağıdaki bash betiğini kullanıyorum:

#!/bin/bash
export PGPASSWORD="postgres"
sudo -u postgres psql -d pg_ldap -w --no-password -h localhost -p 5432 -t -c "SELECT id FROM radusers WHERE id=1"

Ben bash betiğini çalıştırdığınızda aşağıdaki hatayı alıyorum:

psql: fe_sendauth: no password supplied

Hatta ana dizindeki .pgpass dosyasını yapılandırmaya çalıştım, ancak boşuna:

*:*:*:postgres:postgres

Aşağıdaki komutu çalıştırdım:

sudo chmod 0600 .pgpass

Bununla birlikte, yöntemlerin hiçbirinin işe yaramadığı görülüyor. Herhangi bir fikri olan var mı? Bir şey yapmayı unutuyor muyum?


1
sudo su -c psql postgres psql ...Bunun yerine deneyin .
Flup

.pgpassOlduğu için ev dizinine? İçinde değil postgres, kullanıcının one?
Milen A. Radev

Evet, benim ev dizininde, yani / home / server2 /
alibaba

Yanıtlar:


15

sudoçoğu ortam değişkenini korumaz. Altında çalışan bir komuta ortam değişkenleri belirtmek istiyorsanız sudo, bunu yapın sudo:

sudo PGPASSWORD="postgres" -u postgres psql -d pg_ldap -w --no-password -h localhost -p 5432 -t -c "SELECT id FROM radusers WHERE id=1"

Buna sudoizin verip vermemeniz, sitenizdeki yürürlükteki güvenlik politikasına bağlı olacaktır.

Komut satırı geçmişinde ve işlem listesinde parolayı açığa çıkardığı için bu yaklaşımı önermiyorum. Bir .pgpassdosyayı kullanmak veya tercihen kullanıcılardan gelen bağlantıların kimlik doğrulaması pg_hba.confiçin ayarlamak daha iyidir .peerlocalpostgres

Bir kullanabilirsiniz .pgpassdosyası, ancak olmalı .pgpasssen kullanıcının sudodeğil, kullanıcıya ing' sen sudoing den ; ~postgres/.pgpassbu durumda olması gerekir . Bir düşünün: psqlyayınlanmaya postgressen yoluyla ran bilmiyor sudohesabınızdan, bu kullanıcı hesabının ne olduğunu bilmiyor ve öyle de oldu bile o kullanıcı olarak okuma izni yok postgresetmek ~youruser/.pgpass.

Ayrıca, -waynıdır --no-password. Her ikisini de belirtmenin bir anlamı yok.


2
-EOrtamınızı (dahil PGPASSWORD) koruyacak seçeneği kullanmanıza izin vermek için sudo'yu da ayarlayabilirsiniz . Bu işlem listesinde gösterilmesini engeller.
fukawi2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.