一、简述:
chroot 即 change root directory (更改 root 目录) 。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。
二、为什么要使用chroot
在经过 chroot 之后,系统读取到的目录和文件将不在是真实系统根下的而是新根下(即被指定的新的位置)的目录结构和文件,因此它带来的好处大致有以下3个:
* 增加了系统的安全性,限制了用户的权力;
* 建立一个与原系统隔离的系统目录结构,方便用户的开发;
* 可以限制chroot用户的命令使用
三、目的:可开放chroot帐号供开发人员web服务器查看日志,分析问题等。
四、chroot环境部署
如果是5.5的系统,需要升级openssh,本文是在6.2和5.5中都有使用。
#建立帐号
useradd rd
echo "www.elain.org" | passwd --stdin rd
#下载chroot环境
cd /home
wget http://ebook.elain.org/tools/chroot_v1.0.tar.gz
tar zxvf chroot_v1.0.tar.gz
chown rd.rd /home/chroot/home/rd
rm -rf chroot_v1.0.tar.gz
cat <<EOF>>/etc/ssh/sshd_config
#chroot
Match User rd
ChrootDirectory /home/chroot
EOF
/etc/init.d/sshd restart
mount --bind /data/logs /home/chroot/home/rd
使用rd登录测试!!!
五、openssh升级(for centos 5.5)
1.升级sshd前准备
yum -y install gcc* make openssl openssl-devel perl pam pam-devel
mkdir -p /opt/soft/src && cd /opt/soft/src
wget http://ftp.bit.nl/mirror/openssh/portable/openssh-5.9p1.tar.gz
#备份现有ssh
mv /etc/ssh/ /etc/ssh.bak
cp /etc/init.d/sshd /etc/init.d/sshd.bak
2.安装sshd
cd /opt/soft/src
tar zxf openssh-5.9p1.tar.gz
cd openssh-5.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
make
rpm -e --nodeps openssh-server-4.3p2-41.el5
rpm -e --nodeps openssh-4.3p2-41.el5
make install
mv /etc/init.d/sshd.bak /etc/init.d/sshd
touch /etc/ssh/ssh_host_ecdsa_key
touch /etc/ssh/ssh_host_ecdsa_key.pub
mkdir -p /var/empty/sshd/etc
#重启sshd.
升级成功.
转载请注明: 转载自http://www.elain.org
本文转自 elain2012 51CTO博客,原文链接:http://blog.51cto.com/elain/949301