Constrained sudo is no substitute for proper security.  If I was in
charge of a database where personal details or credit card or financial
information could be compromised I would not rely on constrained sudo.

The reason is that no matter how smart you think you are, some smarty
pants always finds a way to abuse the root privileges they have been
granted, possibly by exploiting a design flaw in the program they've
been allowed to run as root.

For example, I am pretty sure that psql can be used to write files with
arbitrary content (use your imagination with \copy ... or \echo ...).  I
am pretty sure that as root you could overwrite /usr/bin/psql with
another file of the same name that actually execs /bin/bash if invoked
with a suitable command line option, but otherwise behaves just
like /usr/bin/psql ...

If you don't believe me try this:


sudo psql <whatever ...>
dbname=>\pset tuples_only
dbname=>\o |/bin/bash
dbname=>select 'id';
uid=0(root) gid=0(root) 
groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)


There are many more sophisticated examples.  The only solution is not to
grant sudo to anyone you wouldn't grant root to.

Cheers,
Robin

On Wed, 2012-03-14 at 12:24 -0400, Kris Deugau wrote:

> Scott Ribe wrote:
> > On Mar 14, 2012, at 9:01 AM, David Ondrejik wrote:
> >
> >> In Linux you can setup and use the "sudo" option. For those whom you don't 
> >> wish to have root access, simply make them sudousers, then change the root 
> >> password. This will force those users to simply type "sudo" (w/o quotes) 
> >> at the beginning of each command they want to run (i.e. sudo psql db_name 
> >> "insert into....").
> >
> > Sure, you mean like this command:
> >
> > sudo su root
> 
> If properly (mis)configured.
> 
> On the other hand, you can provide very limited root access on a 
> command-by-command and user-by-user basis with more complex sudo 
> configurations, and while the first request will ask for a password, 
> further requests within the configured authorization timeout will still 
> be logged even if the user isn't asked for their password.
> 
> -kgd
> 


Reply via email to