Steps to install a chroot jail on CentOS 6.3
cat /etc/centos-release
...CentOS release 6.3 (Final)
cd /home/
mkdir chroot
mkdir -p chroot/var/lib/rpm
rpm --rebuilddb --root=/home/chroot/
wget http://mirror.centos.org/centos-6/6.3/os/x86_64/Packages/centos-release-6-3.el6.centos.9.x86_64.rpm
rpm -i --root=/home/chroot/ --nodeps centos-release-6-3.el6.centos.9.x86_64.rpm
...warning: centos-release-6-3.el6.centos.9.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
yum --installroot=/home/chroot install -y rpm-build yum
cp -vi /home/chroot/etc/skel/.??* /home/chroot/root/
`/home/chroot/etc/skel/.bash_logout' -> `/home/chroot/root/.bash_logout'
`/home/chroot/etc/skel/.bash_profile' -> `/home/chroot/root/.bash_profile'
`/home/chroot/etc/skel/.bashrc' -> `/home/chroot/root/.bashrc'
mount --bind /proc /home/chroot/proc
mount --bind /dev /home/chroot/dev
cp /etc/resolv.conf /home/chroot/etc/
Now you can use YUM to install additional software from inside the chroot jail. Or you can always exit the jail and install from outside using the yum –installroot switch.
LOGIN INTO THE CHROOT ENVIRONMENT
chroot /home/chroot/ /bin/bash -l
You should be inside the chroot now.
# add following line to /root/.bashrc
PS1=CHROOT.$PS1
If you plan to use the screen command, or any application that uses /dev/pts, run the following script first:
CHROOT.[root@host ~]# ./mount_pts.sh
#!/bin/bash
# makes it works the screen command inside the chrooted environment
umount /dev/pts
mount -t devpts -o rw,gid=5,mode=620 none /dev/pts
Installing packages inside the chroot:
yum provides "*/ping"
yum provides "*/bin/telnet"
yum install telnet
yum install httpd
yum install php php-cli php-pdo php-mysql php-snmp php-soap php-odbc php-imap php-gd
yum provides "*/bin/telnet"
yum install telnet
yum install httpd
yum install php php-cli php-pdo php-mysql php-snmp php-soap php-odbc php-imap php-gd
Checking PHP version
[root@host ~] php --version
No log handling enabled - turning on stderr logging
Created directory: /var/lib/net-snmp/mib_indexes
PHP 5.3.3 (cli) (built: Jul 3 2012 16:53:21)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
No log handling enabled - turning on stderr logging
Created directory: /var/lib/net-snmp/mib_indexes
PHP 5.3.3 (cli) (built: Jul 3 2012 16:53:21)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
Starting Apache ….
CHROOT.[root@host] service httpd status
httpd is stopped
CHROOT.[root@host] service httpd start
Starting httpd: [ OK ]
httpd is stopped
CHROOT.[root@host] service httpd start
Starting httpd: [ OK ]
Have Fun.