Re: Disable executing external commands from psql? - Mailing list pgsql-general

From Stephen Frost
Subject Re: Disable executing external commands from psql?
Date
Msg-id 20100602013142.GW21875@tamriel.snowman.net
Whole thread Raw
In response to Disable executing external commands from psql?  (Ken Tanzer <ken.tanzer@gmail.com>)
List pgsql-general
Ken,

* Ken Tanzer (ken.tanzer@gmail.com) wrote:
> Hi.  I'm wondering if it is possible to disable use of  \! to execute
> commands in psql?  I see this has come up on the list before
> (http://archives.postgresql.org/pgsql-admin/2007-07/msg00242.php), but I
> don't see anyone saying whether it is possible or not, just that it's a
> bad or useless idea.

It'd be difficult to close all the holes and would result in seriously
reduced functionality to your users.

> It may or may not be a bad idea (e.g., carry some risk).  My scenario is
> that I'd like to give people that I don't necessarily know (or therefore
> trust) the ability to run psql for a database I've already set up for
> them.  I set their login shell to psql, so they can simply ssh in, and
> they are in psql.  From there, though, they can do a simple \!
> /bin/bash, and they've got way more access than I want them to.

You can port-forward the database port through SSH (so you'd only expose
port 22 to the internet) and then have the clients run psql on their
system.  That would let them use things like \copy, which is extremely
useful.

> So is there any way to disable the "\!" stuff?  If there's a better way
> to go about this, I suppose I'm all ears too!

Yes, listen to the suggestions made by myself and others..  Disabling \!
wouldn't be enough and the more you hack on psql to disable things to
become a 'secure' database shell, the more annoyed and frustrated your
users will end up being.

Have you considered something like linux containers or vservers instead?

    Thanks,

        Stephen

Attachment

pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: server-side extension in c++
Next
From: Craig Ringer
Date:
Subject: Re: Disable executing external commands from psql?