Toon posts:

Van user veranderen in shellscript

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil een shellscriptje schrijven om de database (Postgres) mee op te starten.

Maar vanwege security is het niet toegestaan om Postgres als root te starten, je moet 'm starten als voor Postgres geautoriseerde user (standaard alleen de user Postgres)

Hoe kan je nou in een shellscript van user veranderen?
su gaat niet.. (tuurlijk, want dan moet je een password in je script zetten...)

Weet iemand dit?

  • Newjersey
  • Registratie: November 2000
  • Laatst online: 10-08 23:25
ik denk iets zoals dit
code:
1
su --command "/whatever/je/wil/opstarten" username password

volgens mij zoets

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Als je vanuit root su't naar een andere user, hoef je geen pass op te geven.

  • Prozaq
  • Registratie: Juni 2000
  • Laatst online: 06-08 13:03
zitten daar geen standaard faciliteiten voor in postgres?

Verwijderd

Topicstarter
Ja, maar in een shellscript kun je geen su gebruiken op die manier.

Maar geen nood, ik ben er al achter!

en hoe simpel: man su.

uit de manpage:
"--c=..., --command=...

Use su to run a single command as a different user."

De oplossing was voor mij eerst een scriptje maken dat start_postgres heet, met

/usr/bin/postmaster -i -D /usr/local/pgsql/data

en vervolgens als root

su postgres --c=/usr/bin/start_postgres

En werken!

(dat het in twee stappen moest, was omdat su niet accepteert dat je dan ook nog -i en -D op de command line ingeeft)

Bedankt!

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

/usr/bin/postmaster -i -D /usr/local/pgsql/data

en vervolgens als root

su postgres --c=/usr/bin/start_postgres
su postgres -c "/usr/bin/postmaster -i -D /usr/local/pgsql/data"

  • pinockio
  • Registratie: Juli 2001
  • Laatst online: 25-05 11:48
je kunt het (ook) zo doen:
# postmaster -D data -u postgres -g postgres.

tenminste, als 'postmaster -D data' je commando is (en dat is vaak zo als je postgres wilt opstarten)

het gaat dan natuurlijk om die ' - u postgres -g postgres '

'u' staat voor 'user', g voor 'group'

(toevallig ben ik ook net bezig me met postgres bezig te houden... nog maar net dus, maar goed...)

Disclaimer: P. aanvaardt geen aansprakelijkheid op grond van dit bericht.


  • pinockio
  • Registratie: Juli 2001
  • Laatst online: 25-05 11:48
postgres heeft er wel een scriptje voor:

pg_ctl

bijv.

su -c 'pg_ctl -D /usr/local/pgsql/data -l serverlog' postgres

Dit is te lezen op: http://www.postgresql.org/idocs/index.php?postmaster-start.html

Disclaimer: P. aanvaardt geen aansprakelijkheid op grond van dit bericht.

Pagina: 1