Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-07-26 17:21:58

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Postgresql 9.0

Mam problem ze zmianą hasła dla usera postgres
Z roota oczywiście można się zalogować na postgresa bo to wódz ale jak robię pod zwykłym userem su postgres pyta się mnie o hasło wpisuję hasło które nadałem pod rootem w psql

Kod:

su postgres
psql
\password

Zmieniam hasło i teoretycznie powinno grać. No nie gra  i jak się chcę zalogować z zwykłego usera daje mi komunikat:

Kod:

tk@debian:~$ psql -U postgres -W
Password for user postgres: 
psql: FATAL:  Ident authentication failed for user "postgres"

Końcówka pliku pg_hba.conf:

Kod:

# Database administrative login by UNIX sockets
local   all         postgres                          ident

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Ostatnio edytowany przez hello_world (2011-07-26 17:23:58)

Offline

 

#2  2011-07-26 17:40:45

  paoolo - Oldtimer

paoolo
Oldtimer
Skąd: Kraków
Zarejestrowany: 2006-05-20

Re: Postgresql 9.0

W linijce local all postgres ident powinno być local all postgres md5. Swoją drogą, dziwne, że cię pyta gdy jesteś jako postgres zalogowany. Nie powinno.

edit: przetestowane, działa :) tylko przed zmianą, ustaw hasło przy pomocy alter user postgres with password 'hasło'; będąc zalogowanym jako postgres.

Ostatnio edytowany przez paoolo (2011-07-26 17:48:52)

Offline

 

#3  2011-07-26 17:50:25

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

Pomogło.
Tyle że mogę się uwierzytelnić jako postgres tyko przez komendę (z usera zwykłego)

Kod:

psql -U postgres -W

Natomiast po wydaniu polecenia:

Kod:

su postgres

Pyta mnie o hasło tyle że zawsze pokazuje:

Kod:

tk@debian:~$ su postgres
Hasło: 
su: Uwierzytelnienie nie powiodło się

Z roota mogę wykonać:
su postgres - wtedy wchodzę na usera postgres

Swoją drogą, dziwne, że cię pyta gdy jesteś jako postgres zalogowany. Nie powinno.

Własnie że nie mogę się na postgresa zalogować. Tylko przez powyższą komendę. Nie pośrednio.

Offline

 

#4  2011-07-26 17:53:22

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Postgresql 9.0

hello_world napisał(-a):

Natomiast po wydaniu polecenia:

Kod:

su postgres

Pyta mnie o hasło tyle że zawsze pokazuje:

Kod:

tk@debian:~$ su postgres
Hasło: 
su: Uwierzytelnienie nie powiodło się

Z roota mogę wykonać:
su postgres - wtedy wchodzę na usera postgres

A sudo skonfigurowane ?? :>


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#5  2011-07-26 17:59:06

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

Już sobie poradziłem
Nadaem po prostu hasło dla usera postgres (co się tyczy powloki bash)
i śmiga. Po prostu pomimo że user postgres jest tworzony przy instalacji to (chyba) nie jest to ten sam user który występuje w postgresql.
Więc nadałem hasło pod bashem i pod psql

Offline

 

#6  2011-07-26 18:08:15

  paoolo - Oldtimer

paoolo
Oldtimer
Skąd: Kraków
Zarejestrowany: 2006-05-20

Re: Postgresql 9.0

@up: tak, postgres jest systemowy user'em i dlatego wpis defaultowo w configu jest ... ident, czyli po tym jako kto jest zalogowany w powłoce, tak się logujesz na psql, i jak jesteś postgres jako user w powłoce to wtedy się zalogujesz bez hasła na psql, zaś z innych kont - nie. A hasło zmieniasz tym zapytaniem sql tylko dla user'a w bazie, nie w systemie.

Offline

 

#7  2011-07-27 00:27:17

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Postgresql 9.0

Bez żadnego nadawaina hasła dla usera postgres, działa tak:

Kod:

sudo -u postgres bash

I od razu jesteś na powloce usera postgres.

To by było na tyle
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#8  2011-07-29 19:04:48

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

@Jacekalex
W Debianie tak nie jest.
W pliku /etc/shadow user postgres ma w miejscu hasła *. Oznaczałoby to że na to konto nie może zalogować się nawet root. Ja natomiast z nieuprzywilejowanego usera nie loguje się na postgresa ale z roota daję radę. O co chodzi w końcu? Nie chciałbym dawać komuś hasła roota tylko dlatego aby mógł się wbić so PostgreSQL.

