Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

postgres: initdb als root

10 views
Skip to first unread message

Marc Santhoff

unread,
Sep 3, 2012, 2:54:28 AM9/3/12
to
Tag allerseits,

ich frage mich, ob ein Sicherheitsrisiko damit verbunden ist, wenn man
bei einer neu aufgesetzten PostgreSQL-Datenbank die Initialisierung als
"root" vorgenommen hat.

Einerseits bekommt man natürlich nicht so leicht das Passwort,
andererseits aber alle möglichen Rechte, wenn man es hat.

Das System ist so eingerichtet, daß extra ein spezieller User für den DB-
Server erstellt wird, der alle Rechte daran hat. Ich denke es ist das
beste, initdb nochmal unter dieser Userkennung auszuführen, weiß es aber
nicht genau. Wenn's so wichtig wäre, hätte ja auch das README darauf
hinweisen können und sollen.

Gespannte Grüße,
Marc

Torsten Schneider

unread,
Sep 3, 2012, 3:24:24 AM9/3/12
to
Marc Santhoff <M.San...@t-online.de> wrote:

>ich frage mich, ob ein Sicherheitsrisiko damit verbunden ist, wenn man
>bei einer neu aufgesetzten PostgreSQL-Datenbank die Initialisierung als
>"root" vorgenommen hat.

Ein Sicherheitsrisiko nicht, es kann aber Berechtigungsprobleme geben,
deswegen sollte man solche Sachen immer unter dem Account des PG-Owners
machen.

Siehe dazu auch die initdb-Doku:

|initdb must be run as the user that will own the server process, because
|the server needs to have access to the files and directories that initdb
|creates. Since the server may not be run as root, you must not run
|initdb as root either. (It will in fact refuse to do so.)


Viele Grüße, Torsten

Marc Santhoff

unread,
Sep 3, 2012, 5:36:02 AM9/3/12
to
OK, danke für den Pointer, die man-page war das. Dann scheint das ein
FreeBSD-spezifisches Problem zu sein, oder dort sind Vorkehrungen
getroffen worden, denn initdb läuft durch und die Rechte sowie Eigentümer
auf die Konfigurationsdateien, etc. sind auch wie sie sollen.

Danke,
Marc

Torsten Schneider

unread,
Sep 3, 2012, 5:57:10 AM9/3/12
to
Marc Santhoff <M.San...@t-online.de> wrote:

>OK, danke für den Pointer, die man-page war das. Dann scheint das ein
>FreeBSD-spezifisches Problem zu sein, oder dort sind Vorkehrungen
>getroffen worden, denn initdb läuft durch und die Rechte sowie Eigentümer
>auf die Konfigurationsdateien, etc. sind auch wie sie sollen.

Das rc.d-Script für Postgres macht aber auch ein su auf den
Postgres-User für /usr/local/etc/rc.d/postgresql initdb

Nichtsdestotrotz funktioniert das auch unter FreeBSD nicht:

schneidt@a64:~# initdb -D /tmp
initdb: kann nicht als root ausgeführt werden
Bitte loggen Sie sich (z.B. mit »su«) als der (unprivilegierte) Benutzer
ein, der Eigentümer des Serverprozesses sein soll.
idchneidt@a64:~# uname -mrs
FreeBSD 9.1-PRERELEASE amd64


Viele Grüße, Torsten

Marc Santhoff

unread,
Sep 3, 2012, 6:26:07 AM9/3/12
to
Ah, hab's verwechselt bzw. nicht genau hingeguckt. Es ist ein Script, das
seinerseits als "su -l pgsql" initdb aufruft. Das hier ist aus der pkg-
message des Servers:

<snip>
To initialize the database, run

/usr/local/etc/rc.d/postgresql initdb
</snip>

Alle Klarheiten beseitigt. ;)

Also für das Anlegen der Administrator-Accounts doch su benutzen, jetzt
verstehe ich's.

Danke sehr,
Marc
0 new messages