Thread

  1. text patch -- sugg cmd when run as root

    Brett McCormick <brett@work.chicken.org> — 1998-04-30T03:09:05Z

    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--
    
    
  2. Re: [HACKERS] text patch -- sugg cmd when run as root

    David Gould <dg@illustra.com> — 1998-04-30T06:28:42Z

    > 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>
    
    
  3. Re: [HACKERS] text patch -- sugg cmd when run as root

    Marc G. Fournier <scrappy@hub.org> — 1998-04-30T13:53:43Z

    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 :(
    
    
    
    
  4. Re: [HACKERS] text patch -- sugg cmd when run as root

    Pedro J. Lobo <pjlobo@euitt.upm.es> — 1998-04-30T14:28:45Z

    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
    
    
    
  5. Re: [HACKERS] text patch -- sugg cmd when run as root

    David Gould <dg@illustra.com> — 1998-04-30T18:23:55Z

    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
    
    
  6. Re: [HACKERS] text patch -- sugg cmd when run as root

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-05-12T20:17:28Z

    > 
    > 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)
    
    
  7. Re: [HACKERS] text patch -- sugg cmd when run as root

    Brett McCormick <brett@work.chicken.org> — 1998-05-12T20:39:16Z

    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:
    
    > 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"