Offline

 

#9  2011-07-29 19:34:45

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Postgresql 9.0

hello_world napisał(-a):

@Jacekalex
W Debianie tak nie jest.
W pliku /etc/shadow user postgres ma w miejscu hasła *. Oznaczałoby to że na to konto nie może zalogować się nawet root. Ja natomiast z nieuprzywilejowanego usera nie loguje się na postgresa ale z roota daję radę. O co chodzi w końcu? Nie chciałbym dawać komuś hasła roota tylko dlatego aby mógł się wbić so PostgreSQL.

Postgresa na Debianie nia mam ale:

Kod:

groupadd postgres -g 70
useradd postgres -u70 -g 70 -s /bin/false

Kod:

Debian root # sudo -u postgres bash
19:29:25 / 
Debian postgres #
Debian postgres # cat /etc/deb*version
wheezy/sid
19:30:11 / 
Debian postgres # id postgres
uid=70(postgres) gid=70(postgres) grupy=70(postgres)

hello_world napisał(-a):

W Debianie tak nie jest.

To bardzo ciekawe spostrzeżenie, bo w Linuxie tak jest xD.
Debian to nie jest Linux?
A wheezy/sid - to oznaczenie wersji Windows 8 czy Windows 9?

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2011-07-29 19:35:12)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#10  2011-07-29 19:50:32

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

@Jacekalex
Z całym szacunkiem ale ja nie mówię o Gentoo. To zapytanie dotyczy Debiana Wheezy. Nie obchodzi mnie rzeźba w Gentoo.
Ja też potrafie dopisać hasło dla użytkownika postgres pod bashem ale gdzieś mi podświadomość mówi że nie tak chcieli developerzy rozwiązać te problem.
Debian, Gentoo etc.. to Linux jednak emerge, apt to nie to samo.

Offline

 

#11  2011-07-29 20:14:40

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: Postgresql 9.0

Dopóki shellem konta będzie /bin/false na pewno nie uda się zalogować zwykłemu użytkownikowi, daj /bin/bash i się uda. Choć nie bardzo rozumiem dlaczego tak. Co prawda nie pracuję na postgresie tylko na mysql, jednak nigdy nie przyszło mi do głowy logować się na konto mysql.

Offline

 

#12  2011-07-29 20:28:48

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

@bobycob
Ale użytkownik postgres w /etc/passwd ma powlokę /bin/bash.
Właśnie dlatego nie wiem po co ten user postgres (choć to taki root jak w Mysql)
Owszem w Mysql nie logujesz się do powloki basha tylko bezpośrednio albo na roota albo na zdefiniowanego usera. Natomiast z tego wynikałoby że na postgresa nie powinien się nikt zalogować (przez * w /etc/shadow) ale jednak root się loguje i dopiero z niego można wykonywać rózne administracyjne komendy (selecty etc..)
Nie mogę zajarzyć idei tego rozwiązania.

Offline

 

#13  2011-07-29 20:35:30

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Postgresql 9.0

hello_world napisał(-a):

Właśnie dlatego nie wiem po co ten user postgres (choć to taki root jak w Mysql)

Jako ten użytkownik działa demon bazy danych.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#14  2011-07-30 08:28:49

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: Postgresql 9.0

azhag napisał(-a):

hello_world napisał(-a):

Właśnie dlatego nie wiem po co ten user postgres (choć to taki root jak w Mysql)

Jako ten użytkownik działa demon bazy danych.

Ja dorzucę linka do dokumentacji, powinno to rozjaśnić nieco sprawę. Warto też następne rozdziały przejrzeć.

Ostatnio edytowany przez ba10 (2011-07-30 08:31:13)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#15  2011-07-30 16:55:42

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Postgresql 9.0

Chyba po mału zaczynam jarzyć o co chodzi.
Owszem postgres to inaczej postmaster na którego prawach działa PostgreSQL.
W pliku /etc/postgresql/9.0/main/pg_hba.conf zmieniłem opcję połączenia z bazą.
Ustawiłem na:

Kod:

local all all md5

Później założyłem użytkownika createuser "X" i mam to o co mi chodziło, czyli jak wydam komendę z jakiegokolwiek usera :

Kod:

psql -d baza -U "X" -W

To mi się bezpośrednio loguje do wybranej bazy.
Takich superuserów można sobie wielu założyć, to definiuje się podczas createuser w shelu lub w psql CREATE ROLE (CREATE USER to ponoć link do CREATE ROLE)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)