schroot ======= Securely enter a chroot and run a command or login shell. Note that giving untrusted users root access to chroots is a serious security risk! Although the untrusted user will only have root access to files inside the chroot, in practice there are many obvious ways of breaking out of the chroot and of disrupting services on the host system. As always, this boils down to trust. Don't give chroot root access to users you would not trust with root access to the host system. For compatibility with existing tools and scripts, wrapper binaries for dchroot and DSA dchroot are provided. Build Dependencies ------------------ An ISO C++ compiler supporting TR1 (e.g. GCC 4.x), or an ISO C++ compiler and the Boost libraries libstdc++ (GNU libstdc++) libpam0g-dev (Linux-PAM) libboost-dev } libboost-program-options-dev } The Boost C++ libraries libboost-regex-dev } groff (or troff) soelim cmake (required unless using the autotools configure script) If building from GIT, you will also need: gettext (0.16 or greater) doxygen po4a (>=0.40) To run the unit tests, you will optionally need: cmake gtest configure with GTEST_ROOT=/path/to/libgtest (it will be added as a linker -L option). On Debian systems, which don't provide a precompiled libgtest, build a version for the build with, for example: mkdir build cd build mkdir gtest (cd gtest; \ CXX="g++ -std=c++11" cmake /usr/src/gtest ; \ make VERBOSE=1 \ ) And then to build with cmake: CXX="g++ -std=c++11" GTEST_ROOT="$(pwd)/gtest" cmake /path/to/schroot make Or with autotools configure: /path/to/schroot/configure CXX="g++ -std=c++11" GTEST_ROOT="$(pwd)/gtest" make Translation ----------- If you would like to see the schroot messages output in your own language, please consider translating the pot file (po/schroot.pot). If you would like to see the schroot man pages in your own language, please consider translating the pot file (man/po/schroot-man.pot). Building and installation ------------------------- cmake ^^^^^ Run "cmake -LH" to see basic configurable options. The following basic options are supported: btrfs-snapshot=(ON|OFF) Enable support for btrfs snapshots (requires Btrfs) dchroot=(ON|OFF) Enable dchroot compatibility dchroot-dsa=(ON|OFF) Enable dchroot-dsa compatibility debug=(ON|OFF) Enable debugging messages default_environment_filter=REGEX Default environment filter doxygen=(ON|OFF) Enable doxygen documentation loopback=(ON|OFF) Enable support for loopback mounts lvm-snapshot=(ON|OFF) Enable support for LVM snapshots (requires LVM) nls=(ON|OFF) Enable national language support (requires gettext) pam=(ON|PFF) Enable support for PAM authentication (requires libpam) personality=(ON|OFF) Enable personality support (Linux only) test=(ON|OFF) Enable unit tests union=(ON|OFF) Enable support for union mounts unshare=(ON|OFF) Enable unshare support (Linux only) cmake will autodetect and enable all available features by default, with the exception of dchroot and dchroot-dsa which require manually specifying, so these options are mostly useful for disabling features which are not required. Run "cmake -LA" to see all settable options. CMAKE_INSTALL_PREFIX is the equivalent of the configure --prefix option. Additionally, CMAKE_INSTALL_SYSCONFDIR, CMAKE_INSTALL_LOCALSTATEDIR, CMAKE_INSTALL_LIBDIR etc. provide the equivalent sysconfdir, localstatedir and libdir, etc. options. Run "make doc" to make the doxygen documentation. Run "make test" to run the testsuite. Note that the testsuite ("make test") should be run under fakeroot or real root in order to work correctly. autotools configure ^^^^^^^^^^^^^^^^^^^ Please see the INSTALL file for generic autotools configure installation instructions. There are the following additional options: --enable-dchroot Build dchroot for backward compatibility --enable-dchroot-dsa Build DSA dchroot for backward compatibility --enable-debug Enable debugging features (not recommended--use --debug at runtime instead) --enable-environment-filter Enable default environment filtering (regex) --enable-pam Enable support for PAM authentication --enable-block-device Enable support for block devices --enable-lvm-snapshot Enable support for LVM snapshots --enable-btrfs-snapshot Enable support for btrfs snapshots --enable-loopback Enable support for loopback mounts --enable-union Enable support for union mounts --enable-doxygen Enable doxygen documentation Normally configure will autodetect and enable the recommended options if supported by your system, so the above options should not usually be required. Run "make doc" to make the doxygen documentation. Run "make check" to run the testsuite. Note that the testsuite ("make check") should be run under fakeroot or real root in order to work correctly. Configuration ------------- See schroot.conf(5) and schroot-setup(5). Running ------- See schroot(1).