public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: daw@mozart.cs.berkeley.edu (David Wagner)
To: linux-kernel@vger.kernel.org
Subject: Re: can chroot be made safe for non-root?
Date: 16 Oct 2002 21:18:00 GMT	[thread overview]
Message-ID: <aokl28$955$2@abraham.cs.berkeley.edu> (raw)
In-Reply-To: 87n0pevq5r.fsf@ceramic.fifi.org

Philippe Troin  wrote:
>Eric Buddington <eric@ma-northadams1b-3.bur.adelphia.net> writes:
>> Would it be reasonable to allow non-root processes to chroot(), if the
>> chroot syscall also changed the cwd for non-root processes?
>
>No.
>
>  fd = open("/", O_RDONLY);
>  chroot("/tmp");
>  fchdir(fd);
>
>and you're out of the chroot.

Irrelevant.  If a process *wants* to voluntarily sandbox itself, it can
close all open file descriptors before sandboxing.

Please note that
  chroot("/tmp");
  fd = open("/", O_RDONLY);
  fchdir(fd);
does *not* let you escape from the sandbox.  This means that a process
can sandbox itself, and once sandboxed, it can no longer escape.
This functionality would be very useful for security purposes (see, e.g.,
"privilege separation").

It is true that there are some tricky issues here.  For instance, root
has many ways to escape from a chroot() jail, so you should never use
chroot() to confine processes running as root.  Also, if non-root users
can call chroot(), then there may be bad interactions if the chroot-ed
process later calls chroot() again, or execs a setuid program.

However, I believe all of these tricky issues can be dealt with.  See, e.g.,
  http://www.cs.berkeley.edu/~smcpeak/cs261/index.html

  reply	other threads:[~2002-10-16 21:29 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-16  5:51 can chroot be made safe for non-root? Eric Buddington
2002-10-16  6:44 ` Philippe Troin
2002-10-16 21:18   ` David Wagner [this message]
2002-10-16 22:04     ` Philippe Troin
2002-10-16 22:00       ` David Wagner
2002-10-19 17:44   ` Eric Buddington
2002-10-19 19:07     ` Bernd Eckenfels
     [not found]       ` <200210201715.07150.landley@trommello.org>
2002-10-21 20:29         ` Bernd Eckenfels
2002-10-22 15:42     ` Jesse Pollard
2002-10-22 16:55       ` Shaya Potter
2002-10-21 15:22   ` Alan Cox
2002-10-22  7:21     ` Ville Herva
2002-10-22 14:15       ` Shaya Potter
2002-10-22 15:55         ` Martin Josefsson
2002-10-16 21:14 ` David Wagner
2002-10-18 19:01 ` Pavel Machek
2002-10-18 20:14   ` David Wagner
2002-10-18 21:07     ` Shaya Potter
2002-10-18 21:00       ` David Wagner
2002-10-18 21:36         ` Shaya Potter
  -- strict thread matches above, loose matches on Subject: below --
2002-10-17  5:08 Niels Provos
2002-10-19 19:42 Hank Leininger
2002-10-20 10:40 ` Bernd Eckenfels
2002-10-20 14:49   ` Shaya Potter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='aokl28$955$2@abraham.cs.berkeley.edu' \
    --to=daw@mozart.cs.berkeley.edu \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox