Невозможно получить доступ к паролям PostgreSQL при использовании Fabric - PullRequest
0 голосов
/ 25 октября 2018

Если я войду на сервер как пользователь "joe", запустите команду на сервере, например:

dropdb --no-password --if-exists --user=someuser --host=someip somedb

, она будет работать нормально, потому что я заполнил /home/joe/.pgpass соответствующими учетными данными для подключения некоторых пользователей кsomeip.

Однако при использовании Fabric я обнаружил странное поведение.Несмотря на то, что я настроил его на использование «joe» в качестве пользователя, при попытке выполнить ту же команду выдает ошибку:

dropdb: could not connect to database template1: fe_sendauth: no password supplied

Почему это так?Единственная причина, по которой я могу думать, это то, что соединение Fabric / SSH не имеет разрешения на ~/.pgpass, но я дважды проверил, что пользователь правильный и что в ~/.pgpass.

есть правильные значения.Редактировать: я понял, что я запускаю sudo Fabric как sudo(cmd, user='postgres'), что, я думаю, является частью причины.Тем не менее, я проверил значение $HOME, и оно все еще /home/joe, поэтому оно все еще должно видеть /home/joe/.pgpass.Почему пользователь postgres не может получить к нему доступ?

...