text patch -- sugg cmd when run as root
When you run postgresql as root, the command it gives for putting in
your startup script is a little weird. The main issue is that 2>&1
only works in bash, not tcsh. >& works in both, so it seems
preferable. Another minor issue is that it echoes the command and
pipes it through su. Shouldn't this be "su - postgres -c 'cmd'"? Do
all versions of su have the '-c' argument? piping it through seems
weird, but maybe it isn't.
this is a straight diff for src/backend/main/main.c
--cut here--
38c38
< echo \"postmaster -B 256 >/var/log/pglog 2>&1 &\" | su - postgres\n\n"
---
su - postgres -c 'postmaster -B 256 >& /var/log/pglog' &\n\n"
--cut here--
When you run postgresql as root, the command it gives for putting in
your startup script is a little weird. The main issue is that 2>&1
only works in bash, not tcsh. >& works in both, so it seems
preferable. Another minor issue is that it echoes the command and
pipes it through su. Shouldn't this be "su - postgres -c 'cmd'"? Do
all versions of su have the '-c' argument? piping it through seems
weird, but maybe it isn't.this is a straight diff for src/backend/main/main.c
--cut here--
38c38
< echo \"postmaster -B 256 >/var/log/pglog 2>&1 &\" | su - postgres\n\n"
---su - postgres -c 'postmaster -B 256 >& /var/log/pglog' &\n\n"
--cut here--
You have tcsh as the root shell???
Seriously, most systems have 'sh' as the root shell, with bash a distant
second possibility. And, the '2>&1' syntax works in 'sh', and 'ksh' and 'bash'.
-dg
David Gould dg@illustra.com 510.628.3783 or 510.305.9468
Informix Software (No, really) 300 Lakeside Drive Oakland, CA 94612
"(Windows NT) version 5.0 will build on a proven system architecture
and incorporate tens of thousands of bug fixes from version 4.0."
-- <http://www.microsoft.com/y2k.asp?A=7&B=5>
On Wed, 29 Apr 1998, David Gould wrote:
When you run postgresql as root, the command it gives for putting in
your startup script is a little weird. The main issue is that 2>&1
only works in bash, not tcsh. >& works in both, so it seems
preferable. Another minor issue is that it echoes the command and
pipes it through su. Shouldn't this be "su - postgres -c 'cmd'"? Do
all versions of su have the '-c' argument? piping it through seems
weird, but maybe it isn't.this is a straight diff for src/backend/main/main.c
--cut here--
38c38
< echo \"postmaster -B 256 >/var/log/pglog 2>&1 &\" | su - postgres\n\n"
---su - postgres -c 'postmaster -B 256 >& /var/log/pglog' &\n\n"
--cut here--
You have tcsh as the root shell???
As do I...so? I just make sure I put a copy in /bin and you're
fine...or, at least, I haven't been burnt yet. I can't stand the other
shells :(
On Thu, 30 Apr 1998, The Hermit Hacker wrote:
On Wed, 29 Apr 1998, David Gould wrote:
When you run postgresql as root, the command it gives for putting in
your startup script is a little weird. The main issue is that 2>&1
only works in bash, not tcsh. >& works in both, so it seems
preferable. Another minor issue is that it echoes the command and
pipes it through su. Shouldn't this be "su - postgres -c 'cmd'"? Do
all versions of su have the '-c' argument? piping it through seems
weird, but maybe it isn't.this is a straight diff for src/backend/main/main.c
--cut here--
38c38
< echo \"postmaster -B 256 >/var/log/pglog 2>&1 &\" | su - postgres\n\n"
---su - postgres -c 'postmaster -B 256 >& /var/log/pglog' &\n\n"
--cut here--
You have tcsh as the root shell???
As do I...so? I just make sure I put a copy in /bin and you're
fine...or, at least, I haven't been burnt yet. I can't stand the other
shells :(
IMHO, the startup script should be written for plain sh (best) or plain
csh, because those are the shells that are guaranteed to exist on any Un*x
system. And, it doesn't matter which shell you are using (bash, tcsh, ksh,
zsh or whatever), simply put "#!/bin/sh" or "#!/bin/csh" as the first line
on the script, and you're done.
As a side note: Marc, if you use tcsh as root's shell, you also must check
that tcsh is statically linked. Anyway, I keep /bin/sh as root's shell,
and the first command I execute when I log on as root is "bash ; exit". I
could even modify root's .profile to execute it automatically, but I'm too
lazy :-)
-------------------------------------------------------------------
Pedro José Lobo Perea Tel: +34 91 336 78 19
Centro de Cálculo Fax: +34 91 331 92 29
EUIT Telecomunicación - UPM e-mail: pjlobo@euitt.upm.es
Pedro:
IMHO, the startup script should be written for plain sh (best) or plain
csh, because those are the shells that are guaranteed to exist on any Un*x
system. And, it doesn't matter which shell you are using (bash, tcsh, ksh,
zsh or whatever), simply put "#!/bin/sh" or "#!/bin/csh" as the first line
on the script, and you're done.
I don't have csh on some of my systems. I think the only safe choice is
plain sh.
-dg
When you run postgresql as root, the command it gives for putting in
your startup script is a little weird. The main issue is that 2>&1
only works in bash, not tcsh. >& works in both, so it seems
preferable. Another minor issue is that it echoes the command and
pipes it through su. Shouldn't this be "su - postgres -c 'cmd'"? Do
all versions of su have the '-c' argument? piping it through seems
weird, but maybe it isn't.this is a straight diff for src/backend/main/main.c
--cut here--
38c38
< echo \"postmaster -B 256 >/var/log/pglog 2>&1 &\" | su - postgres\n\n"
---su - postgres -c 'postmaster -B 256 >& /var/log/pglog' &\n\n"
--cut here--
I have changed the text to:
\n\"root\" execution of the PostgreSQL backend is not permitted.\n\n\
The backend must be started under it's own userid to prevent\n\
a possible system security compromise. See the INSTALL file for\n\
more information on how to properly start the postmaster.\n\n"
--
Bruce Momjian | 830 Blythe Avenue
maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)
beautiful -- it turns out that it was my mistake (I am very used to
bash) and vanilla sh does not handle tcsh-style redirection, as in:
command >& file
On Tue, 12 May 1998, at 16:17:28, Bruce Momjian wrote:
Show quoted text
I have changed the text to:
\n\"root\" execution of the PostgreSQL backend is not permitted.\n\n\
The backend must be started under it's own userid to prevent\n\
a possible system security compromise. See the INSTALL file for\n\
more information on how to properly start the postmaster.\n\n"