On Thu, Sep 27, 2007 at 09:28:08AM +0200, Christer Weinigel wrote:It seems there are (at least) two parts to this, one regarding changing working directory which is clearly stated in the standards and must work as it does, and the various issues regarding getting out of the chroot after the cwd has entered that changed root. That second part seems to offer room for additional controls on getting out of the chroot which do not violate any of the obvious standards, and which therefore might be valid candidates for discussion on the basis of benefit rather than portability.
So the OpenBSD man page seems to be in the minority here. Any portable
code can not assume that CWD changes. And changing the Linux behaviour
now would be a rather big change which might break userspace. And yes,
there are applications that rely on this, I've used it when building
software for cross compiling.
Changing Linux behavior would violate the POSIX and SuSV2
specifications; the standards explicitly state that the working
directory will NOT change. And standards adherance is important; we
break them only if we have a d*mn good reason. And trying to make
chroot() something which it is not (i.e., a secure jail) is certainly
not a good enough reason.
Can we please end this thread now? And can we put in a Kernel FAQ
saying that this is not something which is NOT up for discussion?