Creating a Chrooted Environment

30 minutes
  • 11 Learning Objectives

About this Hands-on Lab

This lab will allow you to practice creating a chrooted environment, adding access to Linux commands, along with including shared libraries for these commands.

You will create a chrooted jailed environment as well as ensuring the inmates can `cat` out the false escape plans that you will leave behind.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create a directory named /home/elba
  1. Once logged in to the server, become the root user using the command sudo su -. When prompted, enter the cloud_user password shown in the lab’s credentials section.
  2. Create a directory for elba within the /home directory.

    mkdir /home/elba
Create a new user called napoleon.
  1. Create a new user for your environment named napoleon.

    useradd napoleon
Create the bin and lib64 directories in /home/elba
  1. Create two new directories, bin and lib64, within the /home/elba directory.

    mkdir /home/elba/{bin,lib64}
Copy /bin/bash into /home/elba/bin/bash.
  1. Copy /bin/bash into /home/elba/bin/bash.

    cp /bin/bash /home/elba/bin/bash
Copy /bin/ls in to /home/elba/bin/ls
  1. Copy /usr/bin/ls into /home/elba/bin/ls.

    cp /bin/ls /home/elba/bin/ls
Copy /bin/cat in to /home/elba/bin/cat
  1. Copy /bin/cat into /home/elba/bin/cat.

    cp /bin/cat /home/elba/bin/cat
Copy the libraries needed for bash, ls, and cat over to /home/elba/lib64.
  1. Find and copy the libraries needed for bash, ls, and cat over to /home/elba/lib64.

    ldd /bin/bash /bin/ls /bin/cat
    cp /lib64/libtinfo.so.5  
    /lib64/libdl.so.2 
    /lib64/ld-linux-x86-64.so.2 
    /lib64/libselinux.so.1 
    /lib64/librt.so.1 
    /lib64/libcap.so.2 
    /lib64/libacl.so.1 
    /lib64/libc.so.6 
    /lib64/libpthread.so.0 
    /lib64/libattr.so.1 
    /lib64/libpcre.so.1  /home/elba/lib64
Create the waterloo.txt file in the /home/elba directory
  1. Using vi, create the waterloo.txt file in the /home/elba directory with instructions on how to escape.

    vi /home/elba/waterloo.txt
Create a chrooted environment in /home/elba with a bash shell.
  1. Using the chroot command, create a chrooted environment in /home/elba with a Bash shell.

    chroot /home/elba /bin/bash
Confirm commands work.
  1. Using the command pwd, confirm the present working directory and then confirm that you can use the ls command.

    pwd
    ls
    cat
View the contents of waterloo.txt and find out how to escape your environment.
  1. View the contents of waterloo.txt and find out how to escape your environment.

    cat waterloo.txt

Additional Resources

Once logged in to the server, become the root user using the command sudo su -. When prompted, enter the cloud_user password shown in the lab’s credentials section. The user napoleon will be needing access to our server. Create the user napoleon. Create the /home/elba directory to be used as our chrooted environment. Ensure napolean is able to use the ls, cat and bash commands in a Bash environment. Utilizing the chroot command and using a Bash environment, confirm that the user napoleon has access to the vi and cat commands by creating the waterloo.txt file and then catting out the file.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?